From e12de2fc7f5609d80ac4b849c7a7245e3d4f3e28 Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Tue, 27 Aug 2024 00:33:19 -0400 Subject: [PATCH] making progress on MCL linker and compiler, still many bugs --- mocha-common | 2 +- .../Mocha.ServerApplication.csproj | 1 + .../app/Mocha.ServerApplication/Program.cs | 21 ++++++++++++++++--- .../src/lib/Mocha.Core/KnownInstanceGuids.cs | 1 - mocha-dotnet/src/lib/Mocha.Core/Oms.cs | 3 +++ .../MethodTests/CommonTests.cs | 1 + 6 files changed, 24 insertions(+), 5 deletions(-) diff --git a/mocha-common b/mocha-common index 57b16fc..fe6562e 160000 --- a/mocha-common +++ b/mocha-common @@ -1 +1 @@ -Subproject commit 57b16fc34e40d636778167d1fc30014e4994531a +Subproject commit fe6562e020e9e4af79dd0659b7ffb56209088181 diff --git a/mocha-dotnet/src/app/Mocha.ServerApplication/Mocha.ServerApplication.csproj b/mocha-dotnet/src/app/Mocha.ServerApplication/Mocha.ServerApplication.csproj index 76cca44..ff80113 100644 --- a/mocha-dotnet/src/app/Mocha.ServerApplication/Mocha.ServerApplication.csproj +++ b/mocha-dotnet/src/app/Mocha.ServerApplication/Mocha.ServerApplication.csproj @@ -23,6 +23,7 @@ + diff --git a/mocha-dotnet/src/app/Mocha.ServerApplication/Program.cs b/mocha-dotnet/src/app/Mocha.ServerApplication/Program.cs index 07efa03..0c7dd21 100644 --- a/mocha-dotnet/src/app/Mocha.ServerApplication/Program.cs +++ b/mocha-dotnet/src/app/Mocha.ServerApplication/Program.cs @@ -35,6 +35,8 @@ public class Program : MochaWebApplication ShortName = "mocha-server"; } + private LibraryHandle l_System, l_Web; + private void oms_TenantCreated(object? sender, OmsTenantCreatedEventArgs e) { if (sender == null) @@ -43,8 +45,12 @@ public class Program : MochaWebApplication Oms oms = (Oms)sender; oms.SelectTenant(e.Tenant); - oms.LoadLibrary("/home/beckermj/Documents/Projects/mochapowered/mocha-suv/mocha-common/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System"); - oms.AddLibraryReference(oms.GetLibrary("Mocha.System")); + // oms.LoadLibrary("/home/beckermj/Documents/Projects/mochapowered/mocha-suv/mocha-common/mocha-common/data/libraries/yaml/net.alcetech.Mocha.System"); + oms.AddLibraryReference(l_System); + if (l_Web != LibraryHandle.Empty) + { + oms.AddLibraryReference(l_Web); + } } protected override Oms CreateOms() @@ -56,7 +62,16 @@ public class Program : MochaWebApplication PJPATH += "/../../../../../../../"; // "/home/beckermj/Documents/Projects/mochapowered/mocha-dotnet"; - LibraryHandle l_System = oms.LoadLibrary(PJPATH + "mocha-common/mocha-common/output/net.alcetech.Mocha.System.mcl"); + l_System = oms.LoadLibrary(PJPATH + "mocha-common/mocha-common/output/net.alcetech.Mocha.System.mcl"); + try + { + l_Web = oms.LoadLibrary(PJPATH + "mocha-common/mocha-common/output/net.alcetech.Mocha.Web.mcl"); + } + catch (FileNotFoundException ex) + { + Console.WriteLine("could not load net.alcetech.Mocha.Web library; routes and other Web elements may not be available"); + + } oms.TenantCreated += oms_TenantCreated; diff --git a/mocha-dotnet/src/lib/Mocha.Core/KnownInstanceGuids.cs b/mocha-dotnet/src/lib/Mocha.Core/KnownInstanceGuids.cs index 3214899..b4111d1 100755 --- a/mocha-dotnet/src/lib/Mocha.Core/KnownInstanceGuids.cs +++ b/mocha-dotnet/src/lib/Mocha.Core/KnownInstanceGuids.cs @@ -280,7 +280,6 @@ namespace Mocha.Core } public static class SystemInstanceSetRoutines { - public static Guid GetRuntimeVersion { get; } = new Guid("{dc4e6c8d-936d-457f-90e9-af47e229b80c}"); // public static Guid SystemInstanceSetRoutine { get; } = new Guid("{d17a6d27-da03-4b5d-9256-f67f978f403d}"); public static Guid GetCurrentUser { get; } = new Guid("{9ee8edda-aa1b-4766-8c31-1331be5ffb41}"); } diff --git a/mocha-dotnet/src/lib/Mocha.Core/Oms.cs b/mocha-dotnet/src/lib/Mocha.Core/Oms.cs index c109341..5c7b8a0 100644 --- a/mocha-dotnet/src/lib/Mocha.Core/Oms.cs +++ b/mocha-dotnet/src/lib/Mocha.Core/Oms.cs @@ -1150,6 +1150,9 @@ public abstract class Oms // get a list of all library loaders we have implemented LibraryPlugin[] plugins = Plugin.Get(); + if (plugins.Length == 0) + throw new InvalidOperationException("no plugins available to load library"); + foreach (LibraryPlugin plugin in plugins) { Console.WriteLine("found plugin: {0}", plugin.GetType().FullName); diff --git a/mocha-dotnet/tests/Mocha.Core.Tests/MethodTests/CommonTests.cs b/mocha-dotnet/tests/Mocha.Core.Tests/MethodTests/CommonTests.cs index 4d31987..406b029 100644 --- a/mocha-dotnet/tests/Mocha.Core.Tests/MethodTests/CommonTests.cs +++ b/mocha-dotnet/tests/Mocha.Core.Tests/MethodTests/CommonTests.cs @@ -53,6 +53,7 @@ public class CommonTests : MethodTestsBase //*** Wow, this actually works!!! ***// // ... but I wonder how long it would actually take to sift through 1000s of methods... Method m = Oms.GetMethod(c_OMS, "get", "Runtime Version"); + Assert.That(m, Is.Not.Null, "OMS does not define method `OMS@get Runtime Version (GAS)*P`"); OmsContext context = Oms.CreateContext(); InstanceHandle workData = Oms.Execute(context, m);