new site -- the rest of it
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42651 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/www/carbon-compile.png b/www/carbon-compile.png
new file mode 100644
index 0000000..e8516c7
--- /dev/null
+++ b/www/carbon-compile.png
Binary files differ
diff --git a/www/clang_video-05-25-2007.html b/www/clang_video-05-25-2007.html
new file mode 100644
index 0000000..5fb51cc
--- /dev/null
+++ b/www/clang_video-05-25-2007.html
@@ -0,0 +1,28 @@
+<!--
+Consulted:
+HTML 4.01 specs: http://www.w3.org/TR/html401/
+-->
+<html>
+<head>
+ <title>2007 LLVM Developer's Meeting</title>
+ <link type="text/css" rel="stylesheet" href="menu.css" />
+ <link type="text/css" rel="stylesheet" href="content.css" />
+</head>
+<body>
+ <!--#include virtual="menu.html.incl"-->
+ <div id="content">
+ <h1>2007 LLVM Developer's Meeting</h1>
+ Discussion about Clang at the <a href="http://llvm.org/devmtg/2007-05/">2007 LLVM Developer's Meeting</a>.
+ <h2>About:</h2>
+ <p>In this video, Steve Naroff introduces the Clang project and talks about some of the goals and motivations for starting the project.
+ <br><br>
+ <p><b>Details:</b> New LLVM C Front-end - This talk describes a new from-scratch C frontend (which is aiming to support Objective C and C++ someday) for LLVM, built as a native part of the LLVM system and in the LLVM design style.
+ <h2>The Presentation:</h2>
+ <p>You can download a copy of the presentation in mov format. However, due to the picture quality, it is recommended that you also download the lecture slides for viewing while you watch the video.
+ <ul>
+ <li><a href="http://llvm.org/devmtg/2007-05/09-Naroff-CFE.mov">Video (mov file)</a>
+ <li><a href="http://llvm.org/devmtg/2007-05/09-Naroff-CFE.pdf">Lecture slides (PDF)</a>
+ </ul>
+ </div>
+</body>
+</html>
\ No newline at end of file
diff --git a/www/clang_video-07-25-2007.html b/www/clang_video-07-25-2007.html
new file mode 100644
index 0000000..594064d
--- /dev/null
+++ b/www/clang_video-07-25-2007.html
@@ -0,0 +1,31 @@
+<!--
+Consulted:
+HTML 4.01 specs: http://www.w3.org/TR/html401/
+-->
+<html>
+<head>
+ <title>LLVM 2.0 and Beyond!</title>
+ <link type="text/css" rel="stylesheet" href="menu.css" />
+ <link type="text/css" rel="stylesheet" href="content.css" />
+</head>
+<body>
+ <!--#include virtual="menu.html.incl"-->
+ <div id="content">
+ <h1>LLVM 2.0 and Beyond!</h1>
+ A Google Techtalk by <a href="http://www.nondot.org/sabre/">Chris Lattner</a>
+ <h2>About:</h2>
+ <p>In this video, Chris Lattner talks about some of the features of Clang, especially in regards to performance.
+ <br><br>
+ <p><b>Details:</b> The LLVM 2.0 release brings a number of new features and capabilities to the LLVM toolset. This talk briefly describes those features, then moves on to talk about what is next: llvm 2.1, llvm-gcc 4.2, and puts a special emphasis on the 'clang' C front-end. This describes how the 'clang' preprocessor can be used to improve the scalability of distcc by up to 4.4x.
+ <h2>The Presentation:</h2>
+ <p>You can view the presentation through google video. In addition, the slides from the presentation are also available, if you wish to retain a copy.
+ <ul>
+ <li><a href="http://video.google.com/videoplay?docid=1921156852099786640">Google Tech Talk Video (19:00-)</a> (Note: the Clang lecture starts at 19 minutes into the video.)
+ <li><a href="http://llvm.org/pubs/2007-07-25-LLVM-2.0-and-Beyond.pdf">LLVM 2.0 and Beyond! slides (PDF)</a>
+ </ul>
+ <h2>Publishing Information:</h2>
+ "LLVM 2.0 and Beyond!", Chris Lattner,<br>
+ <i>Google Tech Talk</i>, Mountain View, CA, July 2007.
+ </div>
+</body>
+</html>
\ No newline at end of file
diff --git a/www/content.css b/www/content.css
new file mode 100644
index 0000000..ee3559d
--- /dev/null
+++ b/www/content.css
@@ -0,0 +1,84 @@
+/*
+ Consulted:
+ http://www.w3.org/TR/CSS1 &
+ http://www.w3.org/TR/CSS21/
+*/
+
+ html, body {
+ margin:0px;
+ padding:0px;
+ }
+ p {
+ margin-top:0;
+ margin-bottom:0;
+ }
+
+ ul, ol { /* Get rid of the extra space above and below all lists */
+ margin-top:0;
+ margin-bottom:0;
+ }
+ table,tr,td {
+ border:.3ex solid black;
+ border-collapse:collapse;
+ padding:.4ex;
+ }
+
+
+ .li_desc, .li_weak_desc { /* layout + formatting */
+ margin: 0 3ex;
+ font-size:.9em;
+ }
+ .li_weak_desc { /* color */
+ color:rgb(100,100,100);
+ }
+ .weak_txt {
+ font-size:.9em;
+ color:rgb(100,100,100);
+ }
+
+ .code {
+ font:Courier,Arial;
+ }
+ .quote {
+ display: block;
+ margin: 0 5em;
+ }
+ .key_point {
+ color:rgb(200,0,0);
+ }
+ .simple_list { /* simple lists that don't need to stand out */
+ margin-left:0;
+ }
+
+
+ /* ****************** */
+ /* Performance images */
+ .img_container {
+ display:inline;
+ background-color:rgb(250,250,250);
+ width:400px;
+ vertical-align:top;
+ margin:.1em;
+ }
+ [class=img_container] {
+ display:inline-block;
+ }
+ .img_container img {
+ display:block;
+ }
+
+ .img_title {
+ display:block;
+ font-weight:bold;
+ color:rgb(20,50,150);
+ }
+ .img_desc .img-notes {
+ display:block;
+ padding:.3em;
+ }
+ .img_notes {
+ font-style:italic;
+ color:rgb(50,50,50);
+ font-size:.9em;
+ }
+ /* ****************** */
\ No newline at end of file
diff --git a/www/feature-compile1.png b/www/feature-compile1.png
new file mode 100644
index 0000000..cec7c48
--- /dev/null
+++ b/www/feature-compile1.png
Binary files differ
diff --git a/www/feature-compile2.png b/www/feature-compile2.png
new file mode 100644
index 0000000..0eb9300
--- /dev/null
+++ b/www/feature-compile2.png
Binary files differ
diff --git a/www/feature-diagnostics1.png b/www/feature-diagnostics1.png
new file mode 100644
index 0000000..00b0a0d
--- /dev/null
+++ b/www/feature-diagnostics1.png
Binary files differ
diff --git a/www/feature-memory1.png b/www/feature-memory1.png
new file mode 100644
index 0000000..29368aa
--- /dev/null
+++ b/www/feature-memory1.png
Binary files differ
diff --git a/www/features.html b/www/features.html
new file mode 100644
index 0000000..bc3200f
--- /dev/null
+++ b/www/features.html
@@ -0,0 +1,109 @@
+<!-- Consulted: http://www.w3.org/TR/CSS1 & http://www.w3.org/TR/CSS21/ -->
+<!--
+Consulted:
+HTML 4.01 specs: http://www.w3.org/TR/html401/
+-->
+<html>
+<head>
+ <title>Clang - Features</title>
+ <link type="text/css" rel="stylesheet" href="menu.css" />
+ <link type="text/css" rel="stylesheet" href="content.css" />
+ <style type="text/css">
+</style>
+</head>
+<body>
+<!--#include virtual="menu.html.incl"-->
+<div id="content">
+ <h1>Features of Clang</h1>
+This page outlines the main goals of Clang, as well as some compelling reasons why you should consider using Clang. In the "Goals" section below, you will find a brief, bulletted overview of the goals and features that we are striving for in the development of Clang. However, in the "Key Features" section you will find a more detailed presentation on what we believe are some key drawing points for the LLVM front-end. <span class="key_point">If you are new to Clang and the LLVM front-end, and you want a reason for considering working on or using the new front-end, then make sure you check out the "Key Features" section.</span>
+<h1>Goals</h1>
+ <ul>
+ <li>Unified parser for C-based languages<div class="li_desc">We are only focusing on the C languages (C,C++,ObjC); however, if someone wants to work on another language, they are free to take charge of such a project.</div>
+ <li>Language conformance with C99, ObjC, C++
+ <li>Real-world, production quality compiler
+ <li>GCC compatibility
+ <li>Library based architecture with finely crafted C++ APIs
+ <div class="li_desc">Makes Clang easier to work with and more flexible.</div>
+ <div class="li_weak_desc">(more details on this in the "Key Features" section)</div>
+ <li>Easy to extend
+ <div class="li_weak_desc">(because of the library based architecture)</div>
+ <li>Multipurpose
+ <div class="li_desc">Can be used for:
+ Indexing, static analysis, code generation
+ Source to source tools, refactoring</div>
+ <div class="li_weak_desc">(because of library based architecture)</div>
+ <li>High performance
+ <div class="li_desc">Faster than GCC (parse time), Low memory footprint, lazy evaluation</div>
+ <div class="li_weak_desc">(more details in the "Key Features" section)</div>
+ <li>Better integration with IDEs
+ <div class="li_weak_desc">(more details in the "Key Features" section)</div>
+ <li>Expressive diagnostics
+ <div class="li_desc">Error reporting and diagnostic messages are more detailed an accurate than GCC.</div>
+ <div class="li_weak_desc">(more details in the "Key Features" section)</div>
+ <li>BSD License
+ <div class="li_desc">Fewer restrictions on developers; allows for use in commercial products.</div>
+ </ul>
+<h1>Key Features</h1>
+There are several key features which we believe will make Clang a compelling alternative. These features are designed to make things easier for both the compiler developer (people working on Clang and derivative products) and the application developer (those who use Clang/LLVM).
+<h2>Library based architecture</h2>
+A major design concept for the LLVM front-end involves using a library based architecture. In this library based architecture, various parts of the front-end can be cleanly divided into separate libraries which can then be mixed up for different needs and uses. In addition, the library based approach makes it much easier for new developers to get involved and extend LLVM to do new and unique things. In the words of Chris,
+<div class="quote">"The world needs better compiler tools, tools which are built as libraries. This design point allows reuse of the tools in new and novel ways. However, building the tools as libraries isn't enough: they must have clean APIs, be as decoupled from each other as possible, and be easy to modify/extend. This requires clean layering, decent design, and avoiding tying the libraries to a specific use."</div>
+Currently, the LLVM front-end is divided into the following libraries:
+<ul>
+ <li>libsupport - Basic support library, reused from LLVM.
+ <li>libsystem - System abstraction library, reused from LLVM.
+ <li>libbasic - Diagnostics, SourceLocations, SourceBuffer abstraction, file system caching for input source files. <span class="weak_txt">(depends on above libraries)</span>
+ <li>libast - Provides classes to represent the C AST, the C type system, builtin functions, and various helpers for analyzing and manipulating the AST (visitors, pretty printers, etc). <span class="weak_txt">(depends on above libraries)</span>
+ <li>liblex - C/C++/ObjC lexing and preprocessing, identifier hash table, pragma handling, tokens, and macros. <span class="weak_txt">(depends on above libraries)</span>
+ <li>libparse - Parsing and local semantic analysis. This library invokes coarse-grained 'Actions' provided by the client to do stuff (e.g. libsema builds ASTs). <span class="weak_txt">(depends on above libraries)</span>
+ <li>libsema - Provides a set of parser actions to build a standardized AST for programs. AST's are 'streamed' out a top-level declaration at a time, allowing clients to use decl-at-a-time processing, build up entire translation units, or even build 'whole program' ASTs depending on how they use the APIs. <span class="weak_txt">(depends on libast and libparse)</span>
+ <li>libcodegen - Lower the AST to LLVM IR for optimization & codegen. <span class="weak_txt">(depends on libast)</span>
+ <li><b>clang</b> - An example driver, client of the libraries at various levels. <span class="weak_txt">(depends on above libraries, and LLVM VMCore)</span>
+</ul>
+As an example of the power of this library based design.... If you wanted to build a preprocessor, you would take the Basic and Lexer libraries. If you want an indexer, you would take the previous two and add the Parser library and some actions for indexing. If you want a refactoring, static analysis, or source-to-source compiler tool, you would then add the AST building and semantic analyzer libraries.
+In the end, LLVM's library based design will provide developers with many more possibilities.
+
+<h2>Speed & Memory</h2>
+Another major focus of LLVM's frontend is speed (for all libraries). Even at this early stage, the LLVM front-end is quicker than gcc and uses less memory.<br>
+<div class="img_container">
+ <div class="img_title">Memory:</div>
+ <img src="feature-memory1.png" />
+ <div class="img_desc">This test was run using Mac OS X's Carbon.h header, which is 12.3MB spread across 558 files!
+ Although this is one of the worst case scenarios for GCC, it shows how clang's implemenation is significantly more memory efficient.
+ </div>
+ <div class="img_notes"><span>Notes:</span>
+ Most of the additional memory used by GCC is due to extra data that is added in, which is not needed by the Clang front-end.
+ </div>
+</div>
+<div class="img_container">
+ <div class="img_title">Performance:</div>
+ <img src="feature-compile1.png" />
+ <div class="img_desc">Even at this early stage, the C parser for Clang is able to achieve significantly better performance.
+ </div>
+</div>
+<div class="img_container">
+ <div class="img_title">Performance:</div>
+ <img src="feature-compile2.png" />
+ <div class="img_desc">By moving to distributed compiling using distcc, the performance improvement also becomes noticeable.</div>
+ <div class="img_notes"><span>Notes:</span>
+ These are SPEC2006 benchmarks using Distcc.</div>
+</div>
+
+<h2>More Expressive Diagnostics</h2>
+The design of the Clang driver (one of the LLVM front_end libraries) provies more detailed diagnostic information.<br>
+<div class="img_container">
+ <div class="img_title">Clang vs GCC:</div>
+ <img src="feature-diagnostics1.png" />
+ <div class="img_desc">There are several things to take note of in this example:
+ <ul>
+ <li>The error messages from Clang are more detailed.
+ <li>Clang shows you exactly where the error is, plus the range it has a problem with.
+ </ul>
+ </div>
+ <div class="img_notes"><span>Notes:</span>The first results are from clang; the second results are from gcc.</div>
+</div>
+<h2>Better Integration with IDEs</h2>
+Another benefit of Clang is that it was designed to integrate better with IDEs. In IDEs, the more information the IDE can get to, the better. The clang driver already provides more detailed (and useful) information than gcc. However, because of the library based design of LLVM, you can access additional information by mixing and matching parts of the library to create specialized development and debug tools. In this sense, LLVM is friendlier towards IDEs.
+</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/www/get_involved.html b/www/get_involved.html
new file mode 100644
index 0000000..ed2bdf7
--- /dev/null
+++ b/www/get_involved.html
@@ -0,0 +1,136 @@
+<!-- Consulted: http://www.w3.org/TR/CSS1 & http://www.w3.org/TR/CSS21/ & http://www.w3.org/TR/html401/ -->
+<!--
+Consulted:
+HTML 4.01 specs: http://www.w3.org/TR/html401/
+-->
+<head>
+ <title>Clang - Get Involved</title>
+ <link type="text/css" rel="stylesheet" href="menu.css" />
+ <link type="text/css" rel="stylesheet" href="content.css" />
+</head>
+<body>
+<!--#include virtual="menu.html.incl"-->
+<div id="content">
+<h1>Getting Involved</h1>
+There are many tasks that are open to new developers who want to get involved with the Clang project. Below, you will find details on how to get started with Clang, plus a few tasks that we need help with.<br>
+<br>
+Please note that the information provided here is not completely thorough. This is intentional. If you plan to work on Clang, we would like you to get involved with the other developers. This will allow us to work together better and will give you a better feel for how things are done.
+You can talk with other developers at the following mailing list: <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev">cfe-dev mailing list</a>. (On the other hand, if you feel uncomfortable getting involved in a public mailing list right away, and you just want to ask a few questions to begin with, then you can contact Chris personally, until you feel comfortable moving to the mailing list.)
+
+<h2>Getting Started</h2>
+<h3>A word of warning</h3>
+While this work aims to provide a fully functional C/C++/ObjC front- end, it is *still very early work*. In particular, there is no real C++ support yet (this is obviously a big project), and C/ObjC support is still missing some features. Some of the more notable missing pieces of C support are:
+<ol>
+ <li>The semantic analyzer does not produce all of the warnings and errors it should.
+ <li>The LLVM code generator is still very early on. It does not support many important things, like any support for structs and unions. That said, it does handle scalar operations and vectors.
+ <li>We don't consider the API to be stable yet, and reserve the right to change fundamental things :)
+</ol>
+Our plan is to continue chipping away at these issues until C works really well, but we'd love help from other interested contributors.
+<h3>Follow what's going on</h3>
+To avoid spamming the main LLVM mailing list, two lists were setup just for Clang. Please take all Clang related discussion to these two lists. (Note: If all you care about is the Clang front-end, and not the overall LLVM Compiler project, then the two CFE lists are all that you need.)<br>
+<ul>
+<li><a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits">cfe-commits</a> - This list is for patch submission/discussion.
+<li><a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev">cfe-dev</a> - This list is for everything else clang related.
+</ul>
+<h3>Building clang / working with the code</h3>
+If you would like to check out and build the project, the current scheme is:<br>
+<ol>
+ <li>Check out llvm
+ <ul>
+ <li>cd llvm/tools
+ <li>svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
+ </ul>
+ <li>Non-mac users: Paths to system header files are currently hard coded into the tool; as a result, non-Mac users will need to change the path in one of the files.
+ <ul>
+ <li>'touch empty.c; gcc -v empty.c -fsyntax-only' to get the path.
+ <li>change clang/Driver/clang.cpp:606 to include that path
+ </ul>
+ <li>Build llvm
+ <ul>
+ <li>cd clang
+ <li>make
+ </ul>
+</ol>
+<p>Note that the C front-end uses libsupport and libsystem. You don't need llvm-gcc :)
+<p>We will eventually integrate this better as a sub-project, but for now it builds a single tool named 'clang'.<br>
+Once llvm is built in this way, you can compile C code.
+<h3>Examples of using clang</h3>
+The clang driver takes a lot of GCC compatible options, which you can see with 'clang --help'. Here are a few examples:
+<!-- Thanks to http://shiflett.org/blog/2006/oct/formatting-and-highlighting-php-code-listings
+ Site suggested using pre in CSS, but doesn't work in IE, so went for the <pre> tag.
+-->
+<pre class="code">
+$ cat ~/t.c
+
+typedef float V __attribute__((vector_size(16)));
+V foo(V a, V b) { return a+b*a; }
+
+
+Preprocessing:
+$ clang ~/t.c -E
+# 1 "/Users/sabre/t.c" 1
+
+typedef float V __attribute__((vector_size(16)));
+
+V foo(V a, V b) { return a+b*a; }
+
+
+Type checking:
+$ clang -fsyntax-only ~/t.c
+
+
+GCC options:
+$ clang -fsyntax-only ~/t.c -pedantic
+/Users/sabre/t.c:2:17: warning: extension used
+typedef float V __attribute__((vector_size(16)));
+ ^
+1 diagnostic generated.
+
+
+
+Pretty printing from the AST:
+$ clang ~/t.c -parse-ast-print
+typedef float V __attribute__(( vector_size(16) ));
+
+V foo(V a, V b) {
+ return a + b * a;
+}
+
+
+LLVM code generation:
+$ clang ~/t.c -emit-llvm | llvm-as | opt -std-compile-opts | llvm-dis
+define <4 x float> @foo(<4 x float> %a, <4 x float> %b) {
+entry:
+ %mul = mul <4 x float> %b, %a ; <<4 x float>>
+[#uses=1]
+ %add = add <4 x float> %mul, %a ; <<4 x float>>
+[#uses=1]
+ ret <4 x float> %add
+}
+$ clang ~/t.c -emit-llvm | llvm-as | opt -std-compile-opts | llc -
+march=ppc32 -mcpu=g5
+..
+_foo:
+ vmaddfp v2, v3, v2, v2
+ blr
+$ clang ~/t.c -emit-llvm | llvm-as | opt -std-compile-opts | llc -
+march=x86 -mcpu=yonah
+..
+_foo:
+ mulps %xmm0, %xmm1
+ addps %xmm0, %xmm1
+ movaps %xmm1, %xmm0
+ ret
+</pre>
+<h2>Available tasks</h2>
+Here are a few tasks that are currently available for newcomers to work on:
+
+<h2>Final words</h2>
+In any case, we welcome questions, comments, and especially patches :).
+<br><br>
+Thanks!
+<br><br>
+-Chris
+</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/www/menu.css b/www/menu.css
new file mode 100644
index 0000000..da688dc
--- /dev/null
+++ b/www/menu.css
@@ -0,0 +1,64 @@
+/*
+ Consulted:
+ http://www.w3.org/TR/CSS1 &
+ http://www.w3.org/TR/CSS21/
+*/
+
+/***************/
+/* page layout */
+/***************/
+
+/***IE***/
+#menu {
+ float:left;
+}
+#content {
+ float:left;
+ margin-left:1ex;
+}
+/***W3C***/
+[id=menu] {
+ position:fixed;
+}
+[id=content] {
+ padding-left:16ex; /* ***** EDIT THIS VALUE IF CONTENT OVERLAPS MENU ***** */
+}
+
+/****************/
+/* menu display */
+/****************/
+label, #menu a {
+ display:block;
+ padding:.05em .3em;
+}
+#menu * {
+ display:block;
+}
+#quick_links {
+ padding-top:1em;
+}
+a {
+ margin:.05em;
+}
+
+/**************/
+/* menu style */
+/**************/
+label {
+ font-size:.8em;
+}
+#menu a {
+ background-color:rgb(244,250,255);
+}
+#menu label {
+ background-color:rgb(244,255,250);
+}
+#menu {
+ padding: 0 .2em .2em 0;
+ border-color: rgb(240,240,240);
+ border-width: 0 .1em 0 0;
+ border-style: solid;
+}
+#menu a:visited {
+ color:rgb(130,50,100);
+}
\ No newline at end of file
diff --git a/www/menu.html.incl b/www/menu.html.incl
new file mode 100644
index 0000000..71a8a79
--- /dev/null
+++ b/www/menu.html.incl
@@ -0,0 +1,28 @@
+<!--
+Consulted:
+HTML 4.01 specs: http://www.w3.org/TR/html401/
+-->
+ <div id="menu">
+ <div id="main_menu">
+ <a href="http://www.llvm.org/">LLVM Home</a>
+ <label>Clang Info</label>
+ <a href="index.html">About</a>
+ <a href="status.html">Status</a>
+ <a href="features.html">Features</a>
+ <a href="get_involved.html">Get Involved</a>
+ <a href="http://clang.llvm.org/docs/InternalsManual.html">Manual</a>
+ </div>
+ <div id="quick_links">
+ <label>Quick Links</label>
+ <!-- This section is for special links to areas that,
+ organizationally, are deep within another section,
+ but are still important enough to warrant a link.
+ It's for those things that you have to do a lot, but don't
+ want to have to wade through several pages to go there
+ every time. -->
+ <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev">cfe-dev</a>
+ <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits">cfe-commits</a>
+ <a href="http://llvm.org/bugs/">Bug Reports</a>
+ <a href="http://llvm.org/svn/llvm-project/cfe/trunk/">Browse Source</a>
+ </div>
+ </div>
\ No newline at end of file
diff --git a/www/status.html b/www/status.html
new file mode 100644
index 0000000..acd6182
--- /dev/null
+++ b/www/status.html
@@ -0,0 +1,132 @@
+<!--
+Consulted:
+HTML 4.01 specs: http://www.w3.org/TR/html401/
+-->
+<html>
+<head>
+ <title>Status of Clang</title>
+ <link type="text/css" rel="stylesheet" href="menu.css" />
+ <link type="text/css" rel="stylesheet" href="content.css" />
+</head>
+<body>
+ <!--#include virtual="menu.html.incl"-->
+ <div id="content">
+ <h1>Status of Clang</h1>
+ Here is a rundown of the current status of Clang as of September 2007.
+ <h2>By Language:</h2>
+ <table>
+ <tr>
+ <td>C</td>
+ <td>Basic Status</td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <ul class="simple_list">
+ <li>Add some notes here.
+ <li>Add some notes here.
+ </ul>
+ </td>
+ </tr>
+ <tr>
+ <td>Obj C</td>
+ <td>Basic Status</td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <ul class="simple_list">
+ <li>Add some notes here.
+ <li>Add some notes here.
+ </ul>
+ </td>
+ </tr>
+ <tr>
+ <td>C++</td>
+ <td>Basic Status</td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <ul class="simple_list">
+ <li>Add some notes here.
+ <li>Add some notes here.
+ </ul>
+ </td>
+ </tr>
+ </table>
+ <h2>By library:</h2>
+ <table>
+ <tr>
+ <td>Library</td>
+ <td>C</td>
+ <td>Obj C</td>
+ <td>C++</td>
+ </tr>
+ <tr>
+ <td>libsupport</td>
+ <td>Basic Status</td>
+ <td>Basic Status</td>
+ <td>Basic Status</td>
+ </tr>
+ <tr>
+ <td>libsystem</td>
+ <td>Basic Status</td>
+ <td>Basic Status</td>
+ <td>Basic Status</td>
+ </tr>
+ <tr>
+ <td>libbasic</td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>libast</td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>liblex</td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>libparse</td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td>libsema</td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>libcodegen</td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>clang</td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ </table>
+ <h2>Status History (notes):</h2>
+ <h3>October 5, 2007</h3>
+ <ul>
+ <li>Such and such is now complete.
+ <li>Such and such is almost complete now.
+ </ul>
+ <h3>July 17, 2007</h3>
+ <ul>
+ <li>
+ <li>
+ </ul>
+ </div>
+</body>
+</html>
\ No newline at end of file