[Mono-devel-list] [PATCH] Move of Interlocked.Increment/Decrement/Exchange I4 to op codes

Ben Maurer bmaurer at ximian.com
Mon Nov 29 07:19:41 EST 2004

On Mon, 2004-11-29 at 11:01 +0100, Paolo Molaro wrote:
> On 11/27/04 Miguel de Icaza wrote:
> > > We need to add the number of cpus in the aot file, so if that changes
> > > we won't load it.
> > 
> > We discussed on IRC a possible approach: there should be a few bits that
> > describe the CPU characteristics, and it should be possible to force the
> > AOT engine to build with these different bits set.
> Of course we should remember to change the aot format every time we change
> the internal data structures used in the code, or we should add to the file
> a description of all the dependencies. For example, we embed in
> the code the offsets of many fields in some runtime structures.
> To make the representation compact we could take the md5sum of all the 
> needed data and store that.

I think there is an easier way to do this. We need to make sure the GUID
of all the assemblies we depend on has not changed. Why? Field offsets
could have changed, also, with inlining we might have inlined a method
that has changed.

With our current system, every time you do a build, mscorlib.dll is
built, and thus has a different GUID. This will invalidate every aot'd
assembly. So no need to look at the runtime really, as the corlib change
will invalidate it for us.

Of course, this is a bit annoying for hackers as we effectively have to
aot stuff every time we change an assembly. But such is life.

-- Ben

More information about the Mono-devel-list mailing list