Well on OS X Mavericks I have 
/System/Library/Frameworks/Foundation.framework/Version/C/Foundation - and I 
can assume tat versions A are from NeXTSTEP (possibly used in early PPC OS X 
too)

Also, I distribute my CGIKit framework in two versions, version F and G - 
versions F and G have different implementations to support different server 
interfaces, either Apache FastCGI or ohttpd bundle interface.

On Dec 12, 2013, at 15:20, Greg Parker <gpar...@apple.com> wrote:

> On Dec 11, 2013, at 10:46 PM, Maxthon Chan <xcvi...@me.com> wrote:
>> Bad example - you should use the example between NeXTSTEP/Mach and OS X, 
>> which the identical technology, library versioning, is used. (People do you 
>> still remember that OS X derived from NeXTSTEP, to the extent that OS X 10.0 
>> have version number 4.0, picking up where NeXTSTEP left off, and this still 
>> count till now like OS X 10.9 = NeXTSTEP 13?)
>> 
>> Also, there is no need of “compatibility mode” as library versioning will 
>> allow that with a framework like this
>> 
>> UIKit.framework/
>> + UIKit -> Versions/Current/UIKit
>> + Headers -> Versions/Current/Herders
>> + Resources -> Versions/Current/Resources
>> + Versions/
>> ++ A/
>> +++ UIKit
>> +++ Headers/
>> +++ Resources/
>> ++ B/
>> +++ UIKit
>> +++ Headers/
>> +++ Resources/
>> ++ Current -> B
>> 
>> The version A of UIKit library is what is shipped in iOS 6 (and before), 
>> almost as-is. Version B is iOS 7 UIKit that have all the new bells and 
>> whistles.
> 
> UIKit does not use this versioning mechanism. I believe no framework on OS X 
> uses it, and the machinery may have been removed from iOS.
> 
> Framework versioning does not scale. The problem is that any use of 
> versioning requires duplication across the rest of the system. Say you 
> created Versions/A/UIKit and Versions/B/UIKit. Any client of UIKit like 
> MapKit now also needs versions A and B, because it can't have just one 
> version that links to both UIKits. Propagate that across the rest of the 
> framework tree and you end up with two complete copies of every system 
> framework. That's bad for disk space and memory usage, if you have two apps 
> open that use different versions.
> 
> Versioning might have been during NeXT's great Object->NXObject or 
> NXObject->NSObject overhauls. (I don't know, I wasn't there.)  It has been 
> used approximately zero times in the OS X and iOS eras.
> 
> 
> -- 
> Greg Parker     gpar...@apple.com     Runtime WRangler

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to