Home | History | Annotate | Download | only in analyzer
      1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
      2           "http://www.w3.org/TR/html4/strict.dtd">
      3 <html>
      4 <head>
      5   <title>Release notes for checker-XXX builds</title>
      6   <link type="text/css" rel="stylesheet" href="menu.css" />
      7   <link type="text/css" rel="stylesheet" href="content.css" />
      8   <script type="text/javascript" src="scripts/menu.js"></script>
      9 </head>
     10 <body>
     11 
     12 <div id="page">
     13 <!--#include virtual="menu.html.incl"-->
     14 <div id="content">
     15 
     16 <h1>Release notes for <tt>checker-XXX</tt> builds</h1>
     17 
     18 <h4 id="checker_258">checker-258</h4>
     19 
     20 <p><b>built:</b>October 13, 2011<br>
     21 <b>download:</b> <a href="/checker/checker-258.tar.bz2">checker-258.tar.bz2</a></p>
     22 <p><b>highlights:</b></p>
     23 
     24 <ul>
     25   <li>Contains a newer version of the analyzer than the one shipped in Xcode 4.2.</li>
     26   <li>Adds a new security checker for looking at correct uses of the Mac OS KeyChain API.</li>
     27   <li>Supports ARC (please file bugs where you see issues)</li>
     28   <li>Major under-the-cover changes.  This should result in more precise results in some cases, but this is laying the groundwork for major improvements.  Please file bugs where you see regressions or issues.</li>
     29 </ul>
     30     
     31 <h4 id="checker_257">checker-257</h4>
     32 
     33 <p><b>built:</b>May 25, 2011<br>
     34 <b>download:</b> <a href="/checker/checker-257.tar.bz2">checker-257.tar.bz2</a></p>
     35 <p><b>highlights:</b></p>
     36 
     37 <ul>
     38   <li>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 <a href="/annotations.html#attr_cf_returns_retained">cf_returns_retained</a> or <a href="/annotations.html#attr_cf_returns_not_retained">cf_returns_not_retained</a> annotations.</li>
     39   <li>Fixed a serious regression where the analyzer would not analyze Objective-C methods in class extensions.</li>
     40   <li>Misc. bug fixes to improve analyzer precision.
     41   </li>
     42 </ul>
     43 
     44 <h4 id="checker_256">checker-256</h4>
     45 
     46 <p><b>built:</b>April 13, 2011<br>
     47 <b>download:</b> <a href="/checker/checker-256.tar.bz2">checker-256.tar.bz2</a></p>
     48 <p><b>highlights:</b></p>
     49 
     50 <ul>
     51   <li>Lots of bug fixes and improvements to analyzer precision (fewer false positives, possibly more bugs found).
     52   <li>Introductory analysis support for C++ and Objective-C++.
     53 </ul>
     54 
     55 <p>This build contains basic support for C++ and Objective-C++ that is ready to be tried out
     56   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
     57   issues and have a reasonable false positive rate.</p>
     58   
     59 <p><b>Please</b> <a href="/filing_bugs.html">file bugs</a> when you see issues of any kind so we can assess
     60   where development on C++ analysis support needs to be focused.</p>
     61   
     62 <p>To try out C++ analysis support, it should work out of the box using <tt>scan-build</tt>.  If you are using this checker build
     63   as a replacement to the analyzer bundled with Xcode, first use the <tt>set-xcode-analyzer</tt> script to <a href="/xcode.html">change Xcode to use
     64   your version of the analyzer</a>.  You will then need to modify one configuration file in Xcode to enable C++ analysis support.  This can
     65   be done with the following steps:</p>
     66   
     67 <ol>
     68   <li>Find the clang .xcspec file:
     69 <pre>$ cd /Developer/Library
     70 $ find . | grep xcspec | grep Clang
     71 ./Xcode/<b>&lt;SNIP&gt;</b>/Clang LLVM 1.0.xcplugin/Contents/Resources/Clang LLVM 1.0.xcspec
     72 </pre></li>
     73   <li>The exact location of the file may vary depending on your installation of Xcode.  Edit that file, and look for the string &quot;--analyze&quot;:
     74 <pre>
     75   SourceFileOption = "--analyze";
     76   FileTypes = (
     77       "sourcecode.c.c",
     78       "sourcecode.c.objc",
     79   );
     80   ...
     81 </pre>
     82   Change the &quot;FileTypes&quot; entry to:
     83 <pre>
     84   FileTypes = (
     85       "sourcecode.c.c",
     86       "sourcecode.c.objc",
     87       "sourcecode.cpp.cpp",
     88       "sourcecode.cpp.objcpp",
     89   );
     90 </pre></li>
     91 <li>Restart Xcode.</li>
     92 </ol>
     93 
     94 <h4 id="checker_255">checker-255</h4>
     95 
     96 <p><b>built:</b> February 11, 2011<br>
     97 <b>download:</b> <a href="/checker/checker-255.tar.bz2">checker-255.tar.bz2</a></p>
     98 <p><b>highlights:</b></p>
     99 
    100 <ul>
    101 <li>Mac OS X builds are now Intel <tt>i386</tt> and <tt>x86_64</tt> only (no <tt>ppc</tt> support)</li>
    102 <li>Turns on new <tt>-init</tt> method checker by default</li>
    103 <li>Reduces memory usage of analyzer by 10%</li>
    104 <li>Misc. fixes to reduce false positives on dead stores and idempotent operations.</li>
    105 </ul>
    106 
    107 <h4 id="checker_254">checker-254</h4>
    108 
    109 <p><b>built:</b> January 27, 2011<br>
    110 <b>download:</b> <a href="/checker/checker-254.tar.bz2">checker-254.tar.bz2</a></p>
    111 <p><b>highlights:</b></p>
    112 
    113 <ul>
    114 <li>Introduces new <tt>-init</tt> method checker to check if a super class's init method is properly called.</li>
    115 <li>Objective-C retain/release checker now reasons about calls to property accessor methods (setter/getter).</li>
    116 <li>Introduces new attribute <a href="annotations.html#attr_ns_consumes_self">ns_consumes_self</a> to educate the Objective-C retain/release checker about custom &quot;init-like&quot; methods that do not follow the standard Cocoa naming conventions.</li>
    117 <li>Introduces new attributes <a href="annotations.html#attr_ns_consumed">ns_consumed</a> and <a href="annotations.html#attr_cf_consumed">cf_consumed</a> to educate the Objective-C retain/release checker about methods/functions that decrement the reference count of a parameter.</li>
    118 </ul>
    119 
    120 </div>
    121 </div>
    122 </body>
    123 </html>
    124 
    125