======= 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 essental 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 * ``open-input-port``, ``read-char`` * ``open-output-port``, ``write-char`` * ``cond-expand`` * ``and``, ``or`` * ``error`` If your system supports any macro system at all, ``cond-expand``, ``and``, and ``or`` can be implemented. ``error`` can be implemented as in SRFI-23 : https://srfi.schemers.org/srfi-23/srfi-23.html .