Update the release announcement for version 2.1
GNUstep Objective-C Runtime 2.1
-===============================
+=================================
-This the first update to the second major release of the GNUstep Objective-C
+This is first 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:
-- ?
+- Numerous improvements to the Objective-C++ exception interoperation code.
+ The runtime now dynamically detects whether the libcxxrt or libsupc++ variant
+ of the Itanium C++ Exception ABI is being used
+
+- Sending a message to `super` where the corresponding method did not exist was
+ silently ignored in previous versions of the runtime. This now correctly
+ invokes the forwarding hooks and so (with an implementation of the Foundation
+ framework, such as GNUstep Base or WinObjC) will trigger an exception or
+ invoke `forwardInvocation:`.
+
+- The checks for overloaded memory management methods were incorrect, causing
+ some classes to be incorrectly opted into ARC fast paths. These checks are
+ now correct.
+
+- Several memory management bugs in corner cases of weak reference management
+ were fixed.
+
+- The ARM assembly implementation of `objc_msgSend` now correctly restores the
+ stack after calling a forwarding implementation. This bug caused stack
+ corruption and usually crashing on ARM.
+
+- The ARC code has been rewritten as C++, using a well-tested third-party
+ Robin-Hood hash table to store weak references, replacing the home-grown
+ version. This improves performance and reduces the likelihood of bugs
+ arising from the hash table implementation.
+
+- Control Flow Guard (CGF) checks were added on Windows on x86 (32- and
+ 64-bit). If Objective-C code is compiled with CFG enabled then
+ `objc_msgSend` will crash if it attempts to jump to an address that is not a
+ valid function entry point.
+
+- The function signatures in the blocks headers were updated for compatibility
+ with recent macOS releases.
+
+- Support for the C11 _Atomic type qualifier in property metadata was added.
You may obtain the code for this release from git and use the 2.1 branch:
