Are there any open source Lisp compilers suitable for real-time embedded applications? I.e. with incremental garbage collection, customisable memory handling, small footprint, etc.

Edit:

To clarify, by "compiler" I meant native code, not bytecode interpreter (though the suggested interpreting implementations for microcontrollers are interesting for being a lot smaller than what I thought possible!).

I've had success running a stop-the-world garbage collector at the end of every PLC cycle, on a very small platform (64kb of combined code and data space). In any realtime system, there is a concept of a control/processing cycle, and you can run the collector each cycle - whether a full collection, or an incremental one.
–
Kuba OberJan 3 '14 at 1:39

There are some implementations that compile to C code, e.g. ECL (Embeddable Common Lisp). There is also a very recent library that compiles a subset of Common Lisp to a subset of C++ for the Arduino.

You mentioned "real-time" so nonchalantly, but getting real-time with garbage collection is not trivial. There do exist real-time garbage collectors, but I am not aware of any Lisp implementations using them yet.

By "real-time" I don't mean something something so timing sensitive as to need concurrent lock-free garbage collection, but the possibility to configure how often and for how long an incremental garbage collector is allowed to execute, or ideally be able to call it manually where I know the code will be waiting anyway. In short, something more predictable than halting the program at random for unspecified amounts of time. :)
–
absenceApr 1 '11 at 8:47