| 9:05 pm on Apr 11, 2003 (gmt 0)|
The theme of today's cool *nix links is smallness. As you may be able to tell by the bias in my posts I am a major fan of small applications that can substitute for established (often enormous) programs. Fortunately, the development of such applications is still very healthy in the Linux world despite the the power of modern computers.
There are a lot of practical and small desktop applications that are pretty well known -- Sylpheed for email, gLinks(-Hacked) or Dillo for browser and so on, but there are also several small back-end applications that are less known.
Here are a couple of small applications that only a geek could love.
TinyCC [fabrice.bellard.free.fr], a *tiny* C Compiler
This thing is very cool. It compiles C 8 times faster than gcc, fast enough to allow one to use C as a scripting language -- as in "#!/usr/local/bin/tcc". It is also standards compliant, and produces optimized code ( reportedly 70% the execution time of gcc ).
KDrive Tiny X Server(s) [pps.jussieu.fr]
They were written by Keith Packard, who has recently left the XFree86 team.
There are several examples of these servers, a few of which are accelerated, unfortunately there is only documentation for two of them -- Xfbdev and Xvesa.
|On Linux/x86, a KDrive server with RENDER support but without support for scalable fonts compiles into less than 700 KB of text. KDrive tends to avoid large memory allocations at runtime, and tries to perform operations ``on the fly'' whenever possible ... |
Unlike the usual XFree86 server, a KDrive server is completely self-contained: it does not require any configuration files, and will even function if no on-disk fonts are available. All configuration is done at compile time and through command-line flags.
I use Xvesa in my live CD project (hobby) because of it's ability to be configured on the fly and it's compact size. I am very happy to say that it's also very efficient, it's memory requirements are about 1/5 that of a full size X server.
| 9:34 pm on Apr 11, 2003 (gmt 0)|
Just wanted to say that I cut my teeth writing 4k (max) assembler applications for the airline industry and appreciate your "small is cool" philosophy. Does anyone else remember coding for machines that had 16k ram and 20 meg hard drive?
Sorry - I am showing my age...
| 3:20 am on Apr 12, 2003 (gmt 0)|
SinclairUser, I could appreciate that. There is something beautiful about efficient compact code. It's nice that there are still new examples of it in this age of OO programming dominance, big processors and cheap storage.
| 4:06 am on Apr 12, 2003 (gmt 0)|
|fast enough to allow one to use C as a scripting language |
I'll believe it when I can compile my pet KDE application with it :)
<added> OK, so KDE is C++ (not C), that's why it's so slow to compile. Oh well. </added>
| 1:10 pm on Apr 12, 2003 (gmt 0)|
TinyCC is really cool!
Now if they found a way to include the hashbang without turning the file into invalid C, that would be even better...