[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
C:\WINNT\assembly\GAC\<namespace>\<version>__<publickeytoken>.
> 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.