1 Announcement ************** The GNUstep Base Library, version 1.28.0, is now available. 1.1 What is the GNUstep Base Library? ===================================== The GNUstep Base Library is a library of general-purpose, non-graphical Objective C objects. For example, it includes classes for strings, object collections, byte streams, typed coders, invocations, notifications, notification dispatchers, moments in time, network ports, remote object messaging support (distributed objects), and event loops. It provides functionality that aims to implement the non-graphical portion of the OpenStep standard (the Foundation library). There is more information available at the GNUstep homepage at 'http://www.gnustep.org'. 1.2 Noteworthy changes in version '1.28.0' ========================================== Aside from an assortment of bugfixes, this release includes a lot of improvements for Windows support as well as numerous new classes and methods. Not every bugfix, improvement or a new feature will be listed here. * Reading and setting File Creation Date attribute on Windows. * Added new 'ASSIGNMUTABLECOPY()' macro for consistency with 'ASSIGNCOPY()'. * Replaced character set data headers for URLs with loading these from a standard data source, and updated bitmap representation to use much less space for character sets residing wholly in the base plane, such as the URL charsets (given they are purely ASCII). * Updated character set data with newer Unicode data set. * '[NSURLProtocol -initWithRequest:cachedResponse:client:]' will now retain the client up until the last message is sent to it, which improves compatibility with OS X. * Percent-escaping code in 'NSURL' simplified. * Removed mixed ABI support. * Use of Apple runtime now assumes non-fragile ABI (which is true on modern systems). * Improve typing on method implementation pointers in some classes. * In 'NSHTTPCookie', rewritten code for extracting individual cookies from the HTTP header. * In 'NSKeyedArchiver', implement secure coding methods. * New methods in 'NSDateComponents'. * Improvements in 'NSCalendar' and 'NSLocale' for calendar locale and 'NSDateComponents'. * In 'NSFileManager', use 'utimensat()' to set file modification date, if available. * Correctly stop parsing number being decoded in 'NSJSONSerialization' when encountering a number with an invalid exponent. * Improve OS X compatibility for 'NSURLQueryItem' initializers. * For 'NSFileManager', in 'changeFileAttributes', implement setting creation date for Unix-like systems. Implement reading the creation date if a supported method was detected. * Support reading Android assets from the main bundle in 'NSInputStream'. * Support Android assets directories in 'NSBundle' and 'NSFileManager'. * Implement '-[NSXMLParser initWithStream:]'. * Allow clearer choice between 'sloppy' 'GSSloppyXMLParser' used in 'NSXMLParser' and the libxml2-based 'GSStrictXMLParser'. * Fix building Win32 implementations for 'GSFileHandle' and 'NSMessagePort' with nonfragile ABI. * Use 'NSNumber' and not 'NSString' in '-[NSUserDefaults setBool:forKey:]'. * Posting notification before 'NSThread' exit. * Actually declare optional 'NSFilePresenter' methods as optional. * In 'NSConcreteMapTable', fix replacing existing values in a weak objects map table. * Fix leaks in 'NSOperation'. * Various compat fixes for various MSYS systems, particularly around sockets code. * In 'NSData', 'NSFileManager' and more, various improvements when overwriting and creating files with respect to file attributes (owners, creation timestamp, etc). * Improve 'NSLog' output on Android. * Use 'instancetype' in 'NSURLRequest' header. * Define 'NSAttributedStringKey' and 'NSNotificationName'. * Add new 'NSURL' methods. * In 'GSMime', have '-contentFile' check the 'Content-Type' header before checking 'Content-Disposition'. * Fix a bug linking with WEAK symbols where binutils 2.3.5 would fail to link due to not all expected symbols being exported. * New 'plutil' utility. * Implementation of '[NSData rangeOfData:options:range:]' which finds the 'NSRange' in which the passed data occurs. * Change 'ENTER_POOL'/'LEAVE_POOL' so they no longer wrap the enclosed code in a loop, enabling use in some loops. * New 10.5 methods in 'NSRunLoop'/'NSURLConnection'. * Improve compatibility when building with ICU 68. * Fix compiling libdispatch integration of 'NSRunLoop' on Windows. * Add support for building on Windows with MSVC's Clang by passing the 'configure' flag '--host=x86_64-pc-windows'. Use of an MSYS2 shell without '-devel' packages is recommended. * Implementation of 'NSURLSession' and related classes. This adds some dependencies on more recent versions of 'libcurl', 'libdispatch' etc. * Fix initializing 'NSUUID' from a string. * Disable use of 'libcurl' if its headers are not found. * In 'NSURLProtocol', continue writing data if not all of it was written. * Fix use of GnuTLS under MinGW by using 'send/recv' rather than 'read/write'. * Add support for libobjc2 runtime on Windows. * Fix BOM insertion when generating data from a string using one of the Unicode encodings. 1.3 Where can you get it? How can you compile it? ================================================= The gnustep-base-1.28.0.tar.gz distribution file has been placed at . It is accompanied by gnustep-base-1.28.0.tar.gz.sig, a PGP signature which you can validate by putting both files in the same directory and using: gpg --verify gnustep-base-1.28.0.tar.gz.sig Signature has been created using the key with the following fingerprint: 83AA E47C E829 A414 6EF8 3420 CA86 8D4C 9914 9679 Read the INSTALL file or the GNUstep-HOWTO for installation instructions. 1.4 Where do I send bug reports? ================================ Please log bug reports on the GNUstep project page or send bug reports to . 1.5 Obtaining GNUstep Software ============================== Check out the GNUstep web site. () and the GNU web site. ()