1 |
2 |
ameziti |
<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
|
2 |
|
|
<html><head>
|
3 |
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
4 |
|
|
<title> TCC : Tiny C Compiler</title>
|
5 |
|
|
</head>
|
6 |
|
|
<body>
|
7 |
|
|
<img src="TCC%20%20%20Tiny%20C%20Compiler_fichiers/tcc-logo.png">
|
8 |
|
|
<div><b><font size="+3">Tiny C Compiler</font></b></div>
|
9 |
|
|
<h2>News</h2>
|
10 |
|
|
|
11 |
|
|
(May 20, 2009) <a href="http://www.tinycc.org/">TCC</a> version 0.9.25
|
12 |
|
|
is out thanks to Grischka (<a href="http://bellard.org/tcc/changelog.html">Changelog</a>). TCC
|
13 |
|
|
version 0.9.25 is the first that supports the x86-64 target. Thanks
|
14 |
|
|
to Shinichiro Hamaji for this.
|
15 |
|
|
<p>
|
16 |
|
|
(Apr 1, 2008) <a href="http://www.tinycc.org/">TCC</a> version 0.9.24
|
17 |
|
|
is out thanks to Grischka (<a href="http://bellard.org/tcc/changelog.html">Changelog</a>). TCC
|
18 |
|
|
now supports compilation from standard input and the arm eabi.
|
19 |
|
|
</p><p>
|
20 |
|
|
(Jun 17, 2005) <a href="http://www.tinycc.org/">TCC</a> version 0.9.23
|
21 |
|
|
is out (<a href="http://bellard.org/tcc/changelog.html">Changelog</a>). This is the first
|
22 |
|
|
version with support for the Windows target.
|
23 |
|
|
</p><p>
|
24 |
|
|
(Nov 8, 2004) <a href="http://www.tinycc.org/">TCC</a> version 0.9.22
|
25 |
|
|
is out (<a href="http://bellard.org/tcc/changelog.html">Changelog</a>). Linux kernel
|
26 |
|
|
compilation is 30% faster (10 seconds on a 2.4 GHz Pentium 4).
|
27 |
|
|
</p><p>
|
28 |
|
|
(Oct 25, 2004) <a href="http://www.tinycc.org/">TCC</a> version 0.9.21
|
29 |
|
|
is out (<a href="http://bellard.org/tcc/changelog.html">Changelog</a>). This version is the
|
30 |
|
|
first one able to build a bootable Linux kernel with only a few
|
31 |
|
|
patches to the kernel sources. As a demonstration, you can try the <a href="http://bellard.org/tcc/tccboot.html">TCCBOOT</a> boot loader. It is able to compile and
|
32 |
|
|
boot a Linux kernel directly from its source code.
|
33 |
|
|
|
34 |
|
|
</p><p> NOTE: if you want to compile the Linux kernel with TCC, you
|
35 |
|
|
must use a custom build script as in TCCBOOT . I never tried to
|
36 |
|
|
compile the Linux kernel with TinyCC and the standard Linux
|
37 |
|
|
Makefiles.
|
38 |
|
|
</p><p>
|
39 |
|
|
|
40 |
|
|
</p><h2>Features</h2>
|
41 |
|
|
<ul>
|
42 |
|
|
|
43 |
|
|
<li> <b>SMALL!</b> You can compile and execute C code everywhere, for
|
44 |
|
|
example on rescue disks (about 100KB for x86 TCC executable,
|
45 |
|
|
including C preprocessor, C compiler, assembler and linker).</li>
|
46 |
|
|
|
47 |
|
|
<li> <b>FAST!</b> tcc generates x86 code. No byte code
|
48 |
|
|
overhead. Compile, assemble and link several times <a href="#speed">faster</a> than <tt>GCC</tt>.</li>
|
49 |
|
|
|
50 |
|
|
<li> <b>UNLIMITED!</b> Any C dynamic library can be used directly. TCC is
|
51 |
|
|
heading torward full <b>ISOC99</b> compliance. TCC can of course compile
|
52 |
|
|
itself.</li>
|
53 |
|
|
|
54 |
|
|
<li> <b>SAFE!</b> tcc includes an optional <b>memory and bound
|
55 |
|
|
checker</b>. Bound checked code can be mixed freely with standard
|
56 |
|
|
code.
|
57 |
|
|
|
58 |
|
|
</li><li> Compile and execute C source directly. No linking or assembly
|
59 |
|
|
necessary. Full C preprocessor and GNU-like assembler
|
60 |
|
|
included. </li>
|
61 |
|
|
|
62 |
|
|
<li> C script supported : just add <tt>'#!/usr/local/bin/tcc -run'</tt> at the first
|
63 |
|
|
line of your C source, and execute it directly from the command
|
64 |
|
|
line.</li>
|
65 |
|
|
|
66 |
|
|
<li> With <code>libtcc</code>, you can use TCC as a backend for dynamic code
|
67 |
|
|
generation. </li>
|
68 |
|
|
|
69 |
|
|
</ul>
|
70 |
|
|
|
71 |
|
|
<h2>Download</h2>
|
72 |
|
|
|
73 |
|
|
<table border="1">
|
74 |
|
|
<tbody><tr> <td>File </td><td> Comment
|
75 |
|
|
</td></tr><tr> <td><a href="http://download.savannah.nongnu.org/releases/tinycc/tcc-0.9.25.tar.bz2">tcc-0.9.25.tar.bz2</a> </td><td> Source archive
|
76 |
|
|
</td></tr><tr> <td><a href="http://download.savannah.nongnu.org/releases/tinycc/tcc-0.9.25-win32-bin.zip">tcc-0.9.25-win32-bin.zip</a> </td><td> Windows binary distribution
|
77 |
|
|
</td></tr></tbody></table>
|
78 |
|
|
<p>
|
79 |
|
|
<a href="http://packages.debian.org/unstable/devel/tcc.html">Debian
|
80 |
|
|
package</a> (maintained by Romain Francoise). Package for stable
|
81 |
|
|
Debian also <a href="http://people.debian.org/%7Erfrancoise/woody/">available</a>.
|
82 |
|
|
</p><p>
|
83 |
|
|
<a href="http://bitwalk-hp.hp.infoseek.co.jp/index.html#tcc">RPM
|
84 |
|
|
package for Fedora Core</a>.
|
85 |
|
|
|
86 |
|
|
</p><h2>Compilation Speed</h2>
|
87 |
|
|
<a name="speed"></a>
|
88 |
|
|
|
89 |
|
|
|
90 |
|
|
Compilation speed for the <a href="http://links.twibright.com/download.php">Links
|
91 |
|
|
Browser project</a>. There are 76936 lines (including
|
92 |
|
|
headers). 1950947 lines (67.2 MBytes) are compiled because the same headers are
|
93 |
|
|
included in many files. TinyCC is about <b>9 times</b> faster than
|
94 |
|
|
GCC.
|
95 |
|
|
<p>
|
96 |
|
|
</p><table border="1"><tbody><tr><td>Compiler</td><td>Time(s)</td><td>lines/second</td><td>MBytes/second</td>
|
97 |
|
|
|
98 |
|
|
</tr><tr> <td>TinyCC 0.9.22</td> <td>2.27</td> <td>859000</td> <td>29.6</td>
|
99 |
|
|
|
100 |
|
|
</tr><tr> <td>GCC 3.2 -O0</td> <td>20.0</td> <td>98000</td> <td>3.4</td>
|
101 |
|
|
|
102 |
|
|
</tr></tbody></table>
|
103 |
|
|
<br>
|
104 |
|
|
Measures were done on a 2.4 GHz Pentium 4. Real time is measured. Compilation
|
105 |
|
|
time includes compilation, assembly and linking.
|
106 |
|
|
|
107 |
|
|
<h2><a href="http://bellard.org/tcc/tcc-doc.html">Online Documentation</a></h2>
|
108 |
|
|
|
109 |
|
|
<h2>You want to help ?</h2>
|
110 |
|
|
Here are some suggestions:
|
111 |
|
|
<ul>
|
112 |
|
|
<li> Report bugs to the mailing list (and eventually fix them).</li>
|
113 |
|
|
</ul>
|
114 |
|
|
|
115 |
|
|
<h2>Links</h2>
|
116 |
|
|
<ul>
|
117 |
|
|
<li><a href="http://mail.freesoftware.fsf.org/mailman/listinfo/tinycc-devel">TinyCC mailing list</a>
|
118 |
|
|
</li><li><a href="http://savannah.gnu.org/projects/tinycc">Savannah project page and CVS repository</a>
|
119 |
|
|
</li><li><a href="http://bellard.org/otcc/">OTCC - The smallest self
|
120 |
|
|
compiling pseudo C compiler</a>
|
121 |
|
|
</li><li><a href="http://numcalc.com/">NumCalc.com</a> - The Scientific Web Calculator
|
122 |
|
|
</li><li><a href="http://www.landley.net/code/tinycc/">TinyCC fork</a> by Rob Landley</li>
|
123 |
|
|
<li><a href="http://llvm.org/">LLVM Compiler Infrastructure</a></li><a href="http://llvm.org/">
|
124 |
|
|
</a><li><a href="http://llvm.org/"></a><a href="http://smarteiffel.loria.fr/">SmartEiffel</a> - With TCC you can compile your Eiffel code faster
|
125 |
|
|
</li><li><a href="http://www.cminusminus.org/">C--</a> - An intermediate language for compilers
|
126 |
|
|
</li><li><a href="http://gcc.gnu.org/">The GNU C Compiler</a></li>
|
127 |
|
|
<li><a href="http://www.cs.princeton.edu/software/lcc/">The LCC Compiler</a></li>
|
128 |
|
|
<li><a href="http://sdcc.sourceforge.net/">The Small Device C Compiler</a></li>
|
129 |
|
|
<li><a href="http://www.research.att.com/projects/cyclone/">Cyclone</a>, A Safe Dialect of C</li>
|
130 |
|
|
<li><a href="http://www.digitalmars.com/d/">The D language</a>
|
131 |
|
|
</li><li><a href="http://www.lysator.liu.se/c/"> Programming in C </a></li>
|
132 |
|
|
<li>The <a href="http://www.merd.net/pixel/language-study/scripting-language/">Scriptometer</a> evaluates various scripting
|
133 |
|
|
languages (including TCC).</li>
|
134 |
|
|
<li><a href="http://www.lib.uchicago.edu/keith/crisis/"> Languages comparisons </a></li>
|
135 |
|
|
<li><a href="http://www.softintegration.com/">Ch, a commercial C/C++ interpreter</a></li>
|
136 |
|
|
</ul>
|
137 |
|
|
|
138 |
|
|
<h2>License</h2>
|
139 |
|
|
|
140 |
|
|
TCC is distributed under the GNU Lesser General Public License.
|
141 |
|
|
|
142 |
|
|
<hr>
|
143 |
|
|
<table nosave="" cellpadding="0" cellspacing="0">
|
144 |
|
|
<tbody><tr nosave="" align="CENTER" valign="BASELINE">
|
145 |
|
|
<td nosave=""><a href="http://www.anybrowser.org/campaign/"><img src="TCC%20%20%20Tiny%20C%20Compiler_fichiers/anybrowser3.gif" alt="anybrowser" nosave="" height="30" border="0" width="88"></a></td>
|
146 |
|
|
|
147 |
|
|
<td><a href="http://www.linux.org/"><img src="TCC%20%20%20Tiny%20C%20Compiler_fichiers/linux.gif" alt="www.linux.org" nosave="" height="31" border="0" width="88"></a></td>
|
148 |
|
|
</tr>
|
149 |
|
|
</tbody></table>
|
150 |
|
|
|
151 |
|
|
<hr>
|
152 |
|
|
Copyright (c) 2001-2009 Fabrice Bellard <hr>
|
153 |
|
|
|
154 |
|
|
Fabrice Bellard - <a href="http://bellard.org/">
|
155 |
|
|
http://bellard.org/ </a> - <a href="http://www.tinycc.org/"> http://www.tinycc.org/ </a>
|
156 |
|
|
|
157 |
|
|
|
158 |
|
|
|
159 |
|
|
</body></html>
|