AutoZone: The Objective-C Garbage Collector
The source code for AutoZone, the Objective-C Garbage Collector found in Mac OS X Leopard, is now available. It has been released under the Apache v2 license.
This is the same collector that is found in Mac OS X Leopard 10.5.3 (the collector was not updated as a part of 10.5.4 or 10.5.5).
The garbage collector is not limited to Objective-C. It is actually a fairly generic scanning, conservative, generational, multi-threaded, language agnostic, collector. The implementation has certainly been tested and optimized with Mac OS X based applications.
Notably, MacRuby uses AutoZone to offer a common GC implementation across object graphs that span Ruby and Objective-C.


November 12th, 2008 at 1:04 am
Excellent work! Apple continues to push the state of the art and provides a great example of how to share with the community. Much like the WebKit which has flourished far and wide, I expect this technology to show up in interesting places.
Yet another reason why I love being a developer for Apple’s products.
– Ian Baird
November 12th, 2008 at 9:50 am
[…] The source code for AutoZone, Apple’s Objective-C garbage collector, is now available (via Bill Bumgarner): […]
November 12th, 2008 at 1:37 pm
Wow, nice.
November 12th, 2008 at 1:51 pm
I’ve been hearing a lot of noise about MacRuby lately. Are you aware of any similar development project for Python (i.e. hosting Python on the Objective-C runtime)? I’d be interested in contributing to such a project.
November 12th, 2008 at 2:03 pm
I’m not aware of any such project, but would love to see one happen. IronPython is an example of the pattern, but that appears to be a full rewrite.
Unfortunately, Python has carried along a tremendous amount of legacy cruft. Thus, there is a huge amount of pretty gnarly legacy code and modules throughout the source. Rehosting Python objects on top of CF, Objective-C and AutoZone would be considerably more difficult to make compatible with the mainline of Python.
Frankly, I’m not sure that is such a bad thing. From what I can tell, Python is ripe for forking. A modern variant that ditched the tons of legacy crap, cleaned up the libraries, and fixed the threading issues could be quite viable.
November 12th, 2008 at 2:07 pm
[…] Bill Bumgarner’s weblog-o-mat […]
November 12th, 2008 at 2:12 pm
Perhaps PyPy could be helpful for that…
November 12th, 2008 at 7:12 pm
@Russell Finn
I think you should check out PyObjC
November 12th, 2008 at 8:00 pm
[…] bbum’s weblog-o-mat » Blog Archive » AutoZone: The Objective-C Garbage Collector. […]
November 13th, 2008 at 2:37 pm
[…] AutoZone, the Objective-C Garbage Collector: “Apple has released AutoZone, the Objective-C garbage collector, as open source under the Apache license. ‘★’ […]
November 19th, 2008 at 8:26 am
i didn’t know Apple was in the auto parts business too.
December 5th, 2008 at 1:54 pm
[…] towards 2.5 because it’s the version shipped with Leopard, but now I’m persuaded by Bill Bumgarner’s comment to use 3.0 and take advantage of the revised, less crufty implementation. (This is based on the […]
December 7th, 2008 at 6:17 am
[…] bookmarks tagged objective bbum’s weblog-o-mat » Blog Archive » AutoZone:… saved by 5 others ROLLINONBY bookmarked on 12/07/08 | […]
December 22nd, 2008 at 7:45 am
[…] very happy to see that the source code for libauto was released recently. Bill Bumgarner wrote an announcement about it on his […]
May 27th, 2009 at 12:04 am
The tarball is here.
That is all.
October 6th, 2011 at 10:38 am
It’s interesting that a garbage collector for Apple’s language is written using C++ instead of their own C+. Well I guess it’s probably because it’s more dynamic and less optimal.