dotgnu-pnet
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Pnet-developers] Making Mercury work with DotGnu


From: Jonathan Morgan
Subject: [Pnet-developers] Making Mercury work with DotGnu
Date: Fri, 7 Apr 2006 23:32:49 +1000

Mercury is a logic programming language.  The researchers on it were
paid by Microsoft to develop an IL backend, which works with the
Microsoft .NET framework.  I am currently trying to make it work with
DotGnu.

The Mercury build process first compiles all Mercury code to IL. 
Foreign code can be specified as any of IL, C# or Managed C++, and
this will be placed into separate C# or MC++ files.  IL files are then
compiled to modules, the C# and MC++ files are also compiled into
modules, and then these are all linked into an assembly with al
(ilalink).

When trying to build the Mercury standard library all IL files are
correctly compiled to DLLs.  However, the first time C# foreign code
references mercury.runtime (defined in mercury_dotnet.cs, which has
been compiled earlier, and is referenced in a -fmodule= statement) it
fails, with output like:
builtin.m:621: `runtime' is not a member of the namespace `mercury'

Also, it seems that DotGnu ilasm produces complete assemblies, whereas
MS ilasm produces modules.  This means that if you try and use DotGnu
generated DLLs with MS csc it fails, stating that the dll is not a
module.

Any ideas?

Jon


reply via email to

[Prev in Thread] Current Thread [Next in Thread]