======= UNSLISP ======= R7RS compiler written in a basic form of Scheme. Compiles to Universal Service GLLV bytecode. License: GPL-3.0-only ------------------- Source Restrictions ------------------- Although the compiler handles all of R7RS, the source of UNSLISP is designed to be used by a severely limited Scheme interpreter, which * lacks ``call/cc``, ``call-with-values``, etc * lacks user definable macros * has fixnums only * only uses immutable strings * does not use "load" recursively * uses R3RS essential procedures only (with some exceptions) The goal is to have the compiler run under the MiniScheme in ``miniscm`` in DOS, and then run in GLLV to compile itself. A proper implementation must have, in addition to R3RS, * ``open-input-port``, ``read-char`` * ``open-output-port``, ``write-char`` * ``cond-expand`` * ``and``, ``or`` * ``error`` Hopefully your implementation has input and output ports (there's no other way to write a compiler). Everything else can be expressed in terms of macros or R3RS essential procedures.