Small languages (was Re: Lua, Lunatic and Python

Stephen J. Bevan stephen at
Thu Dec 18 07:31:32 CET 2003

Charles Steinkuehler <charles at> writes:
> I could be wrong, but it looks to me like SIOD requires a C runtime
> library to function.  One of the big attractions of using Forth (at
> least to me) is it's lack of reliance on a runtime library.  Direct
> interfacing to the linux kernel should be possible in an
> architecture-neutral manner, and the ~10K overhead of a Forth kernel is
> very minimal when compared to the ~75K overhead of SIOD (from the
> website) + the hundreds of KBytes (if not MegaBytes) of overhead for the
> runtime C library.

After stripping out various add-ons like crypto, HTML, base64,
... etc., and statically linking it against diet-libc I get :-

  $ file xsiod
  xsiod: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, not stripped
  $ size xsiod
     text	   data	    bss	    dec	    hex	filename
    92169	    588	   6192	  98949	  18285	xsiod

Which is <100K for everything -- no hidden costs of dynamic linking or
external libraries.  There is still more than could be done e.g. get
rid of any use of stdio (which if we believe the dietlibc output costs
7+KB) and trim away functions in the SIOD standard library that would
not be needed for the given application.

> Using a forth-based solution to create the root ramdisk image would
> drastically reduce the footprint of the initial ramdisk image, remove
> reliance on a particular C runtime library (allowing folks to build
> runtime root images based on uClibc, glibc, or whatever), and provide a
> *VERY* powerful yet tiny runtime scripting/programming language for
> extending the system.

IMHO what drastically reduces the footprint is not using glibc at all.

More information about the Python-list mailing list