The Portable Object Compiler is an Objective-C compatible precompiler. To use objc you will need a compatible C compiler. The IRIX cc MIPSpro compiler is a possibility, as is gcc. If you decide to use gcc change the
objc-2.3.8: description + notes
/usr/freeware/bin/objc
symlink to reference.objc.gcc
instead of.objc.cc
.The objc distribution consists of the following parts :
- "objc", the actual compiler. It consists of driver script (objc) and binary (objc1). objc1 is a precompiler for C. The binary postlink is used for preparing tables for runtime initialization.
- "objcrt", the Objective C Runtime Library for objc. This is a modern, portable, "all C" Objective C runtime There's absolutely no assembly language needed, nor is there a dependency on stack layout, register allocation conventions etc. Most other runtimes, were derived from pre-"all C"-Stepstone runtimes, so this is an important point of difference.
- "objpak", the "Object Pak" Objective C Collection Classes. Simple, powerful set of classes. Very portable. Can be used to develop with different compilers, then port with 'objc'. Compatible with ICpak101, the collection class library described in Brad Cox book, and used by existing Objective-C packages that were developed with Stepstone objc.
- "cakit", the "Computer Algebra Kit" Objective C classes. Small, concise, interface to a large set of classes for polynomial computing and arbitrary precision integer arithmetic.
- Source of compiler and "oclib", a set of Objective C classes for parsing C (and the Objective C extensions to C)
Nice features include:
- Easy to install or to modify.
- Works on many systems with the native cc, debugger, profiler etc.
- Option for reference counted memory management (-refcnt). This uses the native malloc(), free() etc. but the compiler generates statements for keeping track of references.
- Built-in possibility of tracing Objective C messages. (OBJCRTMSG)
- Straightforward "C" messenger; "inline cache" messenger. Forwarding C messenger (to support -doesNotUnderstand:).
- All classes get a +initialize message at start-up, rather than 'each class receives a +initialize before it receives its first message'.
- Some support for translating Objective-C to Smalltalk (-st80 option)
- Automatic archiver. Compiler generates code for classes to save and load objects to and from disk (for all instance variables of type "id").
- Option for Garbage Collection (using Boehm gc package). Tested on some UNIXes and WIN32.
- Exception handling scheme (using Objective-C Blocks) that allows to specify a default handler to be executed.
- Supports dynamically loading Objective-C modules.
- Has a switch for double indirection for Object identifiers (id as a handle instead of a pointer). (-become: method)
- Supports forwarding messages (-doesNotUnderstand: method)
- Great system for experimentation with your own additions/extensions to Objective C!
To auto-install this package, go back and click on the respective install icon.