aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbellard <bellard>2001-10-28 15:29:01 +0000
committerbellard <bellard>2001-10-28 15:29:01 +0000
commit58f3296a6efe1ea51a73abc31a3503bffa0e1a82 (patch)
tree9d170216fe19ffab7ac28602bcdf815f40c906c1
parent927c4afc0cd9a66b58c44475b2650d9fe9c9fc2a (diff)
downloadtinycc-58f3296a6efe1ea51a73abc31a3503bffa0e1a82.tar.gz
tinycc-58f3296a6efe1ea51a73abc31a3503bffa0e1a82.tar.bz2
updated
-rw-r--r--README49
-rw-r--r--TODO5
2 files changed, 52 insertions, 2 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..7769599
--- /dev/null
+++ b/README
@@ -0,0 +1,49 @@
+Tiny C Compiler - Make the best x86 Linux C compiler in less than 8192 bytes.
+-----------------------------------------------------------------------------
+
+Differences with ANSI C:
+-----------------------
+
+- Preprocessor: only '#define xx yy' is supported. Recursive defined
+ supported. All other directives are not supported.
+
+- Types: int, char, void, pointers and functions are
+ supported. Function pointers are also supported. struct, union and
+ typedef not supported.
+
+- Operations: 'x=' not supported.
+
+- Keywords: the following keywords are supported: int void char if
+ else while break return for.
+
+- Symbol scope: local variables supported, but they cannot have the
+ same name as global variables.
+
+Features:
+--------
+
+- SMALL! You can compile and execute C code everywhere, for example on
+ rescue disks.
+
+- FAST! tcc generate x86 code. No byte code overhead.
+
+- Compile and execute C source directly. No linking necessary.
+
+- C script supported : just add '#!/usr/bin/tcc' at the first line of
+ your C source, and execute it directly from the command line !
+
+- All C library functions can be used via dynamic linking.
+
+-------------------------------------------------------------------------
+An even smaller compiler can be build from tcc by activating the
+define 'TINY'. The following changes from tcc:
+
+- Comments are not supported.
+
+- Parsing: No char constants. No '\r' and '\t' in strings. Only base
+ 10 numbers are supported.
+
+- no 'for' loops.
+
+- Operations: '?:', ',', 'x=', shifts, '&&', '||', '!', '~' not supported.
+
diff --git a/TODO b/TODO
index 0add706..1c2ce0d 100644
--- a/TODO
+++ b/TODO
@@ -1,6 +1,7 @@
+- static arrays
+- external symbols (vars)
+- continue/do while/switch/case/goto
- 'x'=
-- shifts
-- conditionnal ?:
- constant propagation for '+', '-' and [].
- verify function types