Add 1.9 release announcement to 2.x series.
parent
f48403d51c
commit
f569aeb42b
@ -0,0 +1,77 @@
|
||||
GNUstep Objective-C Runtime 1.9
|
||||
===============================
|
||||
|
||||
This the ninth 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:
|
||||
|
||||
- Support for 64-bit ARM (AArch64) processors, including assembly fast paths
|
||||
for message sending.
|
||||
|
||||
- Improved the dispatch table representation to improve performance and cache
|
||||
usage on the fast path.
|
||||
|
||||
- The implementation of `imp_implementationWithBlock`, the function that allows
|
||||
blocks to be used as methods, no longer requires physical pages to be mapped
|
||||
both writeable and executable.
|
||||
|
||||
- Numerous improvements to the interaction between runtime functions and ARC.
|
||||
|
||||
- Support for Thumb-2 interworking on ARM. Note that the library must be
|
||||
compiled for ARMv7 or ARMv6T2 for this code to be enabled. Once it has been,
|
||||
other Objective-C binaries linked with the library can be compiled as ARM or
|
||||
Thumb-2 code. This will also generate Thumb-2 message send functions,
|
||||
improving instruction cache usage.
|
||||
|
||||
- Significant improvements to ARC, including
|
||||
|
||||
* The runtime no longer acquires a global lock on every object deallocation (a
|
||||
global lock is still used for objects that have weak references). *NOTE:*
|
||||
This is incompatible with other code directly inspecting the reference
|
||||
count and will break with older versions of GNUstep Base!
|
||||
|
||||
* Weak references use a scheme closer to C++ `std::weak_pointer` and are
|
||||
lazily zeroed on access. This reduces the space overheads for weak
|
||||
references.
|
||||
|
||||
* Some additional helper functions are added for use in `NSObject` and other
|
||||
root classes, which simplifies the layering between the runtime and the
|
||||
Foundation (or equivalent) implementation.
|
||||
|
||||
- Improvements to how the runtime handles layout of ivars with strong alignment
|
||||
requirements, which should fix issues relating to using vector types in
|
||||
Objective-C objects.
|
||||
|
||||
- The option to build a separate libobjcxx has been removed. The runtime will
|
||||
now depend on the C++ standard library implementation if no useable C++
|
||||
runtime is available. Note that C++ exception interworking does not work
|
||||
because LLVM's libc++abi (shipped by Apple) does not provide GNU-compatible
|
||||
hooks and so Objective-C++ exception support will be automatically disabled
|
||||
on this platform. Any other platforms shipping libc++abi should consider
|
||||
either GNU libsupc++ or libcxxrt as an alternative.
|
||||
|
||||
You may obtain the code for this release from git and use the 1.9 branch:
|
||||
|
||||
https://github.com/gnustep/libobjc2.git
|
||||
|
||||
Alternatively, a tarball is available from:
|
||||
|
||||
https://github.com/gnustep/libobjc2/archive/v1.9.zip
|
||||
https://github.com/gnustep/libobjc2/archive/v1.9.tar.gz
|
||||
|
||||
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 file them in the issue tracker:
|
||||
|
||||
https://github.com/gnustep/libobjc2/issues
|
||||
Loading…
Reference in New Issue