diff options
Diffstat (limited to 'www/OpenProjects.html')
-rw-r--r-- | www/OpenProjects.html | 41 |
1 files changed, 17 insertions, 24 deletions
diff --git a/www/OpenProjects.html b/www/OpenProjects.html index 46d9716..52fcabe 100644 --- a/www/OpenProjects.html +++ b/www/OpenProjects.html @@ -21,11 +21,6 @@ intended to be comprehensive. Please ask on cfe-dev for more specifics or to verify that one of these isn't already completed. :)</p> <ul> -<li><b>Compile your favorite C/ObjC project with Clang</b>: -Clang's type-checking and code generation is very close to complete (but not bug free!) for C and Objective-C. We appreciate all reports of code that is -rejected or miscompiled by the front-end. If you notice invalid code that is not rejected, or poor diagnostics when code is rejected, that is also very important to us. For make-based projects, -the <a href="get_started.html#driver"><code>clang</code></a> driver works as a drop-in replacement for GCC.</li> - <li><b>Undefined behavior checking</b>: CodeGen could insert runtime checks for all sorts of different undefined behaviors, from reading uninitialized variables, buffer overflows, and many other things. This @@ -50,11 +45,17 @@ rich understanding of the code.</li> <li><b>Use clang libraries to implement better versions of existing tools</b>: Clang is built as a set of libraries, which means that it is possible to implement capabilities similar to other source language tools, improving them -in various ways. Two examples are <a href="http://distcc.samba.org/">distcc</a> -and the <a href="http://delta.tigris.org/">delta testcase reduction tool</a>. -The former can be improved to scale better and be more efficient. The latter -could also be faster and more efficient at reducing C-family programs if built -on the clang preprocessor.</li> +in various ways. Three examples are <a +href="http://distcc.samba.org/">distcc</a>, the <a +href="http://delta.tigris.org/">delta testcase reduction tool</a>, and the +"indent" source reformatting tool. +distcc can be improved to scale better and be more efficient. Delta could be +faster and more efficient at reducing C-family programs if built on the clang +preprocessor, indent could do proper formatting for complex C++ features, and it +would be straight-forward to extend a clang-based implementation to handle +simple structural rules like those in <a +href="http://llvm.org/docs/CodingStandards.html#hl_earlyexit">the LLVM coding +standards</a>.</li> <li><b>Use clang libraries to extend Ragel with a JIT</b>: <a href="http://research.cs.queensu.ca/~thurston/ragel/">Ragel</a> is a state @@ -77,26 +78,17 @@ improve the quality of clang by self-testing. Some examples: </ul> </li> -<li><b>Continue work on C++ support</b>: Implementing all of C++ is a very big -job, but there are lots of little pieces that can be picked off and implemented. Here are some small- to mid-sized C++ implementation projects: -<ul> - <li>Fix bugs: there are a number of XFAIL'd test cases in Clang's repository (particularly in the CXX subdirectory). Pick a test case and fix Clang to make it work!</li> - <li>Write tests: the CXX test subdirectory in Clang's repository has placeholders for tests of every paragraph in the C++ standard. Pick a paragraph, write a few tests, and see if they work! Even if they don't we'd still like the new tests (with XFAIL'd) so that we know what to fix.</li> - <li>Parsing and semantic analysis for using declarations in classes</li> - <li>Inherited conversion functions</li> - <li>Improved diagnostics for overloading failures and ambiguities</li> - <li>Improved template error messages, e.g., with more informative backtraces</li> -</ul> - -Also, see the <a href="cxx_status.html">C++ status report page</a> to -find out what is missing and what is already at least partially -supported.</li> +<li><b>Continue work on C++'0x support</b>: + C++'98 is feature complete, but there is still a lot of C++'0x featuers to + implement. Please see the <a href="cxx_status.html">C++ status report + page</a> to find out what is missing.</li> </ul> <p>If you hit a bug with clang, it is very useful for us if you reduce the code that demonstrates the problem down to something small. There are many ways to do this; ask on cfe-dev for advice.</p> +<ul> <li><b>StringRef'ize APIs</b>: A thankless but incredibly useful project is StringRef'izing (converting to use <tt>llvm::StringRef</tt> instead of <tt>const char *</tt> or <tt>std::string</tt>) various clang interfaces. This generally @@ -108,6 +100,7 @@ experience -- it should be easy to cross compile applications, install support for new architectures, access different compilers and tools, and be consistent across different platforms. See the <a href="UniversalDriver.html">Universal Driver</a> web page for more information.</li> +</ul> </div> </body> |