Scheme 9 from Empty Space, Reimagined

S9fES is a mature, portable, and comprehensible interpreter for R4RS Scheme. The core interpreter is written in pure ANSI C (C89), so it runs on all platforms offering a C compiler. It can even be compiled natively on Plan 9. On Unix-based systems (or MinGW), it also offers an interface to common Unix system calls and Curses routines.

S9fES Reimagined is a new version of the S9 interpreter in which wide parts of the system have been rewritten. There is a separate page explaining what's new. If you are looking for a legacy version of the S9fES interpreter, check out the attic.

The interpreter is built around the S9core toolkit (download), which contains some basic building blocks for dynamic languages, such as a garbage collected heap, bignum arithmetics, etc. (The toolkit is included in the S9fES tarball).

S9fES has been developed using EDOC, a literate programming tool. The rendered EDOC source code to a previous version is available in print and PDF form. The C and Scheme code stripped from the EDOC files is in the public domain, though, and can be downloaded here (~500KB).

Bakul Shah maintains a downstream repository with extended Plan 9 support, like access to system functions and an FFI. Please send any feedback regarding the Plan 9 extension directly to him.

The original S9fES interpreter (not this version!) is explained in detail in the Scheme 9 Book! The book might eventually get an update, if circumstances permit.

The S9fES Distribution Archive

total 1212 -rw-r--r-- 1 nmh nmh 21260 Apr 2 10:54 CATEGORIES.html -rw-r--r-- 1 nmh nmh 10755 Apr 2 10:48 HISTORY -rw-r--r-- 1 nmh nmh 1273 Oct 22 12:39 LICENSE -rw-r--r-- 1 nmh nmh 8659 Jul 14 2015 MASCOT.png -rw-r--r-- 1 nmh nmh 7697 Dec 5 11:11 Makefile -rw-r--r-- 1 nmh nmh 83103 Oct 24 13:20 PREHISTORY -rw-r--r-- 1 nmh nmh 7743 Nov 3 10:01 README -rw-r--r-- 1 nmh nmh 1579 Oct 16 18:36 README.s9core -rw-r--r-- 1 nmh nmh 135 Nov 8 10:39 TODO -rw-r--r-- 1 nmh nmh 17836 Apr 2 10:54 _csums drwxr-xr-x 3 nmh nmh 512 Nov 6 21:23 attic -rw-r--r-- 1 nmh nmh 624 Mar 31 2015 config.scm -rwxr-xr-x 1 nmh nmh 497 Oct 22 11:43 configure drwxr-xr-x 2 nmh nmh 512 Nov 6 21:23 contrib drwxr-xr-x 5 nmh nmh 512 Oct 30 11:30 ext drwxr-xr-x 5 nmh nmh 12288 Nov 11 15:01 help drwxr-xr-x 2 nmh nmh 4096 Nov 6 11:33 lib -rw-r--r-- 1 nmh nmh 1222 Nov 13 12:46 mkfile drwxr-xr-x 2 nmh nmh 512 Nov 16 21:06 prog -rw-r--r-- 1 nmh nmh 17526 Oct 28 13:34 s9.1 -rw-r--r-- 1 nmh nmh 20369 Oct 28 13:34 s9.1.txt -rw-r--r-- 1 nmh nmh 119901 Mar 22 11:57 s9.c -rw-r--r-- 1 nmh nmh 43772 Nov 13 14:08 s9.scm -rw-r--r-- 1 nmh nmh 47803 Apr 2 10:54 s9core-20181205.tgz -rw-r--r-- 1 nmh nmh 73973 Apr 2 10:45 s9core.c -rw-r--r-- 1 nmh nmh 14708 Apr 2 10:45 s9core.h -rw-r--r-- 1 nmh nmh 76987 Apr 2 10:49 s9core.txt -rw-r--r-- 1 nmh nmh 714 Apr 2 10:45 s9ext.h -rw-r--r-- 1 nmh nmh 514531 Apr 2 10:54 s9fes-20181205.tgz -rw-r--r-- 1 nmh nmh 8627 Apr 2 10:45 s9import.h drwxr-xr-x 2 nmh nmh 1024 Nov 9 11:34 util

contact | privacy