On Thu, 5 Oct 2006 01:42:15 +0200, Helge Hess <[EMAIL PROTECTED]> said:
> On Oct 5, 2006, at 01:27, Jeremy Bettis wrote: >> I thought that to provide a "stable" ABI, you just can't do these >> things: > ... >> But these things should not cause instabilitity: >> >> Adding a class >> Adding a method > Thats wrong. A soname fixes one API, it can be neither extended nor > reduced (nor changed in the behaviour). I already gave the example of > adding a class. Sorry, I think we have different definitions of ABI stability. My understanding is the same as Jeremy Bettis. >From my understanding of what other (non-GNUstep) library developers do (e.g. GTK, QT, etc.), they don't consider adding functionality to be breaking the ABI. The only case that they tend to worry about is running previously-compiled programs with the new library: if that use case works, then they consider ABI compatibility to not be broken. They do not usually consider the case of a newly-compiled program (possibly depending on new functionality) running on an old library. Hence adding classes or methods are generally considered OK. (And I'm pretty sure that GTK has added some new classes and functions since their 2.0.) In fact, packaging systems generally take care of the second use case: a program compiled under the new library will depend on the new version of the library (in Debian, this is done using a dependency that looks like "libgnustep-gui0.10 (>= 0.10.2)", where "libgnustep-gui0.10" represents the SONAME, and "(>= 0.10.2)" represents the minimum version number required). > You are mixing up ABIs (or more exactly sonames) with backward > compatible APIs :-) ... Actually, I think that we (Jeremy and I) are talking about providing backward-compatible ABIs, whereas you are talking about ensuring backward- and forward-compatible ABIs. -- Hubert Chan - email & Jabber: [EMAIL PROTECTED] - http://www.uhoreg.ca/ PGP/GnuPG key: 1024D/124B61FA (Key available at wwwkeys.pgp.net) Fingerprint: 96C5 012F 5F74 A5F7 1FF7 5291 AF29 C719 124B 61FA _______________________________________________ Gnustep-dev mailing list [email protected] http://lists.gnu.org/mailman/listinfo/gnustep-dev
