On 21 May 2009, at 10:34, Wolfgang Lux wrote:

Have you ever looked at what Apple is doing? I can use executables compiled on Mac OS X 10.2 on Mac OS X 10.5 without any problems and Mac OS X does ship with only a single instance of all its libraries/ frameworks

Only half of this is true. Apple only ships one version of its frameworks. Each framework, however, contains different versions of the libraries. You may have noticed all of the OS X version macros in the headers. Each of those defines the parts of the interface that are visible in a particular version of the framework, but they are also used when compiling. Each version of OS X has a Foundation.framework containing several libFoundation.dylib files, one compiled for compatibility with each previous version. Without access to their source, I can't be completely sure how they are doing this, but my guess is that each ivar and each method - even each typedef - has the same feature macros in front of it and their build system automatically generates a backwards-compatible version as long as these changes are made.

It would be nice if GNUstep make had facilities for doing this, but I imagine it would be a lot of effort. It would also be easier if we could rely on a loader that supported frameworks properly, but I believe Matt Rice is the only person who has one of these on a non- NeXT/Apple platform.

David


_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev

Reply via email to