Indentation.
[oota-llvm.git] / docs / ReleaseNotes.html
index 3501c5f0d654d34af650baa15dfe9f1500380ac7..bdaba71b7430d341e663a0b1df71528fd743ff45 100644 (file)
@@ -104,14 +104,11 @@ code generator.  While Clang is not included in the LLVM 2.5 release, it is
 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
@@ -123,10 +120,15 @@ list</a>.</p>
 <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>
@@ -257,9 +259,9 @@ fully featured as the original DMD compiler from DigitalMars.
 
 <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>
 
 
@@ -368,13 +370,16 @@ produces a .o file (thus they are invisible to the linker).</li>
 <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
@@ -878,9 +883,6 @@ itself, Qt, Mozilla, etc.</p>
 <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>