[Mono-dev] another corcompare patch to hide extraneous"IsVirtual"differences

Atsushi Eno atsushi at ximian.com
Fri Nov 4 00:55:48 EST 2005


Kornél Pál wrote:
> Hi,
> Of course people assuming unusual things or depending on bugs will suck
> anyway and I usually don't support their nonsense but if we allow this
> difference different IL code will be generated from the same source code on
> Mono and MS.NET because the referenced assemblies would have different API.
> Having internal interfaces is not a problem. The problem is when the 
> virtual
> status of a publically visible (public or protected) method differ between
> MS.NET and Mono as that results in different IL code and behavior on Mono
> and MS.NET. So IsVirtual has to match MS.NET without regard to IsSealed or
> to anything else.

Having internal interfaces affects on IsVirtual value. Thus we can't
just expect exactly same MethodAttributes values.

Or you might be suggesting that corcompare should check if each method
implements internal interfaces or not, but it will result in significant
performance issue for that too-niche purpose.

Anyways it would be time to introduce some "options" in corcompare
tools to check both practical API compatibility and to satisfy
those canonicalized people who think everything must be equivalent
to MS.NET. There is another discussion that we don't need ComVisible
attribute check, Serializable on enums/delegates, and so on.

Atsushi Eno

More information about the Mono-devel-list mailing list