[Mono-list] Mercury on Mono
Jackson Harper
jackson@latitudegeo.com
07 Apr 2003 18:57:19 -0700
Hello,
I half-awake replied to this message off the list this morning so I am
just following up 'on-the-record'.
It looks like you are using an ILAsm from a previous release (not the
version in CVS). The version in CVS can tokenize and parse this file
fine, but cannot generate a proper image from it. Could you send me the
rest of the generated il files please?
Progress on ilasm has been slow for a few reasons. First it was not
worked on for a long period of time, then I began working on it and made
a small amount of progress but the System.Reflection.Emit API was too
limiting to use for the assembler. So we switched to using PEAPI which
is a very good API, once again I made some progress but veered away from
the specifications in my eagerness to compile various pieces of code.
Now that I am an older and more experienced compiler developer ;-) I
have begun rebuilding ilasm focusing on implementing each piece of the
specification to the best of my abilities. I expect this new course of
development to be much faster (and better) and hope to have a very
useable ilasm by mid may.
Jackson
On Mon, 2003-04-07 at 06:07, Fergus Henderson wrote:
> On 01-Mar-2003, Paolo Molaro <lupus@ximian.com> wrote:
> > After a bunch of warnings about the missing type I get:
> > lupus@luna:/tmp/mercury/mercury_dotnet_hello$ mono hello.exe
> > Hello, world
> >
> > So, that's a good start, though I don't know how much real mercury code
> > the test uses to run.
>
> Using Mono 0.23 on Debian Linux, I have tested several cases by
> hand, making use of Mercury features such as parametric polymorphism,
> backtracking, and higher-order code, and they all work fine. My next step
> is running the full Mercury test suite... currently that is underway.
> (The results so far look reasonably good, although there are still
> quite a lot of failures -- of the first 185 tests, about 30% failed.
> I haven't yet analyzed the causes of the failures.)
> This is all using a version of the Mercury library for .NET that was built
> on Windows, and using the Portable.NET version of ilasm to assemble each
> test (because the Mono ilasm didn't work).
>
> Some comments:
>
> - Attempting to run "mono" on a DLL rather than an EXE
> results in a poor (confusing) error message -- in some
> cases, an assertion failure.
>
> - The most recent version of Mono's "ilasm" that I could find
> was "Mono ILasm compiler version 0.0.3.0". Is that the
> current version? Is there a newer version?
>
> - Mono's ilasm 0.0.3.0 barfed on some constructs in the
> Mercury-generated .il files, e.g. the `tak.il' file attached,
> reporting the following error message:
>
> Unhandled Exception: Mono.ILASM.ILSyntaxError: Bad number format!
> in <0x00283> 00 Mono.ILASM.NumberHelper:Build ()
> in <0x004b9> 00 Mono.ILASM.ILTokenizer:GetNextToken ()
> in <0x00012> 00 Mono.ILASM.ILTokenizer:get_NextToken ()
> in <0x00021> 00 Mono.ILASM.ScannerAdapter:advance ()
> in <0x001fa> 00 Mono.ILASM.ILParser:yyparse (Mono.ILASM.yyParser.yyInput)
> in <0x00053> 00 Mono.ILASM.ILParser:yyparse (Mono.ILASM.yyParser.yyInput,object)in <0x0016f> 00 .DriverMain:ProcessFile (string)
> in <0x0017d> 00 .DriverMain:Run ()
> in <0x0003f> 00 Mono.ILASM.Driver:Main (string[])
--
Jackson Harper <jackson@latitudegeo.com>