GNUstep Objective-C Runtime

Edit Package gnustep-libobjc2

The GNUstep Objective-C runtime is designed as a drop-in replacement for the
GCC runtime. It supports both a legacy and a modern ABI, allowing code
compiled with old versions of GCC to be supported without requiring
recompilation. The modern ABI adds the following features:

- Non-fragile instance variables.
- Protocol uniquing.
- Object planes support.
- Declared property introspection.

Refresh
Refresh
Source Files
Filename Size Changed
gnustep-libobjc2.changes 0000002817 2.75 KB
gnustep-libobjc2.spec 0000003232 3.16 KB
libobjc2-1.9.tar.gz 0000175808 172 KB
Revision 13 (latest revision is 24)
Fred kiefer's avatar Fred kiefer (fredkiefer) accepted request 676969 from Luigi Baldoni's avatar Luigi Baldoni (alois) (revision 13)
- Update to version 1.9
  * Support for 64-bit ARM (AArch64) processors, including
    assembly fast paths for message sending.
  * Improved the dispatch table representation to improve
    performance and cache usage on the fast path.
  * The implementation of `imp_implementationWithBlock`, the
    function that allows blocks to be used as methods, no longer
    requires physical pages to be mapped both writeable and
    executable.
  * Numerous improvements to the interaction between runtime
    functions and ARC.
  * Support for Thumb-2 interworking on ARM.  Note that the
    library must be compiled for ARMv7 or ARMv6T2 for this code
    to be enabled. Once it has been, other Objective-C binaries
    linked with the library can be compiled as ARM or Thumb-2
    code.  This will also generate Thumb-2 message send
    functions, improving instruction cache usage.
  * Significant improvements to ARC, including
    + The runtime no longer acquires a global lock on every
      object deallocation (a global lock is still used for
      objects that have weak references). *NOTE:* This is
      incompatible with other code directly inspecting the
      reference count and will break with older versions of
      GNUstep Base!
    + Weak references use a scheme closer to C++
      `std::weak_pointer` and are lazily zeroed on access.  This
      reduces the space overheads for weak references.
    + Some additional helper functions are added for use in
      `NSObject` and other root classes,  which simplifies the
      layering between the runtime and the Foundation (or
      equivalent) implementation.
  * Improvements to how the runtime handles layout of ivars with
    strong alignment requirements, which should fix issues
    relating to using vector types in Objective-C objects.
  * The option to build a separate libobjcxx has been removed. 
    The runtime will now depend on the C++ standard library
    implementation if no useable C++ runtime is available.  Note
    that C++ exception interworking does not work because LLVM's
    libc++abi (shipped by Apple) does not provide GNU-compatible
    hooks and so Objective-C++ exception support will be
    automatically disabled on this platform.  Any other
    platforms shipping libc++abi should consider either GNU
    libsupc++ or libcxxrt as an alternative.
- Renamed library package to reflect its SONAME
- Fixes (boo#1120915)
Comments 0
openSUSE Build Service is sponsored by