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

Ben Maurer 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
suggested:

> 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
check

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.

-- Ben





More information about the Mono-devel-list mailing list