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 Nov 13  14:10 CATEGORIES.html
-rw-r--r--  1 nmh  nmh    9680 Nov 13  14:03 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 Nov 13  13:16 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   17837 Nov 13  14:10 _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  6  21:24 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  119719 Nov 13  14:03 s9.c
-rw-r--r--  1 nmh  nmh   43772 Nov 13  14:08 s9.scm
-rw-r--r--  1 nmh  nmh   47919 Nov 13  14:10 s9core-20181113.tgz
-rw-r--r--  1 nmh  nmh   73853 Nov 13  13:15 s9core.c
-rw-r--r--  1 nmh  nmh   15804 Nov 13  13:12 s9core.h
-rw-r--r--  1 nmh  nmh   76718 Nov  3  10:12 s9core.txt
-rw-r--r--  1 nmh  nmh     714 Nov  2  09:30 s9ext.h
-rw-r--r--  1 nmh  nmh  513660 Nov 13  14:10 s9fes-20181113.tgz
-rw-r--r--  1 nmh  nmh    8606 Nov  2  11:14 s9import.h
drwxr-xr-x  2 nmh  nmh    1024 Nov  9  11:34 util

contact  |  privacy