[Mono-list] Mercury on Mono

Jackson Harper jackson@latitudegeo.com
07 Apr 2003 18:57:19 -0700


	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.



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".  Is that the
> 	  current version?  Is there a newer version?
> 	- Mono's ilasm 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>