About ----- This is Gales Scheme: a Scheme interpreter for Unix striving for simplicity, soundness, minimal artificial restrictions, and R5RS compliance with strict error checking. Written by Jacob Welsh for JWRD Computing. Prerequisites ------------- gcc, targetting an x86_64 POSIX environment. Linux and OpenBSD are known to work. Other ISAs are supportable in principle but there's presently some assembly math code lacking portable equivalent. Installation ------------ This software ignores some historical Unix conventions in favor of a simplified variant of Bernstein's /package scheme ( http://cr.yp.to/slashpackage.html ). Installation paths and command names are not configurable, which amounts to a global namespace claim, such that people and programs can count on finding components at known paths if they are to be found at all. User commands are symlinked into /usr/bin and will replace prior files in case of conflict; see "package/commands" for the list. You will need root privileges to install. 1. Create the top-level /package directory if necessary and place the tree at its fully version-qualified path: mkdir -p /package cp -r /YOUR/PATH/TO/gscm /package/gscm-0.40.6 2. Run the install script from the above directory: cd /package/gscm-0.40.6 sh package/install 3. Run the test suite if you like: sh package/check Known failures at present include, from tests/numbers.scm: (fail inexact-read-precision) : float formatting and parsing algorithms are imprecise. (fail 1 1 expt13) : (expt 1 -1) returns an inexact (float) result when it could be exact. From tests/semantic-bad.scm: (fail unary-add-type bad-type) (fail unary-mul-type bad-type) : the single-argument passthrough base case for + and * doesn't bother checking for numbers. To revert to this version after installing a different one, simply repeat step 2. Usage notes ----------- See "gscm -h" for CLI options. The main shortfalls with respect to R5RS are the macro language and advanced numeric types (rational and complex). Arbitrary precision (bignum) integer arithmetic is supported. A number of extensions are provided including system interface, sockets, and fixnum arithmetic; see doc/extensions.txt for (incomplete) details. Error recovery, debugging, and concurrency support are known weaknesses (no help from the standard here).