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