[Mono-devel-list] [PATCH] Move of Interlocked.Increment/Decrement/Exchange I4 to op codes
bmaurer at ximian.com
Tue Nov 30 09:49:57 EST 2004
>> The abi is more than a list of fields and offsets. The meaning of a
> Good, so it looks like you at least read the part of my email where I
> said that.
>> field can be changed without changing its name. There are also many
>> other changes that could be made (for example, sorting instance fields
>> so that we avoid holes) which would not change this ABI. Rather than
> Wrong. Changing the fields order and offsets _will_ change the
> aot <-> runtime ABI. Sigh.
By `ABI' i meant the automatically detected ABI by the compiler you
> Also, from a security standpoint, I prefer to add the info about the
> embedded offsets and other automatically checked data, because it
> reduces the chances there is a human error in increasing the aot
> version. Your solution would be a security nightmare.
It was probably the wrong word to use.
I think we actually agree here:
- We need to make sure that the aot files are invalidated
- It is safer to use automatic checks rather than depend on humans bumping
version numbers, for security reasons
- An the aot <-> runtime abi is more abstract than what the compiler can
Your suggestion was to embed some hash of the offsets and other ABI data
that the compiler could detect. I suggested invalidating on every build,
because the abi is more than the compiler can check. My corlib idea was
broken, it depended on an oddity of the old build system.
More information about the Mono-devel-list