Skip to content

Commit dd9128a

Browse files
committed
Update ANNOUNCE for 2.2.1
1 parent e71db70 commit dd9128a

2 files changed

Lines changed: 68 additions & 38 deletions

File tree

ANNOUNCE

Lines changed: 13 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,25 @@
1-
GNUstep Objective-C Runtime 2.2
2-
===============================
1+
GNUstep Objective-C Runtime 2.2.1
2+
=================================
33

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.
88

99
Highlights of this release include:
1010

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:
4116

4217
https://github.com/gnustep/libobjc2.git
4318

4419
Alternatively, a tarball is available from:
4520

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
4823

4924
The runtime library is responsible for implementing the core features of the
5025
object model, as well as exposing introspection features to the user. The

ANNOUNCE.2.2

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
GNUstep Objective-C Runtime 2.2
2+
===============================
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.
8+
9+
Highlights of this release include:
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:
41+
42+
https://github.com/gnustep/libobjc2.git
43+
44+
Alternatively, a tarball is available from:
45+
46+
https://github.com/gnustep/libobjc2/archive/v2.2.zip
47+
https://github.com/gnustep/libobjc2/archive/v2.2.tar.gz
48+
49+
The runtime library is responsible for implementing the core features of the
50+
object model, as well as exposing introspection features to the user. The
51+
GNUstep runtime implements a superset of Apple's Objective-C Runtime APIs.
52+
53+
If you come across any problems, please file them in the issue tracker:
54+
55+
https://github.com/gnustep/libobjc2/issues

0 commit comments

Comments
 (0)