Scheme 9 from Empty Space

(Reimagined)

S9fES Reimagined is is a complete rewrite of most of the S9fES Scheme interpreter. The new interpreter is almost 100% compatible with the previous version. The main difference is that it is much faster.

Highlights

the S9 system now uses a bytecode compiler and abstract machine (earlier versions used a tree walker)

the S9 interpreter now uses shallow binding instead of deep binding; this means that symbol lookup is now O(1) (was O(n log n)) closure creation is now O(n) (small n, was O(1))

the compiler inlines most standard Scheme procedures and lambda-lifts functions when called immediately. That is, ((lambda (x) y) z) will not create a closure (unless Y uses SET! ).

will not create a closure (unless uses ). the table of interned symbols is now a hash table instead of a list

Yes, this means that S9 Reimagined is much, much faster than the original S9.

Check out the benchmarks if you haven't already!

Other Improvements

strings can now contain

(newline) escape sequences; although non-standard, a lot of code out there appears to use this

(newline) escape sequences; although non-standard, a lot of code out there appears to use this CALL/CC is finally working properly and passes all Petrofsky tests; it is rather expensive, though, because the interpreter does not do CPS conversion

is finally working properly and passes all Petrofsky tests; it is rather expensive, though, because the interpreter does not do CPS conversion The *LIBRARY-PATH* is now in list form (was a Unix PATH-style string before)

contact | privacy