|
1 | | -GNUstep Objective-C Runtime 2.2 |
2 | | -=============================== |
| 1 | +GNUstep Objective-C Runtime 2.2.1 |
| 2 | +================================= |
3 | 3 |
|
4 | | -This is the second update to the second major release of the GNUstep Objective-C |
5 | | -runtime (a.k.a. libobjc2). This runtime was designed to support the features |
6 | | -of modern dialects of Objective-C for use with GNUstep and other Objective-C |
7 | | -programs. |
| 4 | +This a bugfix release for the second update to the second major release of |
| 5 | +the GNUstep Objective-C runtime (a.k.a. libobjc2). This runtime was designed |
| 6 | +to support the features of modern dialects of Objective-C for use with GNUstep and |
| 7 | +other Objective-C programs. |
8 | 8 |
|
9 | 9 | Highlights of this release include: |
10 | 10 |
|
11 | | -- Initial support for RISC-V 64-bit (rv64) including an architecture-specific |
12 | | - objc_msgSend, and block trampoline implementation. Please note that |
13 | | - double-precision floating-point support (rv64d) is required for the |
14 | | - objc_msgSend implementation. |
15 | | -- Initial support for Windows on ARM64 with fast-path objc_msgSend. |
16 | | -- Numerous improvements to the Objective-C++ exception interoperation code. |
17 | | - The runtime now dynamically detects whether the libcxxrt, libsupc++, or |
18 | | - libc++abi variant of the Itanium C++ Exception ABI is being used. This is |
19 | | - the first version to support exception interoperability with libc++abi. |
20 | | -- Because we no longer need to identify the specific C++ runtime, we can link |
21 | | - to it indirectly via the C++ standard library, which enables more C++ to be |
22 | | - used in the Objective-C runtime. |
23 | | -- The minimum CMake version has been bumped to 3.16, which supports |
24 | | - Objective-C. This support is now used, simplifying the build. |
25 | | -- Support for GC mode is gone. Apple dropped support for this a long time ago. |
26 | | -- `objc_setUncaughtExceptionHandler` is added, which avoids consuming code |
27 | | - needing to access a library-owned global. |
28 | | -- The selector-table code has been rewritten in C++, improving performance of |
29 | | - adding selectors. This is unlikely to have a measurable impact on |
30 | | - performance outside of contrived test cases, but the new code is more |
31 | | - maintainable. |
32 | | -- Several bug fixes in the ARC code, especially in corner cases surrounding |
33 | | - weak references. |
34 | | -- Support for fast-path allocation / initialisation functions. Root classes |
35 | | - that opt into this should implement `+_TrivialAllocInit` (this can be an |
36 | | - empty method, it is not called). Clang 18 or later will emit calls to the |
37 | | - fast-path functions for `+alloc`, `+allocWithZone:` and `+alloc` + `-init` |
38 | | - calls. This should improve code density as well as performance. |
39 | | - |
40 | | -You may obtain the code for this release from git and use the 2.2 branch: |
| 11 | +- Various improvements for building and using libobjc2 on MinGW. |
| 12 | +- Improved support for the PowerPC architecture. |
| 13 | +- A fix for the detection of the tls-robin-map dependency. |
| 14 | + |
| 15 | +You may obtain the code for this release from git and use the 2.2.1 branch: |
41 | 16 |
|
42 | 17 | https://github.com/gnustep/libobjc2.git |
43 | 18 |
|
44 | 19 | Alternatively, a tarball is available from: |
45 | 20 |
|
46 | | -https://github.com/gnustep/libobjc2/archive/v2.2.zip |
47 | | -https://github.com/gnustep/libobjc2/archive/v2.2.tar.gz |
| 21 | +https://github.com/gnustep/libobjc2/archive/v2.2.1.zip |
| 22 | +https://github.com/gnustep/libobjc2/archive/v2.2.1.tar.gz |
48 | 23 |
|
49 | 24 | The runtime library is responsible for implementing the core features of the |
50 | 25 | object model, as well as exposing introspection features to the user. The |
|
0 commit comments