[Mono-devel-list] Assembly binary compatibility?

Michi Henning michi at zeroc.com
Wed May 4 03:01:10 EDT 2005


> In general, adding or removing an override is not a breaking change.
>
> Finalize works by chaining to the parent using base.Finalize. calling a
> method on base will always say call <my direct parent>.Method. In the
> JIT we would in the debug build see: "my direct parent" has the finalize
> method so call that, but in the non-debug build see "my direct parent"
> doesn't have a finalizer, so lets try one in the parent of that class.
>
> Sadly, due to some limitations in System.Reflection, MCS does not
> implement this correctly.
>
> http://bugzilla.ximian.com/show_bug.cgi?id=26204
>
> As you can tell, thats a pretty old bug ;-(

Thanks for the explanation, Ben! What about other changes though?
Is it safe to add public data member? Safe to add a public method?
Safe to add a private method or data member?

Basically, what I'd like to find is a list that details exactly what is and
isn't
binary compatible.

Cheers,

Michi.

--
Michi Henning              Ph: +61 4 1118-2700
ZeroC, Inc.                http://www.zeroc.com





More information about the Mono-devel-list mailing list