From 58f3296a6efe1ea51a73abc31a3503bffa0e1a82 Mon Sep 17 00:00:00 2001 From: bellard Date: Sun, 28 Oct 2001 15:29:01 +0000 Subject: [PATCH] updated --- README | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ TODO | 5 +++-- 2 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 README 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