This directory contains the distribution of scm.  Scm conforms to
Revised^3.99 Report on the Algorithmic Language Scheme [Draft August
31, 1989] and the IEEE specification.  Scm runs under Unix, VMS, and
Microsoft C on IBM PCs.

  The file `scm.exe', if present, is an IBM PC executable of scm.
  `public.lic' details the LACK OF WARRANTY for scm and the conditions
	for distributing scm.
  `test.scm' is Scheme code which tests conformance with Scheme
	specifications.  (test-cont) will not work on VAX or SUN4
	systems (they #define CHEAP_CONTINUATIONS).
  `fib.scm' is Scheme code for fibonacci [type (fib 20)] which can be used to
	test the performance of scm against compiled C code [type (cfib 20)].
  `code.doc' describes the internal representations and algorithms.
	Also describes how to modify scm.
  `makefile' is the file for building scm using the `make' program.
  `makefile.msc' is the file for building scm on an IBM PC using
	microsoft C.
  `makefile.tur' is the file for building scm on an IBM PC using
	Borland Turbo C.  The garbage collector does not work properly.
  `config.h' is a C include file containing system dependent definitions.
	If scm doesn't run correctly look at this file first.
  `scm.h' has the data type and external definitions of scm.
  `scm.c' has the top level, error, interrupt, load, and cfib code.
  `scl.c' has the code for utility functions which are not part of the
	IEEE Scheme spec.
  `eval.c' has the evaluator, special functions, apply, map, and foreach.
  `sys.c' has the code for call-with-current-continuation, input and
	output,	storage allocation and garbage collection.
  `subr.c' has all the rest of functions.

			   Using the System

Typing:
`scm [file1] [file2] ...'
will load all the files given as arguments into scm.  Scm will then
evaluate and print any expression typed into it.

Scm has some features not required by the IEEE and Revised^3.99
specifications:

  Typing (quit) or the end-of-file character at top level will exit from scm.

  To monitor heap allocation and collection type (verbose #t)

  Typing (verbose #f) will turn off monitoring.

  Typing (gc) will do a garbage collection.

  Typing control-c will stop any computation and return you to top level.

  If scm encounters a non-fatal error it will return you to top level
and the value of `errobj' will be the offending object if appropriate.

  Typing (warranty) or (terms) will display the GNU General Public License.

  Typing (list-file "<filename>") will display the contents of <filename>.

  Typing (system "command arg1 arg2 ...") will execute the command on the
computer and return the status code (integer).

  If scm is compiled under VMS typing (edit) or (vms-debug) will
invoke the editor or the debugger respectively.
