Authors
- Adam Fedor (
fedor@gnu.org
)
-
Version: $Revision: 1.11 $
Date: $Date: 2005/12/21 18:57:22 $
Copyright: (C) 2005 Free Software Foundation, Inc.
The release notes include descriptions of API changes, behavior changes and other information that might help developers and users migrate to using a newer version of the library.
- GNUstep.conf and relocation
-
Support for GNUstep.conf and relocation of the filesystem is much improved in this release.
- Windows platform
-
The WM_QUIT message is now intercepted to allow an application to terminate cleanly.
- NSMessagePort - Windows platform
-
NSMessagePort was implemented on Windows platforms.
- NSOpenStepRootDirectory
-
This function has been un-deprecated, and the documentation clarified so it is easier to understand what it does and does not do.
- GNUsteprc
-
Deprecated support for system-wide GNUsteprc files has been removed.
- NSSortDescriptor
-
New class.
- NSStringFromPoint, NSStringFromRect, NSStringFromSize
-
Functions now output strings that can be read by old OpenStep implementations (but can also still be read by GNUstep and MacOSX).
- Debugging support
-
More support for debugging on mingw, including writing logs to debugger and event viewer.
The interface version of the base library has changed in this release. Applications, libraries and tools that wish to use this new version must be recompiled (otherwise, they'll use the older version of the library).
- Window's changes
-
A lot of the behavior of path handling in the base library has changed with respect to Window's machines. Windows native paths are used throughout. The fileSystemRepresentation methods now use utf-16 as the external c-string representation on windows. The local to openstep and openstep to local methods are now deprecated and do nothing. Other changes to classes and class variables have also occurred (detailed below).
- Path/Startup configuration
-
At the startup of any application or tool, GNUstep used to look at various environment variables in order to find the location of various data directories and other things. GNUstep still does this, but the environment variables are no longer required to find these files. In addition the configuration files used to override certain path behavior has been changed and expanded. See the base library documentation on GNUstep Configuration Files for more information.
- NSCharacterSets
-
Character sets are included in the library itself instead of being loaded from a data file. Also, the NSBitmapCharSet API has been removed.
- NSPathUtilities
-
Depreciated functions GSSystemRootDirectory and GSStandardPathPrefixes. In addition, beware of using the function NSOpenStepRoot, which may not necessarily return the information you need (see the documentation for this function for more info). Enumeration values for NSSearchPathDirectory have changed.
- NSRunLoop
-
NSRunLoop and related classes now use native win32 event handling on Window's machines. See also GSFileHandle, NSSocketPort and NSMessagePort.
- GSFileHandle
-
This GNUstep specific class has a new ivar on Windows.
- NSSocketPort, NSMessagePort
-
This class has a new ivar on Windows.
- NSPortNameServer
-
A one-time warning is printed concerning a future change in which nsconnections will only work between processes owned by the same account on the same machine, for MacOSX compatibility and security. If inter-host/user communication is desired, the developer will need to set this explicitly.
- Keyed Encoding
-
Work was done in many classes to support keyed encoding. It may not be fully implemented in every class, however.
This release includes a few minor bug fixes.
This release is most likely the last release in this series, aside from possible bug fixes. It was was branched from CVS on Feb 22, 2005.
- NSContainsRect behavior change
-
The definition of NSContainsRect has changed to correspond with the current Mac OS X/Cocoa definition. The sides of the bRect can touch aRect.
- Unichar file paths
-
Windows supports unichar file paths, but there isn't really an API for handling this. GNUstep-specific methods for dealing with this have been added,
NSFileManager's -localFromOpenStepPath
and openStepPathFromLocal
and equivalent methods for NSString
. In most cases the Base library should handle this problem internally, but it's possible that there are cases where the developer wants to handle the file name explicitly with system-specific functions.
- NSDictionaryErnumerator
-
Some ivars in NSDictionaryEnumerator have changed types, but the total storage space has not changed. This may cause problems if you access ivars directly, perhaps through a subclass.
- NSNotification -setImmutablePost
-
This GNUstep extension method was removed.
- NSPort extension methods
-
Unimplemented GNUstep extension methods
-close
, -outPackedClass
, and +outPackedClass
were removed.
- NSTimeZone -abbreviationDictionary
-
NSTimeZone
's abbreviation dictionary is now a proper one-to-one dictionary.
- Runtime version discovery of library
-
A developer can discover the version of the base library that is loaded using the NSBundle methods
[[NSBundle bundleForLibrary: @"gnustep-base"] infoDictionary]
and retrieving the GSBundleVersion key.
- NSXMLParser class added
-
This is a Cocoa class that has been added for compatibility. The class is still alpha state.
- NSArray makeObjectsPerformSelector:
-
The order of iteration through objects was changed to match Cocoa.
- Designated initializer changes
-
The designated initializer for NSArray, NSDictionary, NSSet, and NSString for MacOS X compatibility. Like MacOS X, you can call
[super init]
to initialize the class from a subclass, although it is prefered that you use the designated initializer, with it's richer set of initializers.
- Interface version change
-
The interface version of the base library has changed in this release, as it will in all future releases with a new minor number (that's the second number in the release number). Applications, libraries and tools that wish to use this new version must be recompiled (otherwise, they'll use the older version of the library). There is no single reason for this change. Arguably, it should have been done long ago.
- NSString clarification
-
The NSString documentation contains some clarification on the lifetime of returned NSString objects.
- URL classes support persistant connections
-
The NSURLHandle and other classes have support for persistant connections.
- NSMethodSignature clarification
-
Recent compiler releases have exposed a flaw in the way GNUstep gathers signature information. The documentation explains how the information for offset and registers may not be reliable.
- Mac OS X compatibility
-
There have been many fixes in various classes for Mac OS X compatibility, particularly relating to XML encoding.
- GSMime parsing ignores extraneous data
-
When extraneous data is encountered in the input, it is ignored (and a warning logged) rather than adding it to the message body. Not sure this is right though, perhaps we should raise an exception or extend the api to return the extra data. Anyway, it's better than the previous behavior of adding the bad data to the parsed body.
- New log functions GSOnceFlag and GSOnceMLog
-
Log messages the first time the code is executed. Typical usage is to log warnings about deprecated features.
- NSError
-
New MacOSX compatibility class
- GSObjCRuntime
-
Multiple new runtime functions that work with both GNU and Apple runtimes. These functions allow you to look at method lists, add and remove methods (for instance, if you want to make sure your method in a category overrides another method in a category).
- NSProtocolChecker rewritten
-
Was previously almost non-functional.
- autogsdoc
-
Support added for building frames structured documentation. Add the flag
-MakeFrames YES
to the autogsdoc command line.
- Binary incompatibilities
-
NSUnarchiver, GSIMapTable have new ivars added to them. Tools and applications that use these classes may need to be recompiled after the new library is installed.