The glorious mulle-objc 0.8 release
Today I am releasing mulle-objc 0.8. With this release the mulle-objc runtime is not just a competitive runtime, it is the all around best Objective-C runtime out there.
To try mulle-objc 0.8 out, head on over to the mulle-objc community and install mulle-objc-developer.
Let me go over some of the highlights:
It’s now extremely easy to get a mulle-objc project going
With mulle-objc-init you can setup a complete mulle-objc project within seconds. And this project will build on all participating platforms! (See: mulle-objc-list)
A new dependency system for classes and categories
You can now specify exactly in which order classes and categories are added to the class system. That takes all the guesswork out of what might be possible to call during
+load. Also categories can be stacked on top of each other in a deterministic manner. Effectively this opens up a world of possibilities for class compositions at runtime.
mulle-lldb: a mulle-objc aware debugger
I modified lldb to work with the mulle-objc runtime. You can step in and out of Objective-C methods and set breakpoints. Due to the MetaABI you need to examine parameters indirectly via
_param. But it is good enough for getting things done. There aren’t any prebuilt packages of mulle-lldb yet, so you have to build it yourself. (See: mulle-lldb)
Better install for Ubuntu Linuxes
In the future it will be enough to say
apt-get install mulle-objc-developer, but for now there is a convenient install script :)
Tracing and Dumping
The graphviz output now contains hyperlinks. This makes graphviz dumps more manageable. You can now traverse through even fairly complex class hierarchies. The HTML output has been refined to be more readable.
The trace support of the runtime during loading has been greatly enhanced.
More stable compiler and improved speed
Bugs have been removed and the compiler output has been improved over some iterations of the runtime. The speed of super calls has also been improved.
Support for code coverage
You can create coverage files from your program to figure out, which methods are used and which are not. A new tool mulle-objc-list helps you with this. (See: mulle-objc-list)
More exciting mulle-objc news coming up soon…