From dd9128adfe983c31f9ebd8242717b4352d741fbf Mon Sep 17 00:00:00 2001 From: Frederik Carlier Date: Sun, 3 Mar 2024 15:58:18 +0100 Subject: [PATCH] Update ANNOUNCE for 2.2.1 --- ANNOUNCE | 51 +++++++++++++----------------------------------- ANNOUNCE.2.2 | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+), 38 deletions(-) create mode 100644 ANNOUNCE.2.2 diff --git a/ANNOUNCE b/ANNOUNCE index 3f5aba2a..1c186743 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,50 +1,25 @@ -GNUstep Objective-C Runtime 2.2 -=============================== +GNUstep Objective-C Runtime 2.2.1 +================================= -This is the second 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. +This a bugfix release for the second 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: -- Initial support for RISC-V 64-bit (rv64) including an architecture-specific - objc_msgSend, and block trampoline implementation. Please note that - double-precision floating-point support (rv64d) is required for the - objc_msgSend implementation. -- Initial support for Windows on ARM64 with fast-path objc_msgSend. -- Numerous improvements to the Objective-C++ exception interoperation code. - The runtime now dynamically detects whether the libcxxrt, libsupc++, or - libc++abi variant of the Itanium C++ Exception ABI is being used. This is - the first version to support exception interoperability with libc++abi. -- Because we no longer need to identify the specific C++ runtime, we can link - to it indirectly via the C++ standard library, which enables more C++ to be - used in the Objective-C runtime. -- The minimum CMake version has been bumped to 3.16, which supports - Objective-C. This support is now used, simplifying the build. -- Support for GC mode is gone. Apple dropped support for this a long time ago. -- `objc_setUncaughtExceptionHandler` is added, which avoids consuming code - needing to access a library-owned global. -- The selector-table code has been rewritten in C++, improving performance of - adding selectors. This is unlikely to have a measurable impact on - performance outside of contrived test cases, but the new code is more - maintainable. -- Several bug fixes in the ARC code, especially in corner cases surrounding - weak references. -- Support for fast-path allocation / initialisation functions. Root classes - that opt into this should implement `+_TrivialAllocInit` (this can be an - empty method, it is not called). Clang 18 or later will emit calls to the - fast-path functions for `+alloc`, `+allocWithZone:` and `+alloc` + `-init` - calls. This should improve code density as well as performance. - -You may obtain the code for this release from git and use the 2.2 branch: +- Various improvements for building and using libobjc2 on MinGW. +- Improved support for the PowerPC architecture. +- A fix for the detection of the tls-robin-map dependency. + +You may obtain the code for this release from git and use the 2.2.1 branch: https://github.com/gnustep/libobjc2.git Alternatively, a tarball is available from: -https://github.com/gnustep/libobjc2/archive/v2.2.zip -https://github.com/gnustep/libobjc2/archive/v2.2.tar.gz +https://github.com/gnustep/libobjc2/archive/v2.2.1.zip +https://github.com/gnustep/libobjc2/archive/v2.2.1.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 diff --git a/ANNOUNCE.2.2 b/ANNOUNCE.2.2 new file mode 100644 index 00000000..3f5aba2a --- /dev/null +++ b/ANNOUNCE.2.2 @@ -0,0 +1,55 @@ +GNUstep Objective-C Runtime 2.2 +=============================== + +This is the second 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: + +- Initial support for RISC-V 64-bit (rv64) including an architecture-specific + objc_msgSend, and block trampoline implementation. Please note that + double-precision floating-point support (rv64d) is required for the + objc_msgSend implementation. +- Initial support for Windows on ARM64 with fast-path objc_msgSend. +- Numerous improvements to the Objective-C++ exception interoperation code. + The runtime now dynamically detects whether the libcxxrt, libsupc++, or + libc++abi variant of the Itanium C++ Exception ABI is being used. This is + the first version to support exception interoperability with libc++abi. +- Because we no longer need to identify the specific C++ runtime, we can link + to it indirectly via the C++ standard library, which enables more C++ to be + used in the Objective-C runtime. +- The minimum CMake version has been bumped to 3.16, which supports + Objective-C. This support is now used, simplifying the build. +- Support for GC mode is gone. Apple dropped support for this a long time ago. +- `objc_setUncaughtExceptionHandler` is added, which avoids consuming code + needing to access a library-owned global. +- The selector-table code has been rewritten in C++, improving performance of + adding selectors. This is unlikely to have a measurable impact on + performance outside of contrived test cases, but the new code is more + maintainable. +- Several bug fixes in the ARC code, especially in corner cases surrounding + weak references. +- Support for fast-path allocation / initialisation functions. Root classes + that opt into this should implement `+_TrivialAllocInit` (this can be an + empty method, it is not called). Clang 18 or later will emit calls to the + fast-path functions for `+alloc`, `+allocWithZone:` and `+alloc` + `-init` + calls. This should improve code density as well as performance. + +You may obtain the code for this release from git and use the 2.2 branch: + +https://github.com/gnustep/libobjc2.git + +Alternatively, a tarball is available from: + +https://github.com/gnustep/libobjc2/archive/v2.2.zip +https://github.com/gnustep/libobjc2/archive/v2.2.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