diff options
| author | bellard <bellard> | 2002-01-05 19:50:17 +0000 |
|---|---|---|
| committer | bellard <bellard> | 2002-01-05 19:50:17 +0000 |
| commit | ebe9e87ccf7ef063fe907d92b833b1eac41bb099 (patch) | |
| tree | 021499d774958db02e0082af1cd051e833856dc9 /README | |
| parent | fd20e74b2f3971f1438d78427925dd5985c6e658 (diff) | |
| download | tinycc-ebe9e87ccf7ef063fe907d92b833b1eac41bb099.tar.gz tinycc-ebe9e87ccf7ef063fe907d92b833b1eac41bb099.tar.bz2 | |
update
Diffstat (limited to 'README')
| -rw-r--r-- | README | 36 |
1 files changed, 12 insertions, 24 deletions
@@ -15,6 +15,9 @@ Features: heading torward full ISOC99 compliance. TCC can of course compile itself. +- SAFE! tcc includes an optional memory and bound checker. Bound + checked code can be mixed freely with standard code. + - Compile and execute C source directly. No linking or assembly necessary. Full C preprocessor included. @@ -27,7 +30,7 @@ Documentation: 1) Installation -***TCC currently only works on Linux x86***. +*** TCC currently only works on Linux x86 with glibc >= 2.1 ***. Type 'make install' to compile and install tcc in /usr/local/bin and /usr/local/lib/tcc. @@ -49,21 +52,7 @@ launch the C code as a shell or perl script :-) The command line arguments are put in 'argc' and 'argv' of the main functions, as in ANSI C. -3) Invokation - -'-Idir' : specify an additionnal include path. The -default ones are: /usr/include, /usr/lib/tcc, /usr/local/lib/tcc. - -'-Dsym' : define preprocessor symbol 'sym' to 1. - -'-lxxx' : dynamically link your program with library -libxxx.so. Standard library paths are checked, including those -specificed with LD_LIBRARY_PATH. - -'-i file' : compile C source 'file' before main C source. With this -command, multiple C files can be compiled and linked together. - -4) Examples +3) Examples ex1.c: simplest example (hello world). Can also be launched directly as a script: './ex1.c'. @@ -84,7 +73,7 @@ generator. prog.c: auto test for TCC which tests many subtle possible bugs. Used when doing 'make test'. -5) Full Documentation +4) Full Documentation Please read tcc-doc.html to have all the features of TCC. @@ -105,7 +94,7 @@ assembly), but it allows to be very fast and surprisingly not so complicated. The TCC code generator is register based. It means that it could even -generate good code for RISC processors. On x86, three temporary +generate not so bad code for RISC processors. On x86, three temporary registers are used. When more registers are needed, one register is flushed in a new local variable. @@ -113,13 +102,12 @@ Constant propagation is done for all operations. Multiplications and divisions are optimized to shifts when appropriate. Comparison operators are optimized by maintaining a special cache for the processor flags. &&, || and ! are optimized by maintaining a special -'jmp target' value. No other jmp optimization is currently performed +'jump target' value. No other jump optimization is currently performed because it would require to store the code in a more abstract fashion. -The types and values descriptions are stored in a single 'int' -variable (see VT_xxx constants). It was choosen in the first stages of -development when tcc was much simpler. Now, it may not be the best -solution. +The types are stored in a single 'int' variable (see VT_xxx +constants). It was choosen in the first stages of development when tcc +was much simpler. Now, it may not be the best solution. License: ------- @@ -130,4 +118,4 @@ file). I accept only patches where you give your copyright explicitely to me to simplify licensing issues. -Fabrice Bellard - Nov 17, 2001. +Fabrice Bellard. |
