]> granicus.if.org Git - clang/commitdiff
add a bunch of open projects
authorChris Lattner <sabre@nondot.org>
Thu, 13 Dec 2007 06:41:15 +0000 (06:41 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 13 Dec 2007 06:41:15 +0000 (06:41 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44990 91177308-0d34-0410-b5e6-96231b3b80d8

www/get_involved.html

index 9ad9cb2abb1c9dd2465498ed31fa20de015cc1c5..a1b8f3344c1f025edc5ecd7b4b78cfb65aa3183f 100644 (file)
@@ -57,16 +57,10 @@ discussions or follow the list development on the web if you prefer.</p>
 \r
 <h2>Open Projects</h2>\r
 \r
-<p>Here are a few tasks that are available for newcomers to work on.  This list\r
-is provided to generate ideas, it is not intended to be comprehensive.  Please\r
-ask on cfe-dev for more specifics or to verify that one of these isn't already\r
-completed. :)</p>\r
-\r
-<p>Please note that the information provided here is not completely thorough.\r
-This is intentional. If you plan to work on Clang, we would like you to get\r
-involved with the other developers. This will allow us to work together better\r
-and will give you a better feel for how things are done.</p>\r
-\r
+<p>Here are a few tasks that are available for newcomers to work on, depending\r
+on what your interests are.  This list is provided to generate ideas, it is not\r
+intended to be comprehensive.  Please ask on cfe-dev for more specifics or to\r
+verify that one of these isn't already completed. :)</p>\r
 \r
 <ul>\r
 <li><b>Compile your favorite C/ObjC project with "clang -fsyntax-only"</b>:\r
@@ -75,11 +69,53 @@ free!) for C and Objective C.  We appreciate all reports of code that is
 rejected by the front-end, and if you notice invalid code that is not rejected\r
 by clang, that is also very important to us.</li>\r
 \r
-<li>\r
+<li><b>Compile your favorite C project with "clang -emit-llvm"</b>:\r
+The clang to LLVM converter is getting more mature, so you may be able to\r
+compile it.  If not, please let us know.  Once it compiles it should run.  If\r
+not, that's a bug :)</li>\r
+\r
+<li><b>Working on code generation for Objective C</b>: -emit-llvm support for\r
+Objective C is basically non-existant at the time of this writing, this is a\r
+nice open project that can be tackled incrementally (one language feature at a\r
+time).</li>\r
+\r
+<li><b>Continue work on C++ support</b>: Implementing all of C++ is a very big\r
+job, but there are lots of little things that can be done.  Right now we support\r
+some small things like references and bool.  We also support parsing of\r
+namespace's, but don't build ASTs for it.  It would be straight-forward to\r
+implement support for representing namespaces, then add support for things like\r
+foo::bar::baz.  Likewise, lots of other little pieces can be picked off and\r
+implemented.</li>\r
+\r
+<li><b>Improve target support</b>: The current target interfaces are heavily\r
+stubbed out and need to be implemented fully.  See the FIXME's in TargetInfo.\r
+Additionally, the actual target implementations (instances of TargetInfoImpl)\r
+also need to be completed.  This includes defining builtin macros for linux\r
+targets and other stuff like that.</li>\r
+\r
+<li><b>Implement 'builtin' headers</b>: GCC provides a bunch of builtin headers,\r
+such as stdbool.h, iso646.h, float.h, limits.h, etc.  It also provides a bunch\r
+of target-specific headers like altivec.h and xmmintrin.h.  clang will\r
+eventually need to provide its own copies of these (and there is a <a href=\r
+"http://lists.cs.uiuc.edu/pipermail/cfe-dev/2007-December/000560.html">lot of \r
+improvement</a> that can be made to the GCC ones!) that are clean-room\r
+implemented to avoid GPL taint.</li>\r
+\r
+<li><b>Implement a clang 'libgcc'</b>: As with the headers, clang (or a another\r
+related subproject of llvm) will need to implement the features that libgcc\r
+provides. libgcc provides a bunch of routines the code generator uses for\r
+"fallback" when the chip doesn't support some operation (e.g. 64-bit divide on\r
+a 32-bit chip).  It also provides software floating point support and many other\r
+things.  I don't think that there is a specific licensing reason to reimplement\r
+libgcc, but there is a lot of room for improvement in it in many \r
+dimensions.</li>\r
 \r
- </li>\r
 </ul>\r
 \r
+<p>If you hit a bug with clang, it is very useful for us if you reduce the code\r
+that demonstrates the problem down to something small.  There are many ways to\r
+do this, ask on cfe-dev for advise.</p>\r
+\r
 </div>\r
 </body>\r
 </html>\r