darling-libobjc2/ANNOUNCE
theraven 8d954d1cb8 When linking libdispatch, register to create / destroy autorelease pools at the
correct time.  This fixes the intermittent problems when using libdispatch from
LanguageKit, among other things.
2013-04-15 15:46:39 +00:00

69 lines
3.0 KiB
Plaintext

GNUstep Objective-C Runtime 1.7
===============================
This is a point release to the eighth official release of the GNUstep
Objective-C runtime (a.k.a. libobjc2). This runtime was designed to support
the features of modern dialects of Objective-C for use with GNUstep and other
Objective-C programs. Highlights of this release include:
- A new CMake-based build system. This makes all of the configurable options
available via a clean interface. CPack is supported for building RPM and DEB
packages out of the box.
- A new CTest-based test suite, replacing the old ad-hoc tests.
- Build a single libobjc with support for Objective-C++ on platforms where a
C++ ABI library (libcxxrt or libsupc++) is installed as a shared library.
- Added specialised property accessor functions and support for atomic
properties with C++ non-POD types.
- Significant improvements in property introspection and an exhaustive test
suite.
- Improved integration with libdispatch. The runtime will correctly register
work queues with the garbage collector or create autorelease pools around
block invocations.
- A new exception implementation providing better integration with foreign
exceptions (e.g. C++ exceptions). The new ABI is supported by clang 3.3 when
compiling with -fobjc-runtime=gnustep-1.7 (or higher). The old ABI is still
supported and both can be used within the same program, however code compiled
with the old ABI remains unreliable in the presence of foreign exceptions.
It is strongly recommended that anyone using exceptions with Objective-C++
switches to the new version.
- MIPS64 support in the assembly routines. Currently these are only tested
with the n64 ABI. They are believed to work with n32 and o32, but should be
considered unsupported on these platforms.
- Small algorithmic improvement to the objc_msgSend() implementation, giving
approximately a 10% speedup (architecture-dependent) on message sends.
- Updated optimisation passes to work with LLVM 3.2 and recent LLVM trunk.
You may obtain the code for this release from subversion at the following
subversion branch:
svn://svn.gna.org/svn/gnustep/libs/libobjc2/1.7
Alternatively, a tarball is available from:
http://download.gna.org/gnustep/libobjc2-1.7.tar.bz2
The runtime library is responsible for implementing the core features of the
object model, as well as exposing introspection features to the user. The
GNUstep runtime implements Apple's Objective-C Runtime APIs, and a small number
of GCC APIs for legacy compatibility.
This library is based on the Étoilé Objective-C Runtime, an earlier research
prototype, and includes support for non-fragile instance variables,
type-dependent dispatch, and object planes. It is fully backwards compatible
with the FSF's GCC 4.2.1 Objective-C ABI and also implements a new ABI that is
supported by Clang and Étoilé's LanguageKit and is required for some of the
newer features.
If you come across any problems, please report them to the GNUstep Developer
mailing list <gnustep-dev@gnu.org>.