index.html revision a535ffd99d3702ab065647e28e83c2b7d720be3d
1bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 2bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "http://www.w3.org/TR/html4/strict.dtd"> 3bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant<!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ --> 4bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant<html> 5bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant<head> 6bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 7bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <title>"libc++" C++ Standard Library</title> 8bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <link type="text/css" rel="stylesheet" href="menu.css"> 9bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <link type="text/css" rel="stylesheet" href="content.css"> 10bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant</head> 11bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 12bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant<body> 13bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant<div id="menu"> 14bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <div> 15bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <a href="http://llvm.org/">LLVM Home</a> 16bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant </div> 17bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 18bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <div class="submenu"> 19bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <label>libc++ Info</label> 20bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <a href="/index.html">About</a> 21bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant </div> 22bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 23bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <div class="submenu"> 24bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <label>Quick Links</label> 25a535ffd99d3702ab065647e28e83c2b7d720be3dChris Lattner <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev">cfe-dev</a> 26a535ffd99d3702ab065647e28e83c2b7d720be3dChris Lattner <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits">cfe-commits</a> 27bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <a href="http://llvm.org/bugs/">Bug Reports</a> 2876e1ffc6036a7e772827228e4626280caddbc354Howard Hinnant <a href="http://llvm.org/svn/llvm-project/libcxx/trunk/">Browse SVN</a> 2976e1ffc6036a7e772827228e4626280caddbc354Howard Hinnant <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/">Browse ViewVC</a> 30bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant </div> 31bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant</div> 32bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 33bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant<div id="content"> 34bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <!--*********************************************************************--> 35bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <h1>"libc++" C++ Standard Library</h1> 36bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <!--*********************************************************************--> 37bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 38bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <p>libc++ is a new implementation of the C++ standard library, targeting 39bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant C++0X.</p> 40bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 41bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <p>All of the code in libc++ is available under the standard 42bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <a href="http://llvm.org/docs/DeveloperPolicy.html#license">LLVM 43bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant License</a>, a "BSD-style" license.</p> 44bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 45bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <!--=====================================================================--> 46bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <h2 id="goals">Features and Goals</h2> 47bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <!--=====================================================================--> 48bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 49bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <ul> 50bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <li>Correctness as defined by the (currently draft) C++0X standard.</li> 51bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <li>Fast execution.</li> 52bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <li>Minimal memory use.</li> 53bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <li>Fast compile times.</li> 54bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <li>ABI compatibility with gcc's libstdc++ for some low-level features 55bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant such as exception objects, rtti and memory allocation.</li> 56bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <li>Extensive unit tests.</li> 57bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant </ul> 58bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 59bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <!--=====================================================================--> 60bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <h2 id="requirements">Platform Support</h2> 61bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <!--=====================================================================--> 62bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 63bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <p>libc++ is known to work on the following platforms, using g++-4.2 and 64bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant clang (lack of C++0X language support disables some functionality).</p> 65bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 66bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <ul> 67bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <li>Mac OS X i386</li> 68bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <li>Mac OS X x86_64</li> 69bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant </ul> 70bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 71bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <!--=====================================================================--> 72bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <h2 id="dir-structure">Current Status</h2> 73bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <!--=====================================================================--> 74bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 75bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <p>libc++ is still under development. It has about 85% of 76bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3092.pdf">N3092</a> 77bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant implemented/tested.</p> 78bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 79bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <ul> 80bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <li>Missing <code><future></code></li> 81bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <li>Missing <code><regex></code></li> 82bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <li>Under construction <code><random></code></li> 83bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant </ul> 84bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 85bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <p>libc++ is currently dependent upon a separate library for the low-level 86bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant ABI compatibility with gcc. As a workaround it can be linked against 87bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant gcc's libstdc++.</p> 88bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 89bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <!--=====================================================================--> 90bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <h2>Get it and get involved!</h2> 91bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <!--=====================================================================--> 92bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 93bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <p>To check out the code, use:</p> 94bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 95bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <ul> 964b748953a2d51c34127aa9c593477966242e1898Chris Lattner <li><code>svn co http://llvm.org/svn/llvm-project/libcxx/trunk libcxx</code></li> 974b748953a2d51c34127aa9c593477966242e1898Chris Lattner <li><code>cd libcxx/lib</code></li> 98bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <li><code>/buildit</code></li> 99bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant </ul> 100bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 101bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <p>To run the libc++ test suit (recommended):</p> 102bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 103bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <ul> 1044b748953a2d51c34127aa9c593477966242e1898Chris Lattner <li><code>cd libcxx/test</code></li> 105bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant <li><code>/testit</code></li> 106bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant </ul> 107bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 1088c21737c03f3b266d8679d56faa6b6d091e7f2f1Howard Hinnant <p>Send discussions to the 1098c21737c03f3b266d8679d56faa6b6d091e7f2f1Howard Hinnant (<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev">clang mailing list</a>).</p> 1108c21737c03f3b266d8679d56faa6b6d091e7f2f1Howard Hinnant 111bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant</div> 112bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant</body> 1134b748953a2d51c34127aa9c593477966242e1898Chris Lattner</html> 114