[cfe-commits] r39335 - /cfe/cfe/trunk/README.txt

sabre at cs.uiuc.edu sabre at cs.uiuc.edu
Wed Jul 11 09:43:16 PDT 2007


Author: sabre
Date: Wed Jul 11 11:43:15 2007
New Revision: 39335

URL: http://llvm.org/viewvc/llvm-project?rev=39335&view=rev
Log:
update readme.

Modified:
    cfe/cfe/trunk/README.txt

Modified: cfe/cfe/trunk/README.txt
URL: http://llvm.org/viewvc/llvm-project/cfe/cfe/trunk/README.txt?rev=39335&r1=39334&r2=39335&view=diff

==============================================================================
--- cfe/cfe/trunk/README.txt (original)
+++ cfe/cfe/trunk/README.txt Wed Jul 11 11:43:15 2007
@@ -8,7 +8,7 @@
  clang: noun
     1. A loud, resonant, metallic sound.
     2. The strident call of a crane or goose.
-    3. C-language front-end toolkit.
+    3. C-language family front-end toolkit.
 
  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
@@ -20,8 +20,8 @@
 
  This front-end is built as a component of the LLVM toolkit (which really really
  needs a better name) that can be used with the LLVM backend or independently of
- it.  In this spirit, the API has been carefully designed to include the
- following components:
+ it.  In this spirit, the API has been carefully designed to as the following
+ stack of components:
  
    libsupport  - Basic support library, reused from LLVM.
    libsystem   - System abstraction library, reused from LLVM.
@@ -41,12 +41,13 @@
                  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.
+                 Includes a pretty-printer for the ASTs.
    libast2llvm - [Planned] Lower the AST to LLVM IR for optimization & codegen.
-   clang       - An example client of the libraries at various levels.
+   clang       - An example driver, client of the libraries at various levels.
 
- This front-end has been intentionally built as a stack, making it trivial
- to replace anything below a particular point.  For example, if you want a
- preprocessor, you take the Basic and Lexer libraries.  If you want an indexer,
+ This front-end has been intentionally built as a stack, making it trivial to
+ replace anything below (in this list) a particular point. For example, to build
+ a preprocessor, you take the Basic and Lexer libraries. If you want an indexer,
  you take those plus the Parser library and provide some actions for indexing.
  If you want a refactoring, static analysis, or source-to-source compiler tool,
  it makes sense to take those plus the AST building library.  Finally, if you
@@ -54,8 +55,8 @@
  AST to LLVM lowering code.
  
  In the future I hope this toolkit will grow to include new and interesting
- components, including a C++ front-end, ObjC support, AST pretty printing
- support, and a whole lot of other things.
+ components, including a C++ front-end, ObjC support, and a whole lot of other
+ things.
 
  Finally, it should be pointed out that the goal here is to build something that
  is high-quality and industrial-strength: all the obnoxious features of the C
@@ -71,12 +72,12 @@
    - To make diagnostics more gcc-like: -fno-caret-diagnostics -fno-show-column
    - Enable metric printing: -stats
 
- * -parse-noop is the default mode.
+ * -fsyntax-only is the default mode.
 
  * -E mode gives output nearly identical to GCC, though not all bugs in
    whitespace calculation have been emulated.
 
- * -fsyntax-only is currently unimplemented.
+ * -fsyntax-only is currently partially implemented.
  
  * -parse-print-callbacks prints almost no callbacks so far.
  
@@ -102,7 +103,7 @@
  * Defers exposing platform-specific stuff to as late as possible, tracks use of
    platform-specific features (e.g. #ifdef PPC) to allow 'portable bytecodes'.
  * The lexer doesn't rely on the "lexer hack": it has no notion of scope and
-   does not catagorize identifiers as types or variables, this is up to the
+   does not categorize identifiers as types or variables -- this is up to the
    parser to decide.
 
 Future Features:
@@ -145,20 +146,16 @@
  * All.
 
 Parser:
- * C90/K&R modes.  Need to get a copy of the C90 spec.
+ * C90/K&R modes.
  * __extension__, __attribute__ [currently just skipped and ignored].
- * A lot of semantic analysis is missing.
  * "initializers", GCC inline asm.
 
 Parser Actions:
  * All that are missing.
- * SemaActions vs MinimalActions.
- * Would like to either lazily resolve types [refactoring] or aggressively
-   resolve them [c compiler].  Need to know whether something is a type or not
-   to compile, but don't need to know what it is.
  * Implement a little devkit-style "indexer".
  
 AST Builder:
  * Implement more nodes as actions are available.
- * Types.
- * Decls.
+
+Semantic Analysis:
+ * Perhaps 30-40% done.





More information about the cfe-commits mailing list