mulle-objc: a new Objective-C
mulle_objc is an Objective-C compiler based on clang, a runtime supporting that compiler and a Foundation. It quite different to what is out there already.
How to get mulle-objc
The mulle-objc community homepage has all the information to get you up and running. Check out the Release Page for a list of released packages and tools.
About mulle-objc
When I wrote the Optimizing Objective-C Article Series, Objective-C had pretty much weathered its first hostile obsolesence attempt by Java. Now a decade later, it looks like the time has come, that I have to save Objective-C - at least for myself.
I am probably off the Apple platform rather sooner than later, but I don’t really like anything else besides C and ObjC, so I need something portable which I can use anywhere I can use C. So it is written in pure C (C11).
mulle-objc goals
- Run everywhere C runs
- Everything Faster than Everything Else
- No assembler code necessary
- The runtime should be completely unloadable
- Separate runtimes should be able to coexist (instances should not cross)
- Should work in real time applications
- No magic
- No locking
- Keep the Spirit of C which is
- (a) Trust the programmer.
- (b) Don’t prevent the programmer from doing what needs to be done.
- (c) Keep the language small and simple.
- (d) Provide only one way to do an operation.
- (e) Make it fast, even if it is not guaranteed to be portable.
- (f) Make support for safety and security demonstrable
These are the goals. I try to come as close to them as possible.
mulle-objc community
mulle-objc invites you to join its community.
Lets start
In the following posts, I will show some of my research results and detail some of the unique features of this new runtime.
mulle-objc
will end up being open sourced (most likely in a BSD-3-style
license). So… :)
- mulle-objc: a new Objective-C runtime
- mulle-objc: a meta calling convention
- mulle-objc: removing superflous ifs
- mulle-objc: inlined messaging
- mulle-objc: some research about selectors
- mulle-objc: hashes for classes, selectors and protocols
- mulle-objc: object layout, retain counting, finalize
- mulle-objc: inheriting methods from protocols
- mulle-objc: present and absent language features
- mulle-objc: the trouble with @property
- mulle-objc: ivar layout with @property
- mulle-objc: root classes and unloadable runtimes
- mulle-objc: method searching and accidental override protection
- mulle-objc: caches pivot - selectors mask - methods preload
- mulle-objc: divining the guts of message sending
- mulle-objc: investigating the pros and cons of inlining
mulle_objc_object_call
- mulle-objc: fast methods make
mulle_objc_object_call
even faster - mulle-objc: tagged pointers, boon or bane ?
- mulle_objc: technically speaking
- mulle-clang, technically speaking
- mulle-objc-runtime, technically speaking
- MulleFoundation, technically speaking
Related Projects
Continue to mulle-objc: a meta calling convention
Post a comment
All comments are held for moderation; basic HTML formatting accepted.