libs-base/Documentation/ReleaseNotes.gsdoc

425 lines
15 KiB
Text
Raw Normal View History

<?xml version="1.0"?>
<!DOCTYPE gsdoc PUBLIC "-//GNUstep//DTD gsdoc 1.0.1//EN" "http://www.gnustep.org/gsdoc-1_0_1.xml">
<!--
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
-->
<gsdoc base="ReleaseNotes">
<head>
<title>GNUstep Base Release Notes</title>
<author name="Adam Fedor">
<email address="fedor@gnu.org"/>
<url url="http://www.gnustep.org/developers/whoiswho.html"/>
</author>
<version>$Revision$</version>
<date>$Date$</date>
<copy>2005 Free Software Foundation, Inc.</copy>
</head>
<body>
<chapter>
<heading>Base Release Notes</heading>
<p>
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.
</p>
<section>
<heading>Version 1.12.0</heading>
<p> There have been a number of API changes and several
methods have been depreciated in this release. Although
current GNUstep programs that use these methods will still
work in this version, there are enough changes that a new
library version was considered useful.
</p>
<deflist>
<term>NSCoder deprecated methods</term>
<desc>
Several methods using the old libObjects style scheme
<code>withName:</code> are now deprecated. You can use the new
NSKeyedArchiver and NSKeyedUnarchiver functionality to perform
the same function in a much more portable way.
</desc>
<term>NSPortCoder, NSPortMessage private methods</term>
<desc>
The private method <code>_components</code> was removed
from the public interface.
</desc>
<term>NSString -getCString:maxLength:encoding:</term>
<desc>
The return type of this function was changed to BOOL.
</desc>
<term>NSBundle deprecated and private methods</term>
<desc>
Several deprecated and private methods were removed from
the public interface including
<code>+gnustepBundle</code>, and
<code>+pathForGNUstepResource:ofTpye:inDirectory:</code>.
</desc>
<term>NSNotificationCenter deprecated method</term>
<desc>
The GNUstep method <code>setLockingDisabled:</code> method
was deprecated.
</desc>
<term>NSNotificationQueue private functions</term>
<desc>
Private functions <code>GSNotifyASAP</code>,
<code>GSNotifyIdle</code>, and <code>GSNotifyMore</core>
were removed from public interface.
</desc>
<term>NSRunLoop watcher API updates and other changes</term>
<desc>
We are starting to integrate the Cocoa NSStream classes
into GNUstep, which allow you to do much the same things
as the GNUstep-specific run loop watcher API was
intended. At some point the watcher API will be deprecated
as it will be redundant with NSStream functionality. Also
the deprecated win32 specific methods for NSRunLoop were
removed.
</desc>
<term>NSAttribtedString deprecated method</term>
<desc>
The non-standard
<code>attributedSubstringWithRange:</code> method (just a
synonym for the real method) was deprecated.
</desc>
<term>NSConnection, NSDistantObject method removal</term>
<desc>
Several legacy methods from the original GNU Connection
class were removed or moved to the additions category of
the library.
</desc>
<term>NSAutoreleasePool private methods</term>
<desc>
The private method <code>_endThread:</code> was removed
from the public interface.
</desc>
<term>NSPortNameServer private methods</term>
<desc>
Several private methods were removed from the public interface.
</desc>
<term>NSStream, NSIndexPath</term>
<desc>
New classes added to the library.
</desc>
<term>NSUserDefaults improvements</term>
<desc>
User defaults were restructured to create the defaults
lazily and can be set to not write to an external file at
all, for developers who wish to use the library as a
stand-alone library or in other situations where using
external resources is not desired.
</desc>
</deflist>
</section>
<section>
<heading>Version 1.11.2</heading>
<deflist>
<term>GNUstep.conf and relocation</term>
<desc>
Support for GNUstep.conf and relocation of the filesystem is
much improved in this release.
</desc>
<term>Windows platform</term>
<desc>
The WM_QUIT message is now intercepted to allow an application to
terminate cleanly.
</desc>
<term>NSMessagePort - Windows platform</term>
<desc>
NSMessagePort was implemented on Windows platforms.
</desc>
<term>NSOpenStepRootDirectory</term>
<desc>
This function has been un-deprecated, and the documentation
clarified so it is easier to understand what it does and does
not do.
</desc>
<term>GNUsteprc</term>
<desc>
Deprecated support for system-wide GNUsteprc files has
been removed.
</desc>
</deflist>
</section>
<section>
<heading>Version 1.11.1</heading>
<deflist>
<term>NSSortDescriptor</term>
<desc>
New class.
</desc>
<term>NSStringFromPoint, NSStringFromRect, NSStringFromSize</term>
<desc>
Functions now output strings that can be read by old
OpenStep implementations (but can also still be read by GNUstep and
MacOSX).
</desc>
<term>Debugging support</term>
<desc>
More support for debugging on mingw, including writing logs to
debugger and event viewer.
</desc>
</deflist>
</section>
<section>
<heading>Version 1.11.0</heading>
<p>
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).
</p>
<deflist>
<term>Window's changes</term>
<desc>
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).
</desc>
<term>Path/Startup configuration</term>
<desc>
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.
</desc>
<term>NSCharacterSets</term>
<desc>
Character sets are included in the library itself instead
of being loaded from a data file. Also, the
NSBitmapCharSet API has been removed.
</desc>
<term>NSPathUtilities</term>
<desc>
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.
</desc>
<term>NSRunLoop</term>
<desc>
NSRunLoop and related classes now use native win32 event
handling on Window's machines. See also GSFileHandle,
NSSocketPort and NSMessagePort.
</desc>
<term>GSFileHandle</term>
<desc>
This GNUstep specific class has a new ivar on Windows.
</desc>
<term>NSSocketPort, NSMessagePort</term>
<desc>
This class has a new ivar on Windows.
</desc>
<term>NSPortNameServer</term>
<desc>
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.
</desc>
<term>Keyed Encoding</term>
<desc>
Work was done in many classes to support keyed
encoding. It may not be fully implemented in every class, however.
</desc>
</deflist>
</section>
<section>
<heading>Version 1.10.3</heading>
<p>
This release includes a few minor bug fixes.
</p>
</section>
<section>
<heading>Version 1.10.2</heading>
<p>
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.
</p>
<deflist>
<term>NSContainsRect behavior change</term>
<desc>
The definition of NSContainsRect has changed to
correspond with the current Mac OS X/Cocoa definition. The
sides of the bRect can touch aRect.
</desc>
<term>Unichar file paths</term>
<desc>
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, <code>NSFileManager's
-localFromOpenStepPath</code> and
<code>openStepPathFromLocal</code> and equivalent methods for
<code>NSString</code>. 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.
</desc>
<term>NSDictionaryErnumerator</term>
<desc>
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.
</desc>
<term>NSNotification -setImmutablePost</term>
<desc>
This GNUstep extension method was removed.
</desc>
<term>NSPort extension methods</term>
<desc>
Unimplemented GNUstep extension methods <code>-close</code>,
<code>-outPackedClass</code>,
and <code>+outPackedClass</code> were removed.
</desc>
<term>NSTimeZone -abbreviationDictionary</term>
<desc>
<code>NSTimeZone</code>'s abbreviation dictionary is now
a proper one-to-one dictionary.
</desc>
</deflist>
</section>
<section>
<heading>Version 1.10.1</heading>
<p>
</p>
<deflist>
<term>Runtime version discovery of library</term>
<desc>
A developer can discover the version of the base library that
is loaded using the NSBundle methods
<code>[[NSBundle bundleForLibrary: @"gnustep-base"] infoDictionary]</code>
and retrieving the <var>GSBundleVersion</var> key.
</desc>
<term>NSXMLParser class added</term>
<desc>
This is a Cocoa class that has been added for
compatibility. The class is still alpha state.
</desc>
<term>NSArray makeObjectsPerformSelector:</term>
<desc>
The order of iteration through objects was changed to
match Cocoa.
</desc>
<term>Designated initializer changes</term>
<desc>
The designated initializer for NSArray, NSDictionary,
NSSet, and NSString for MacOS X compatibility. Like
MacOS X, you can call <code>[super init]</code> to initialize
the class from a subclass, although it is prefered that you use
the <em>designated initializer</em>, with it's richer
set of initializers.
</desc>
</deflist>
</section>
<section>
<heading>Version 1.10.0</heading>
<p>
</p>
<deflist>
<term>Interface version change</term>
<desc>
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.
</desc>
<term>NSString clarification</term>
<desc>
The NSString documentation contains some clarification
on the lifetime of returned NSString objects.
</desc>
<term>URL classes support persistant connections</term>
<desc>
The NSURLHandle and other classes have support for
persistant connections.
</desc>
<term>NSMethodSignature clarification</term>
<desc>
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.
</desc>
<term>Mac OS X compatibility</term>
<desc>
There have been many fixes in various classes for Mac
OS X compatibility, particularly relating to XML encoding.
</desc>
</deflist>
</section>
<section>
<heading>Version 1.9.2</heading>
<p>
</p>
<deflist>
<term>GSMime parsing ignores extraneous data</term>
<desc>
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.
</desc>
<term>New log functions GSOnceFlag and GSOnceMLog</term>
<desc>
Log messages the first time the code is executed. Typical
usage is to log warnings about deprecated features.
</desc>
<term>NSError</term>
<desc>
New MacOSX compatibility class
</desc>
<term>GSObjCRuntime</term>
<desc>
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).
</desc>
<term>NSProtocolChecker rewritten</term>
<desc>
Was previously almost non-functional.
</desc>
<term>autogsdoc</term>
<desc>
Support added for building frames structured documentation.
Add the flag <code>-MakeFrames YES</code> to the autogsdoc
command line.
</desc>
<term>Binary incompatibilities</term>
<desc>
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.
</desc>
</deflist>
</section>
</chapter>
</body>
</gsdoc>