Projects : gscm : gscm_genesis

package/README

Dir - Raw

1About
2-----
3
4This is Gales Scheme: a Scheme interpreter for Unix striving for simplicity, soundness, minimal artificial restrictions, and R5RS compliance with strict error checking.
5
6Written by Jacob Welsh for JWRD Computing.
7
8Prerequisites
9-------------
10
11gcc, 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.
12
13Installation
14------------
15
16This software sheds some historical Unix conventions in favor of Bernstein's /package scheme ( http://cr.yp.to/slashpackage.html ), which I find meshes fairly well with the ideas of V. If this is your first time using it, you may need to create the /package directory and add /command to your shell's PATH variable.
17
181. Press or otherwise install the tree at the path:
19
20 /package/gscm-0.40.3
21
22The installation path is not configurable. This amounts to a claim on the global namespace, as command names always do. People and programs can count on finding components at known paths if they are to be found at all, as surely as with /bin/sh. This doesn't mean the files must physically exist under /package; for example, a symlink from there could ease working on the code as a non-root user.
23
242. From the above directory, run (as root):
25
26 sh package/install
27
283. Run the test suite if you like:
29
30 sh package/check
31
32Known failures at present include, from tests/numbers.scm:
33
34 (fail inexact-read-precision) : float formatting and parsing algorithms are imprecise.
35 (fail 1 1 expt13) : (expt 1 -1) returns an inexact (float) result when it could be exact.
36
37From tests/semantic-bad.scm:
38
39 (fail unary-add-type bad-type)
40 (fail unary-mul-type bad-type) : the single-argument passthrough base case for + and * doesn't bother checking for numbers.
41
42Usage notes
43-----------
44
45See "gscm -h" for CLI options.
46
47The main shortfalls with respect to R5RS are the macro language and advanced numeric types (rational and complex). Arbitrary precision (bignum) integer arithmetic is supported.
48
49A number of extensions are provided including system interface, sockets, and fixnum arithmetic; see doc/extensions.txt for (incomplete) details.
50
51Error recovery, debugging, and concurrency support are known weaknesses (no help from the standard here).