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.
Both ABIs support the following feature above and beyond the GCC runtime:
- The modern Objective-C runtime APIs, introduced with OS X 10.5.
- Blocks (closures).
- Low memory profile for platforms where memory usage is more important than speed.
- Synthesised property accessors.
- Efficient support for @synchronized()
- Type-dependent dispatch, eliminating stack corruption from mismatched selectors.