continuing to make major strides forward in all areas. Its C and Objective-C
parsing and code generation support is now very solid. For example, it is
capable of successfully building many real-world applications for X86-32
-andX86-64,
-including <a href="http://wiki.freebsd.org/BuildingFreeBSDWithClang">the FreeBSD
-kernel</a>. C++ is also
+and X86-64,
+including the <a href="http://wiki.freebsd.org/BuildingFreeBSDWithClang">FreeBSD
+kernel</a> and <a href="http://gcc.gnu.org/gcc-4.2/">gcc 4.2</a>. C++ is also
making <a href="http://clang.llvm.org/cxx_status.html">incredible progress</a>,
-and work on templates has recently started.</p>
-
-<p>While Clang is not yet production quality, it is progressing very nicely and
-is quite usable for building many C and Objective-C applications. If you are
+and work on templates has recently started. If you are
interested in fast compiles and good diagnostics, we encourage you to try it out
by <a href="http://clang.llvm.org/get_started.html">building from mainline</a>
and reporting any issues you hit to the <a
<ul>
<li>Clang now has a new driver, which is focused on providing a GCC-compatible
interface.</li>
-<li>The X86-64 ABI is now supported.</li>
+<li>The X86-64 ABI is now supported, including support for the Apple
+ 64-bit Objective-C runtime and zero cost exception handling.</li>
<li>Precompiled header support is now implemented.</li>
<li>Objective-C support is significantly improved beyond LLVM 2.4, supporting
many features, such as Objective-C Garbage Collection.</li>
+<li>Variable length arrays are now fully supported.</li>
+<li>C99 designated initializers are now fully supported.</li>
+<li>Clang now includes all major compiler headers, including a
+ redesigned <i>tgmath.h</i> and several more intrinsic headers.</li>
<li>Many many bugs are fixed and many features have been added.</li>
</ul>
</div>
<div class="doc_text">
<p><a href="http://code.roadsend.com/rphp">Roadsend PHP</a> (rphp) is an open
-source compiler for the PHP programming language that uses LLVM for its
-optimizer, JIT, and static compiler. This is a reimplementation of an earlier
-project that is now based on the LLVM.</p>
+source implementation of the PHP programming
+language that uses LLVM for its optimizer, JIT, and static compiler. This is a
+reimplementation of an earlier project that is now based on LLVM.</p>
</div>
<li>LLVM IR supports two new attributes for better alias analysis. The <a
href="LangRef.html#paramattrs">noalias</a> attribute can now be used on the
return value of a function to indicate that it returns new memory (e.g.
-'malloc', 'calloc', etc).</li>
-
-<li>The new <a href="LangRef.html#paramattrs">nocapture</a> attribute can be
-used on pointer arguments to functions that access through but do not return the
-pointer in a data structure that out lives the call (e.g. 'strlen', 'memcpy',
-and many others). The simplifylibcalls pass applies these attributes to
-standard libc functions.</li>
+'malloc', 'calloc', etc).
+The new <a href="LangRef.html#paramattrs">nocapture</a> attribute can be used
+on pointer arguments to indicate that the function does not return the pointer,
+store it in an object that outlives the call, or let the value of the pointer
+escape from the function in any other way.
+Note that it is the pointer itself that must not escape, not the value it
+points to: loading a value out of the pointer is perfectly fine.
+Many standard library functions (e.g. 'strlen', 'memcpy') have this property.
+<!-- The simplifylibcalls pass applies these attributes to standard libc functions. -->
+</li>
<li>The parser for ".ll" files in lib/AsmParser is now completely rewritten as a
recursive descent parser. This parser produces better error messages (including
<ul>
<li>Fortran support generally works, but there are still several unresolved bugs
in Bugzilla. Please see the tools/gfortran component for details.</li>
-
-<li>The Fortran front-end currently does not build on Darwin (without tweaks)
- due to unresolved dependencies on the C front-end.</li>
</ul>
</div>