[Contents]   [Back]   [Prev]   [Up]   [Next]   [Forward]  


About Hobbit

The Aims of Developing Hobbit

  1. Producing maximally fast C code from simple scheme code. By simple we mean code which does not rely on procedures returning procedures (closures) and nontrivial forms of higher-order procedures. All the latter are also compiled, but the optimizations specially target simple code fragments. Hobbit performs global optimization in order to locate such fragments.
  2. Producing C code which would preserve as much original scheme code structure as possible, to enable using the output C code by a human programmer (eg. for introducing special optimizations possible in C). Also, this will hopefully help the C compiler to find better optimizations.

Manifest

`hobbit.scm' the hobbit compiler.
`scmhob.scm' the file defining some additional procedures recognized by hobbit as primitives. Use it with the interpreter only.
`scmhob.h' the common headerfile for hobbit-compiled C files.
`hobbit.texi' documentation for hobbit.

Author and Contributors

Tanel Tammet
Department of Computing Science
Chalmers University of Technology
University of Go"teborg
S-41296 Go"teborg Sweden

A. Jaffer (agj @ alum.mit.edu), the author of SCM, has been of major help with a number of suggestions and hacks, especially concerning the interface between compiled code and the SCM interpreter.

Several people have helped with suggestions and detailed bug reports, e.g. David J. Fiander (davidf@mks.com), Gordon Oulsnam (STCS8004@IRUCCVAX.UCC.IE), Pertti Kelloma"ki (pk@cs.tut.fi), Dominique de Waleffe (ddw2@sunbim.be) Terry Moore (tmm@databook.com), Marshall Abrams (ab2r@midway.uchicago.edu). Georgy K. Bronnikov (goga@bronnikov.msk.su), Bernard Urban (Bernard.URBAN@meteo.fr), Charlie Xiaoli Huang, Tom Lord (lord@cygnus.com), NMICHAEL@us.oracle.com, Lee Iverson (leei@ai.sri.com), Burt Leavenworth (EDLSOFT@aol.com).

Future Improvements

  1. Optimisations:
  2. Improve Variable creation and naming to avoid C function name clashes.
  3. Report 4 macros.
  4. Better error-checking.
  5. Better liftability analysis.
  6. More tailrecursion recognition.
  7. Better numeric optimizations.
  8. Fast real-only arithmetics: $eqv, $=, $>, $+, $*, etc.

Release History

[In February 2002, hobbit5x was integrated into the SCM distribution. Changes since then are recorded in `scm/ChangeLog'.]

hobbit4d:
hobbit4c:
hobbit4b:
The following bugs have been fixed:
hobbit4a:
Several bugs found in version4x are fixed.
hobbit4x (not public):
hobbit3d:
bugs found in the version 3c are fixed.
hobbit3c:
hobbit3b:
hobbit3:
hobbit2:
hobbit1a3 (not public):
hobbit1a2 (not public):
hobbit1a1 (not public):
hobbit1:
the first release


[Contents]   [Back]   [Prev]   [Up]   [Next]   [Forward]