changeset 515:c8b57d883e02

Update web page.
author Rob Landley <rob@landley.net>
date Wed, 21 Nov 2007 14:28:46 -0600
parents 803a420a9e04
children c3122e5db591
files www/differences.html www/footer.html www/header.html www/index.html www/old-news.html
diffstat 5 files changed, 132 insertions(+), 60 deletions(-) [+]
line wrap: on
line diff
--- a/www/differences.html	Thu Nov 15 16:13:42 2007 -0600
+++ b/www/differences.html	Wed Nov 21 14:28:46 2007 -0600
@@ -1,56 +1,57 @@
-<html>
-<title>Differences between tcc and gcc</title>
-<body>
+<!--#include file="header.html" -->
 
-<p>Some differences stem from tcc being unfinished.  Others are inherent
+<h1>Differences between tinycc and gcc</h1>
+
+<p>Some differences stem from tinycc being unfinished.  Others are inherent
 in the wildly different compiler implementations.</p>
 
 <hr>
-<p>TCC is a simple translator, converting C source into the equivalent object
-code.  The main goals of tcc are:</p>
+<p>Tinycc is a simple translator, converting C source into the equivalent object
+code.  The main goals of tinycc are:</p>
 
 <ul>
 <li>Speed of compilation.</li>
 <li>Simplicity of implementation</li>
-<li>Correct implementation of <a href=http://web.archive.org/web/20050207010641/http://dev.unicals.com/papers/c99-draft.html>the C99 specification</a> (plus any compiler extensions required to compile an unmodified Linux Kernel)</li>
+<li>Correctly compiling existing Linux programs (including features from the <a href=http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf>the C99 standard</a> and any compiler extensions required to compile an unmodified Linux Kernel)</li>
 </ul>
 
-<p>The third goal remains a work in progress.</p>
+<p>All three goals need improvement.</p>
 
 <p>Note that optimized output is _not_ one of these goals.  As a simple
-translator, TCC does not optimize the resulting binaries much.  TCC's output is
-generally about twice the size of what a compiler like icc or gcc would
-produce.  We have some simple optimizations like constant propogation,
+translator, Tinycc does not optimize the resulting binaries much.  Tinycc's
+output is generally about twice the size of what a compiler like icc or gcc
+would produce.  We have some simple optimizations like constant propogation,
 and hope to add dead code elimination, but there's no "intermediate format"
 allowing major rearrangements of the code.</p>
 
-<p>If somebody wanted to implement an optimizer for tcc, we'd be happy to take
-it as long as it was cleanly separated from the rest of the code.  However, if
-you want a big and complicated compiler, there are plenty out there already.</p>
+<p>If somebody wanted to implement an optimizer for tinycc, we'd be happy to
+take it as long as it was cleanly separated from the rest of the code.  However,
+if you want a big and complicated compiler, there are plenty out there
+already.</p>
 
 <hr>
-<p>TCC is a single self-contained program.  It does not use an external linker,
-but produces ELF files directly from C source and ELF file inputs such as
-shared libraries.</p>
+<p>Tinycc is a single self-contained program.  It does not use an external
+linker, but produces ELF files directly from C source and ELF file inputs such
+as shared libraries.</p>
 
-<p>In theory, four packages (uClibc, tcc, busybox, and the Linux kernel)
+<p>In theory, four packages (uClibc, tinycc, busybox, and the Linux kernel)
 could provide a complete self-bootstrapping development environment.  (In
-practice, we're still working on tcc.)</p>
+practice, we're still working our way towards that.)</p>
 
 <p>Piotr Skamruk points out that if you want assembly output, you can use
 objdump, ala:</p>
 
 <pre>
-  tcc -c somefile.c
+  tinycc -c somefile.c
   objdump -dtsr somefile.o
 </pre>
 
 <hr>
 <p>Function argument evaluation order is explicitly undefined (c99 spec
-section 3.19 #2).  TCC evaluates function arguments first to last.  Some
+section 3.19 #2).  Tinycc evaluates function arguments first to last.  Some
 compilers (like gcc) evaluate function arguments last to first.</p>
 
-<p>The following program would produce different output in tcc and gcc:</p>
+<p>The following program would produce different output in tinycc and gcc:</p>
 
 <pre>
 #include <stdio.h>
@@ -70,10 +71,9 @@
 </pre>
 </hr>
 <hr>
-<p>TCC's error checking isn't as elaborate as some compilers.  Try a project
+<p>Tinycc's error checking isn't as elaborate as some compilers.  Try a project
 like <a href=http://www.splint.org/>splint</a> or
 <a href=http://www.kernel.org/pub/software/devel/sparse/>sparse</a> if
 you want lots of warnings.</p>
 </hr>
-</body>
-</html>
+<!--#include file="footer.html" -->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/www/footer.html	Wed Nov 21 14:28:46 2007 -0600
@@ -0,0 +1,7 @@
+</td></tr></table>
+<hr />
+<table width="100%">
+<tr><td>Copyright 2007 Rob Landley &lt;rob@landley.net&gt;</td></tr>
+</table>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/www/header.html	Wed Nov 21 14:28:46 2007 -0600
@@ -0,0 +1,34 @@
+<html>
+<head>
+<title>Tiny C Compiler</title>
+</head>
+<body>
+<table border=0 cellpadding=0 cellspacing=0>
+<tr><td>
+  <table border=0 cellspacing=1 cellpadding=4>
+    <tr><td><h1>tinycc</h1></td></tr>
+  </table>
+</td></tr>
+
+<tr><td valign=top>
+  <b>About</b>
+  <ul>
+    <li><a href="index.html">News</a></li>
+    <li><a href="/hg/tinycc/raw-file/tip/README">README</a></li>
+    <li><a href="differences.html">Differences</a></li>
+  </ul>
+  <b>Download</b>
+  <ul>
+    <li><a href="/hg/tinycc">Mercurial Repository</a></li>
+    <li><a href="downloads">Release Tarballs</a></li>
+  </ul>
+  <b>Development</b>
+  <ul>
+    <li><a href="/notes.html">Maintainer's blog</a></li>
+    <li><a href="/mailman/listinfo/tinycc">Mailing List</a></li>
+    <li>irc: #firmware on freenode</li>
+  </ul>
+</td>
+
+<td valign=top>
+
--- a/www/index.html	Thu Nov 15 16:13:42 2007 -0600
+++ b/www/index.html	Wed Nov 21 14:28:46 2007 -0600
@@ -1,4 +1,6 @@
-<title>Rob's TCC fork</title>
+<!--#include file="header.html" -->
+
+<title>Tiny C Compiler</title>
 
 <h2><b>News</b></h2>
 <h2><b>November 14, 2007</b></h2>
@@ -15,7 +17,7 @@
 info, see the mailing list.</p>
 
 <h2><b>October 27, 2007</b></h2>
-<p>De-abandoned project.  Ok, I've been working on this darn unofficial fork
+<p>Started new project.  Ok, I've been working on this darn unofficial fork
 on and off for a year, and it's time to decide if I'm doing it or not.  I'm
 doing it.</p>
 
@@ -31,42 +33,24 @@
 <p>There's still a _lot_ of work left to be done, but that's just a matter of
 doing it.</p>
 
-<h2><b>October 4, 2007</b></h2>
-<p>Abandoned project.  (See <a href=/notes-2007.html#04-10-2007>blog</a>.)</p>
-
-<h2><b>August 18, 2007</b></h2>
-<p>Started work on a <a href=differences.html>list of
-differences between tcc and gcc</a>.  It's about time to start thinking of
-another release...</p>
-
-<h2><b>May 10, 2007</b></h2>
-<p>Added a <a href=bugs>bugs directory</a> containing little
-C files that each demonstrate an unfixed bug in tcc.</p>
-
-<h2><b>April 29, 2007</b></h2>
-<p>Ok, I put out <a href=downloads>a release</a>.  It works
-for me.  It's <a href=http://landley.net/hg/tinycc?cl=431>mercurial
-changeset 431</a>.</p>
+<a href=old-news.html>Click here for older news.</a>
 
 <hr>
 <h2><b>About</b></h2>
 
-<p>This is a rampantly unofficial fork of <a href=http://fabrice.bellard.free.fr/tcc>Fabrice Bellard's Tiny C Compiler</a>.
-These days Fabrice's attention is taken up by <a href=http://qemu.org>QEMU</a>,
-and the original TCC project is stalled.</a>
-
-<p><a href=http://lists.gnu.org/archive/html/tinycc-devel/2006-09/msg00024.html>Fabrice put out a request for a new maintainer in 2006</a>, but
-he insisted that the project continue using the obsolete CVS repository format,
-and stay hosted on Savannah.  This didn't interest me, but tcc itself does,
-my <a href=/hg/tinycc>mercurial repository</a> is public, and I take patches.</p>
+<p>This is a small, simple, and fast single pass C compiler.  It produces
+executable code directly from C source, with no intermediate steps.  It
+understands almost all of the C99 standard, plus several extensions from
+gcc.</p>
 
-<p>What discussion there is still takes place on
-<a href=http://lists.nongnu.org/mailman/listinfo/tinycc-devel>the old tcc
-list</a>.  In addition, I hang out on #firmware on freenode, and my bouts of
-fiddling with tcc are documented in <a href=/notes.html>my development
-blog</a>.</p>
+<p>Tinycc can produce ELF executables (and .o files, and shared libraries)
+for x86, arm, and c67 processors.  It can also run C code directly, as
+a scripting language, via the "#!/usr/bin/tinycc -run" construct.</p>
 
-<p>Someday, I'd like to get <a href=/code/firmware>Firmware Linux</a>
-down to just four packages: linux, uClibc, toybox, and tinycc.  This means
-tinycc has to be able to build the other three, and there's work to be done
-there...</p>
+<p>Tinycc already builds a working version of itself.  The current goal is
+to implement enough features to build an unmodified Linux kernel,
+uClibc, and BusyBox (or toybox) to create a small self-bootstrapping
+Linux system in only four packages.  (See the <a href=/code/firmware>Firmware
+Linux</a> project for details.)</p>
+
+<!--#include file="footer.html" -->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/www/old-news.html	Wed Nov 21 14:28:46 2007 -0600
@@ -0,0 +1,47 @@
+<!--#include file="header.html" -->
+
+<b>The following entries apply to my unofficial fork of
+<a href=http://fabrice.bellard.free.fr/tcc/>Fabrice Bellard's tcc</a>
+project.  This page is here for historical purposes.</b>
+
+<h2><b>October 4, 2007</b></h2>
+<p>Abandoned project.  (See <a href=/notes-2007.html#04-10-2007>blog</a>.)</p>
+
+<h2><b>August 18, 2007</b></h2>
+<p>Started work on a <a href=differences.html>list of
+differences between tcc and gcc</a>.  It's about time to start thinking of
+another release...</p>
+
+<h2><b>May 10, 2007</b></h2>
+<p>Added a <a href=bugs>bugs directory</a> containing little
+C files that each demonstrate an unfixed bug in tcc.</p>
+
+<h2><b>April 29, 2007</b></h2>
+<p>Ok, I put out <a href=downloads>a release</a>.  It works
+for me.  It's <a href=http://landley.net/hg/tinycc?cl=431>mercurial
+changeset 431</a>.</p>
+
+<hr>
+<h2><b>About</b></h2>
+
+<p>This is a rampantly unofficial fork of <a href=http://fabrice.bellard.free.fr/tcc>Fabrice Bellard's Tiny C Compiler</a>.
+These days Fabrice's attention is taken up by <a href=http://qemu.org>QEMU</a>,
+and the original TCC project is stalled.</a>
+
+<p><a href=http://lists.gnu.org/archive/html/tinycc-devel/2006-09/msg00024.html>Fabrice put out a request for a new maintainer in 2006</a>, but
+he insisted that the project continue using the obsolete CVS repository format,
+and stay hosted on Savannah.  This didn't interest me, but tcc itself does,
+my <a href=/hg/tinycc>mercurial repository</a> is public, and I take patches.</p>
+
+<p>What discussion there is still takes place on
+<a href=http://lists.nongnu.org/mailman/listinfo/tinycc-devel>the old tcc
+list</a>.  In addition, I hang out on #firmware on freenode, and my bouts of
+fiddling with tcc are documented in <a href=/notes.html>my development
+blog</a>.</p>
+
+<p>Someday, I'd like to get <a href=/code/firmware>Firmware Linux</a>
+down to just four packages: linux, uClibc, toybox, and tinycc.  This means
+tinycc has to be able to build the other three, and there's work to be done
+there...</p>
+
+<!--#include file="footer.html" -->