We are pleased to announce you the availability of libFoundation 0.9.0, a free and almost complete implementation of Foundation Kit as defined by the OpenStep specifications, plus more classes that come with the newest releases of OPENSTEP 4.x and Rhapsody. It completely or almost completely implements the following classes: NSObject NSString, NSMutableString NSArray, NSMutableArray NSDictionary, NSMutableDictionary NSSet, NSMutableSet NSData, NSMutableData NSValue, NSNumber NSDate, NSCalendarDate, NSTimeZone NSCharacterSet NSEnumerator NSAutoreleasePool NSException NSNotification, NSNotificationCenter NSCoder, NSArchiver, NSUnarchiver NSScanner NSInvocation, NSMethodSignature NSFileManager NSBundle NSProcessInfo NSAccount NSDistributedLock NSPosixFileDescriptor, NSFileHandle, NSPipe NSTimer NSRunLoop NSThread, NSTask NSUserDefaults NSHost Some extensions to the OpenStep specification are also present. They include an extended exception handling mechanism, a garbage collector based on reference counting and a printf-like formatting class. In addition to the reference counting garbage collector, the 0.9.0 release comes with support for the Boehm's garbage collector, which add true garbage collection to OpenStep applications. The exception handling mechanism is very similar with those found in Java and C++ and requires support for nested functions from the compiler. The garbage collectors adds the benefits of automatic or pseudo-automatic garbage collection to the OpenStep programs and it is fully integrated with OpenStep classes. The printf-like formatting class is a general purpose class that can be used to do various operations that require parsing of format strings like in printf(). This class is used for example to do all the formatting jobs in the NSString class in libFoundation. There is another class UnixSignalHandler designed for giving an object-oriented approach to the Unix signal handling. These extensions are also available in a separate library for other OpenStep Foundation implementations; the current supported Foundation libraries are gnustep-base and the Foundation library in OPENSTEP 4.x. We dropped the support for the buggy implementation of the Foundation library that comes with NeXTSTEP 3.3; sorry for this. The library requires GCC 2.8.1 or the EGCS 1.0.x compilers if you want true garbage collection support. Patches for both compilers are included in the distribution. If you don't need true garbage collection you can still use the 2.7.2.1 compiler with an Objective-C patch from ftp://alpha.gnu.org/gnu/gnustep/contrib/gcc-2.7.2.1-objc-970318.diff.gz ftp://ftp.net-community.com/pub/GNUstep/gcc-2.7.2.1-objc-970318.diff.gz On NeXTStep machines the library can also be compiled with NeXT Objective-C runtime besides the GNU runtime although the NeXT compiler is not supported. Note that the library does not currently compile with the NeXT runtime under OPENSTEP 4.x. In the future the OPENSTEP 4.x and NeXTSTEP 3.3 platforms will be no longer supported. The library was ported on the following platforms: - m68k-next-nextstep3 - i386-next-nextstep3 - i386-pc-linux-gnu - i386-pc-cygwin32 (Windows NT) - i386-unknown-solaris2.5.1 - sparc-sun-solaris2.5 - alpha-unknown-linux-gnu - powerpc-ibm-aix4.1.5.0 The library also runs with GNU runtime on OPENSTEP 4.x for Mach with the GNU compiler (not the native one). Anybody interested in the compiler for OPENSTEP 4.x please contact us. Support for Distributed Objects has been delayed until the next release. We plan to base the code upon the Corba's IIOP, so that OpenStep programs using libFoundation will be able to interoperate with Corba programs without changes through the Distributed Objects mechanism. Changes in version 0.9.0 since version 0.8.0: * The most important change is the support for Boehm's conservative garbage collector, that makes the memory management much more easier than the reference counting mechanism. Many thanks to Helge Hess for persuading me to implement this facility and also for his support. * Some portions of the code have been optimized to gain speed: objects that were previously allocated in some functions or methods at each invocation have been allocated once per-thread. * The library has been ported to PowerPC running AIX 4.1.5. The port is complete, it also includes the NSInvocation and NSMethodSignature classes. Many thanks to Steven Besler and Leon Salvail for supporting this work. * Added support for dynamically loading bundles when running in the GNUstep environment. * The documentation is now written in Texinfo and we documented almost all of the additional features libFoundation comes with in addition to the OPENSTEP implementation. * Bug fixes in several classes, including NSArray, NSString and UnixSignalHandler. Where you can get it? ===================== You can download the source code from http://www.slip.net/~ovidiu/libFoundation/libFoundation-0.9.0.tar.gz ftp://alpha.gnu.org/gnu/gnustep/libFoundation-0.9.0.tar.gz ftp://ftp.gnustep.org/pub/gnustep/libFoundation-0.9.0.tar.gz ftp://ftp.net-community.com/pub/Free/libFoundation-0.8.0.tar.gz Happy hacking, Ovidiu Predescu Mircea Oancea