R7RS Scheme LISP compiler for GLLV bytecode, written to work in R3RS
Go to file
Peter McGoron 3f56b03f1a readtable: when adding sequences to the readtable, push the last
read character back to the character reader before executing the
action.

This fixes the issue where sequences eat characters in front of them.
2024-09-07 19:41:22 -04:00
miniscm trie: add with test 2024-09-04 02:16:10 -04:00
COPYING add doubly linked lists, tests, minischeme 2024-08-22 20:05:49 -04:00
Makefile minischeme: add char 2024-08-22 21:51:25 -04:00
README.rst readtables, first pass 2024-09-07 17:47:10 -04:00
chez-compat.scm readtables, first pass 2024-09-07 17:47:10 -04:00
doubly-linked-list.scm add sets 2024-08-29 22:24:33 -04:00
read.scm readtable: when adding sequences to the readtable, push the last 2024-09-07 19:41:22 -04:00
set.scm change around insert, delete, and update to hide representation 2024-09-05 21:18:04 -04:00
tests.scm readtables, first pass 2024-09-07 17:47:10 -04:00
util.scm trie: add with test 2024-09-04 02:16:10 -04:00

README.rst

=======
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 .