[Mono-list] Mercury on Mono (not successful)

Fergus Henderson fjh@cs.mu.oz.au
Fri, 28 Feb 2003 06:09:47 +1100

On 27-Feb-2003, Paolo Molaro <lupus@ximian.com> wrote:
> On 02/27/03 Fergus Henderson wrote:
> > The first one is that Mono doesn't search the GAC.
> > OK, that one is easy to work around; just add the appropriate
> > directory to the PATH.
> Is there a windows developer here? I someone can provide the code
> that returns the path to the GAC, I'll add it to the default search path
> when running in windows.

On my system it is in C:\WINNT\assembly\GAC, with each assembly under

> There are still two issues:
> 1) in the files you provided a type is referenced, but I could not find
> it defined in any module:
> 	 [mercury]mercury.private_builtin.ref_1
> I guess a file is missing from the tarball.

No, that type is indeed referenced but not defined.  This is a currently
not-yet-implemented part of the Mercury standard library.  I hadn't noticed
that until now, because it works in Microsoft.NET.  It works because
that type is never actually used at run-time.  Not sure what the ECMA
standard says about this, but in any case I can fix our source to
define that type.

> 2) references to nested types are encoded with (for example):
> 	namespace = mercury.list
> 	name = list_1/[|]_2
> I always thought that was not allowed and that you should use a typeref
> to the parent with:
> 	namespace = mercury.list
> 	name = list_1
> and a typeref to the typeref with:
> 	namespace = 
> 	name = [|]_2

Well, we just spit out IL assembler and let ilasm.exe handle it.
We generate the name 'mercury'.'list'.'list_1'/'[|]_2', which I
believe is correct according to the ECMA spec.

> I guess we'll have to handle also this special case.

That would be good.

Fergus Henderson <fjh@cs.mu.oz.au>  |  "I have always known that the pursuit
The University of Melbourne         |  of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh>  |     -- the last words of T. S. Garp.