[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