# Release notes for `checker-XXX` builds

#### checker-257

built:May 25, 2011
download: checker-257.tar.bz2

highlights:

- The analyzer is now far more aggressive with checking conformance with Core Foundation conventions. Any function that returns a CF type must now obey the Core Foundation naming conventions, or use the cf_returns_retained or cf_returns_not_retained annotations.
- Fixed a serious regression where the analyzer would not analyze Objective-C methods in class extensions.
- Misc. bug fixes to improve analyzer precision.

#### checker-256

built:April 13, 2011
download: checker-256.tar.bz2

highlights:

- Lots of bug fixes and improvements to analyzer precision (fewer false positives, possibly more bugs found).
- Introductory analysis support for C++ and Objective-C++.

This build contains basic support for C++ and Objective-C++ that is ready to be tried out by general users. It is still in its infancy, but establishes a baseline for things to come. The main hope is that it can find some issues and have a reasonable false positive rate.

Please file bugs when you see issues of any kind so we can assess where development on C++ analysis support needs to be focused.

To try out C++ analysis support, it should work out of the box using `scan-build`. If you are using this checker build as a replacement to the analyzer bundled with Xcode, first use the `set-xcode-analyzer` script to change Xcode to use your version of the analyzer. You will then need to modify one configuration file in Xcode to enable C++ analysis support. This can be done with the following steps:

1. Find the clang .xcspec file:

       $ cd /Developer/Library
       $ find . | grep xcspec | grep Clang
       ./Xcode/<SNIP>/Clang LLVM 1.0.xcplugin/Contents/Resources/Clang LLVM 1.0.xcspec

2. The exact location of the file may vary depending on your installation of Xcode. Edit that file, and look for the string "--analyze":

         SourceFileOption = "--analyze";
         FileTypes = (
             "sourcecode.c.c",
             "sourcecode.c.objc",
         );
         ...

   Change the "FileTypes" entry to:

         FileTypes = (
             "sourcecode.c.c",
             "sourcecode.c.objc",
             "sourcecode.cpp.cpp",
             "sourcecode.cpp.objcpp",
         );

3. Restart Xcode.

#### checker-255

built: February 11, 2011
download: checker-255.tar.bz2

highlights:

- Mac OS X builds are now Intel `i386` and `x86_64` only (no `ppc` support)
- Turns on new `-init` method checker by default
- Reduces memory usage of analyzer by 10%
- Misc. fixes to reduce false positives on dead stores and idempotent operations.

#### checker-254

built: January 27, 2011
download: checker-254.tar.bz2

highlights:

- Introduces new `-init` method checker to check if a super class's init method is properly called.
- Objective-C retain/release checker now reasons about calls to property accessor methods (setter/getter).
- Introduces new attribute ns_consumes_self to educate the Objective-C retain/release checker about custom "init-like" methods that do not follow the standard Cocoa naming conventions.
- Introduces new attributes ns_consumed and cf_consumed to educate the Objective-C retain/release checker about methods/functions that decrement the reference count of a parameter.