Automatic Reference Counting for Objective-C

[resending for the mailing list archive]

Hi All,

I'm happy to say that we just pushed the Clang implementation of Automatic
Reference Counting (ARC) for Objective-C into the public repository, including the low-level ARC migration tool.

ARC provides automated memory management for Objective-C programs that is
compatible with existing retain/release code. ARC is carefully built to
be a reliable programming model that errs on the side of producing a
compiler error instead of silently producing a runtime memory problem.
ARC automates Objective-C objects, not malloc data, file descriptors,
CoreFoundation datatypes or anything else.

In addition to ARC, this code also includes compiler support for Zeroing Weak
References, which build on top of ARC to provide a language feature useful
for breaking retain cycles.

For more detail than you probably want about ARC, please check out the spec:

While this is mostly useful for people with access to previews of iOS5 or
Mac OS X Lion (which provide the necessary runtime support for ARC) and
Xcode 4.2 (which provides high level tools), we encourage you to take a look,
play with it, report bugs etc. If you have feedback or proposals for how to
change the model, please familiarize yourself with the spec before making
wild new suggestions :slight_smile:

If you're a registered Apple developer, ARC is now considered a public feature
of Clang (also known as "Apple LLVM Compiler" in Xcode), so it can be discussed
publicly. However, interactions with other prerelease features of iOS5 or Lion
are considered confidential until those products launch, so please refrain from
disclosing non-ARC details. Thanks!