index.html revision bc8d3f97eb5c958007f2713238472e0c1c8fe02
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>
25bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">llvmdev</a>
26bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits">llvm-commits</a>
27bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    <a href="http://llvm.org/bugs/">Bug Reports</a>
28bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    <a href="http://llvm.org/svn/llvm-project/compiler-rt/trunk/">Browse SVN</a>
29bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/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>&lt;future&gt;</code></li>
81bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant        <li>Missing <code>&lt;regex&gt;</code></li>
82bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant        <li>Under construction <code>&lt;random&gt;</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>
96bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant  <li><code>svn co http://llvm.org/svn/llvm-project/libcpp/trunk libcpp</code></li>
97bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant  <li><code>cd libcpp/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>
104bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant  <li><code>cd libcpp/test</code></li>
105bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant  <li><code>/testit</code></li>
106bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant  </ul>
107bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
108bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant</div>
109bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant</body>
110bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant</html>