eflisp
is an evolution of Jeff Bezanson's femtolisp
into an r7rs-small scheme interpreter.
It is currently maintained as a two level implementation, with
- eflisp base - the evolved femtolisp with a loadable r7rs veneer
- eflisp r7rs - the (mostly complete) r7rs system
eflisp base has no real library mechanism; though femtolisp made no attemp at scheme compatability, it has much in common with an r4rs level of capability, but with lispy syntax, and one shot continuations using trycatch. It has many nice features: small size, fast vm, robust printing, utf8 strings, etc.
eflisp r7rs aims at compatibility with r7rs-small, but will no intention to support full continuations or mutable strings.
History
Starting with a merge of femtolisp and the related Julia's flisp, small improvements
were made to the runtime and code generator. Much later, a thin veneer of r7rs was
added to pass most of ecraven's r7rs-coverage test, but with the notable exceptions
of the library mechanisms and syntax-rules
. (I had no intention of adding more than
one-shot continuations, nor mutable strings.)
Discovering nyuichi's r7expander, I hacked
that into eflisp, which provides the library mechanisms along with syntax-rules
and
low level macros with er-macro-transformer