[Mono-list] Static CIL Libraries
Jonathan Pryor
jonpryor@vt.edu
18 Oct 2002 13:10:32 -0400
Inline.
On Fri, 2002-10-18 at 07:46, Fergus Henderson wrote:
> On 17-Oct-2002, Daniel Morgan <danmorg@sc.rr.com> wrote:
<snip/>
> | 3. Assembly resolution at static link time.
> |
> | .NET assumes a particular model of symbol resolution where the
> | decision of which assembly (the .NET unit of distribution)
> | each symbol belongs to is determined *at compile time*.
> | Mercury has a different model, where at compile time we only resolve
> | which *compilation unit* (which in Mercury are called "modules")
> | each symbol belongs to. Then at *static link time*, compilation
> | units are grouped into "libraries" (the Mercury unit of distribution).
> | Only then, at static link time rather than at compile time,
> | can it be determined which distribution unit (i.e. assembly)
> | each symbol reference refers to.
.NET permits this with multi-file assemblies. The names are different,
but I believe the results are the same.
Name translation:
"compile time" --> "creation of .netmodule file"
"static link time" --> "creation of assembly"
There may be some differences -- I'm not familiar enough with how
Mercury does things, and I just started looking at .netmodule files this
morning -- but they seem to be a reasonably close match.
> | The model that Mercury uses is more flexible. And of course this
> | model is not specific to Mercury; the same thing is supported by
> | traditional linkers for Unix and Windows. But it is not supported
> | by .NET.
Please see my other reply in the "Static CIL Libraries" thread.
<snip/>
> --
> 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.
- Jon