MulleObjC supplies the most basic runtime components like NSObject or NSThread
to build a foundation on top of it. MulleObjC depends on standard C libraries
only and for instance not on <unistd.h>
.
Release Version | Release Notes |
---|---|
RELEASENOTES |
- NSAutoreleasePool - garbage collection
- NSObject - the root class of everything
- NSInvocation - method call serialization
- NSMethodSignature - method description
- NSProxy - the other root class of everything :=)
- NSThread - threads
- NSCoding - object serialization
- NSCopying - object copying
- NSFastEnumeration - support for
for ... in
loops - NSLocking - support for
for ... in
loops - NSObject - for objects that don't want to behave like NSObject but can't be them
- MulleObjCClassCluster - enables classes to act as class clusters
- MulleObjCException - enabled a class to act as an exception
- MulleObjCRuntimeObject - documents the minimum required id superset
- MulleObjCSingleton - enables classes to produce singletons
- MulleObjCTaggedPointer - enables classes to use tagged pointers
mulle_printf
and variants
It does all the interfacing with the mulle-objc runtime. Any library code above MulleObjC ideally, should not be using the mulle-objc runtime directly. Creating a foundation on top of mulle-objc without using MulleObjC is a foolhardy endeavor IMO.
MulleObjC must be compiled with the mulle-clang compiler, or a compiler which supports the metaABI required for the mulle-objc runtime.
Requirement | Release Version | Description |
---|---|---|
mulle-objc-runtime | β© A fast, portable Objective-C runtime written 100% in C11 | |
mulle-objc-debug | π Debug support for the mulle-objc-runtime | |
mulle-objc-cc | β© make mulle-clang the default Objective-C compiler | |
mulle-objc-list | π Lists mulle-objc runtime information contained in executables. |
Use mulle-sde to add MulleObjC to your project:
mulle-sde add github:mulle-objc/MulleObjC
To only add the sources of MulleObjC with dependency sources use clib:
clib install --out src/mulle-objc mulle-objc/MulleObjC
Add -isystem src/mulle-objc
to your CFLAGS
and compile all the sources that were downloaded with your project.
Use mulle-sde to build and install MulleObjC and all dependencies:
mulle-sde install --prefix /usr/local \
https://github.com/mulle-objc/MulleObjC/archive/latest.tar.gz
Install the Requirements and then install MulleObjC with cmake:
cmake -B build \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DCMAKE_PREFIX_PATH=/usr/local \
-DCMAKE_BUILD_TYPE=Release &&
cmake --build build --config Release &&
cmake --install build --config Release
Nat! for Mulle kybernetiK