GNUstep Base 0.1 28 February, 2000 Base

The GNUstep base library is a free software package implementing the API of the OpenStep Foundation Kit (tm), including later additions.

Compatibility

GNUstep is generally compatible with the OpenStep specification and with recent developments of the MacOS (cocoa) API. Where MacOS deviates from the OpenStep API, GNUstep generally attempts to support both versions. In some cases the newer MacOS APIs are incompatible with OpenStep, and GNUstep usually supports the richer version.

In order to deal with compatiblity issues, GNUstep uses two mechanisms - it provides conditionally compiled sections of the library header files, so that software can be built that will conform strictly to a particular API, and it provides user default settings to control the behavior of the library at runtime.

Conditional compilation

Adding an option to a makefile to define one of the following preprocessor constants will modify the API visible to software being compiled -

NO_GNUSTEP GNUstep specific extensions to the OpenStep and MacOS cocoa APIs are excluded from the headers. STRICT_MACOS_X Only methods and classes that are part of the MacOS cocoa API are made available in the headers. STRICT_OPENSTEP Only methods and classes that are part of the OpenStep specification are made available in the headers.
User defaults

Setting the user default GSMacOSXCompatible to YES will cause MacOS compatible behavior to be the default at runtime. This default may however be overridden to provide more fine grained control of system behavior.

GSMacOSXCompatibleGeometry Specifies whether the functions for producing strings describing geometrical structures (NSStringFromPoint(), NSStringFromSize(), and NSStringFromRect()) should produce strings conforming to the OpenStep specification or to MacOS-X behavior. The functions for parsing those strings should cope with both cases anyway.
The Foundation classes NSArchiver NSArray NSAssertionHandler NSAttributedString NSAutoreleasePool NSBundle NSCalendarDate NSCharacterSet NSCoder NSConditionLock NSConnection NSCountedSet NSDate NSDateFormatter NSDecimalNumber NSDecimalNumberHandler NSDeserializer NSDictionary NSDirectoryEnumerator NSDistantObject NSDistantObjectRequest NSDistributedLock NSDistributedNotificationCenter NSEnumerator NSException NSFileHandle NSFileManager NSFormatter NSHost NSInvocation NSLock NSMethodSignature NSMutableArray NSMutableAttributedString NSMutableCharacterSet NSMutableData NSMutableDictionary NSMutableSet NSMutableString NSNotification NSNotificationCenter NSNotificationQueue NSNumber NSNumberFormatter NSObject NSPort NSPortCoder NSPortMessage NSPortNameServer NSProcessInfo NSProtocolChecker NSProxy NSRecursiveLock NSRunLoop NSScanner NSSerializer NSSet NSString NSTask NSThread NSTimeZone NSTimer NSURL NSURLHandle NSUnarchiver NSUndoManager NSUserDefaults NSValue
The GNUstep extension classes GSXML