2019-04-26 - Luigi Baldoni <firstname.lastname@example.org>
- Update to version 2.0
* This release introduces a new Objective-C ABI, which is
designed to be forward compatible with future changes and
removes a large number of hacks that were required for
compatibility with the prior ABI that included features
introduced in the 1980s. Highlights include:
+ The linker now removes duplicate selectors within a
+ The linker will remove duplicate protocol definitions
within a library.
+ Protocols and classes are now always accessed via an
indirection layer, so they can be extended by future
versions of the ABI without breaking compatibility.
+ Categories can include property metadata and both
+ Constant strings are now emitted with a richer structure,
which provides faster hashing and better unicode support.
+ Instance variable metadata includes size and alignment,
allowing better object layout and more accurate
introspection. Instance variable metadata now includes
more accurate information about ARC ownership semantics.
+ Method metadata now includes extended type information,
allowing bridged languages to understand the class that
methods expect and not just the fact that they take an
object. This was previously an obstacle to supporting
2019-03-19 - Jan Engelhardt <email@example.com>
- Replace historic boilerplate descriptions.
- Fixup RPM group of SRPM package.
2019-02-15 - Luigi Baldoni <firstname.lastname@example.org>
- Update to version 1.9
* 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
* 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
+ 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
* 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.
- Renamed library package to reflect its SONAME
- Fixes (boo#1120915)