GNUstep Objective-C Runtime 2.3
This is the third update to the second major 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:
- The blocks runtime from swift-corelibs-libdispatch can now be used instead of the runtime included in libobjc2.
- The blocks runtime is now capable of selecting block trampolines based on the current page size at runtime. It now supports AArch64 targets with 16 KiB page sizes, fixing a segmentation fault on Asahi Linux and Android 15 devices with 16 KiB page sizes. For PowerPC64, the trampoline page size was adjusted to 64 KiB.
- Implemented the
method_getTypedSelector_npfunction. - The AArch64
objc_msgSendimplementation now conforms to the Visual Studio ABI's sret mechanism for non-trivial data types. - Differences in the x86_64 calling convention have been addressed in the
objc_msgSendimplementation. - The robin map dependency was updated to version 1.4.0.
- Associated objects are now properly retained and autoreleased.
- Several bug fixes in the fast-path code.
- Built-in classes no longer rely on load order.
- Various memory leaks have been fixed.
You may obtain the code for this release from git and use the 2.3 branch:
https://github.com/gnustep/libobjc2.git
Alternatively, a tarball is available from:
https://github.com/gnustep/libobjc2/archive/v2.3.zip https://github.com/gnustep/libobjc2/archive/v2.3.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 a superset of Apple's Objective-C Runtime APIs.
If you come across any problems, please file them in the issue tracker:
https://github.com/gnustep/libobjc2/issues