This directory contains the files for Scheme 88 Version 0.4.  The instructions
describe how to load and boot Scheme 88 under Unix.

Scheme 88 is designed to run on top of Common Lisp.

To load and boot Scheme 88:

A.  Set the environment variable SCHDIR to the directory
    where Scheme 88 is kept.  For example,
	    
	    %setenv SCHDIR '/mnt/you/scm'

B.  Invoke the shell-script file 'makeit'. Makeit does the following:

	1.  Compiles the following Common Lisp source files:

	    base.cl	(base environment manipulation functions)
	    boot.cl	(system initialization routines)
	    comp.cl	(the Scheme 88 compiler)
	    constant.cl  (constant manipulation functions)
	    env.cl	(initial environment)
	    error.cl	(error handler)
	    except.cl	(exception handling)
            expand.cl    (the beta-expander)
	    hostmacs.cl  (system macros)
	    mkmac.cl	(help functions for the macro writing tool)
	    prims.cl	(primitive construction)
            print.cl	(I/O routines)
	    signal.cl    (system trap handlers)
	    top.cl       (system name and version information)
	    vector.cl    (vector functions)
	    vsm.cl	(the Virtual Scheme Machine)
	    
	    Scheme 88 expects the compiled files to be named base.o, 
	    boot.o, comp.o, etc.

	2.  Starts Common Lisp and changes to the Scheme 88 directory.

	4.  Loads top.o.
	    You should see something like the following:

		>Loading top.o
		Loading /mnt/you/scm/boot.o
		Loading /mnt/you/scm/base.o
		Finished loading /mnt/you/scm/base.o
		Loading /mnt/you/scm/except.o
		Finished loading /mnt/you/scm/except.o
		Loading /mnt/you/scm/error.o
		Finished loading /mnt/you/scm/error.o
		Loading /mnt/you/scm/print.o
		Finished loading /mnt/you/scm/print.o
		Loading /mnt/you/scm/hostmacs.o
		Finished loading /mnt/you/scm/hostmacs.o
		Loading /mnt/you/scm/env.o
		Finished loading /mnt/you/scm/env.o
		Loading /mnt/you/scm/constant.o
		Finished loading /mnt/you/scm/constant.o
		Loading /mnt/you/scm/vector.o
		Finished loading /mnt/you/scm/vector.o
		Loading /mnt/you/scm/prims.o
		Finished loading /mnt/you/scm/prims.o
		Loading /mnt/you/scm/vsm.o
		Finished loading /mnt/you/scm/vsm.o
		Loading /mnt/you/scm/comp.o
		Finished loading /mnt/you/scm/comp.o
		Loading /mnt/you/scm/expand.o
		Finished loading /mnt/you/scm/expand.o
		Loading /mnt/you/scm/mkmac.o
		Finished loading /mnt/you/scm/mkmac.o
		Loading /mnt/you/scm/signal.o
		Finished loading /mnt/you/scm/signal.o
		[scheme-load sys.s]
		[scheme-load std.s]
		[scheme-load patches.s]
		[scheme-load mkmacs.s]
		[scheme-load syntax.s]
		[scheme-load wrapper.s]
		[scheme-load synstd.s]
		[scheme-load help.s]
		[scheme-load prompt.s]

	5.  Creates the executable core image 'scheme88' that users 
	    run. You should see something like:

	
		Scheme 88 -- Version 0.4 -- (July 1989)
		--------------------------------------
		--> beginning dump of 'scheme88'


	6.  The executable file 'scheme88' contains Scheme 88.  You can
	    move it to any directory you want.  Users run Scheme 88 by
	    executing this file.
	    
	    If space is a concern, you can delete any of the files
	    included in the distribution kit or created during booting
	    except the ones Scheme 88 autoloads, viz., the *.s files.
	    These *.s files must remain in the Scheme 88 directory with
	    public access.

	7.  If you create a file called scheme.msg and place it in the
	    Scheme 88 directory (with public access), it will be
	    loaded and executed each time a user invokes Scheme 88.

	8.  Each user may place a .schemerc file in his login directory.
	    It will be loaded and executed each time he invokes
	    Scheme 88 (after the scheme.msg file).



Brief description of each file in this directory:

	READ_ME		this file

        base.cl		Scheme 88 base environment functions written in
			Common Lisp

	boot.cl		Scheme 88 initialization file, written in Common Lisp

	comp.cl 	the Scheme 88 compiler, written in Common Lisp
	
	constant.cl	functions that define the Scheme 88 compile-time
	                constant operations

	env.cl 		Scheme 88 environment initialization, written in
			Common Lisp

	error.cl 	the Scheme 88 error package, written in Common Lisp

	except.cl	the Scheme 88 exception handler, written in
			Common Lisp, still under development

        expand.cl	the Scheme 88 beta-expander, for beta-style special
 			forms, written in Common Lisp
			
	hostmacs.cl	most of the macros supplied with the system, written
			as Common Lisp functions
	
	mkmac.cl	help functions for mkmac, the Scheme 88 macro writing
			tool, written in Common Lisp

	mkmacs.s 	a Scheme 88 macro writing tool

	patches.s 	autoload functions for various Scheme 88 extensions
	
	prims.cl		creation of Scheme 88 primitive functions

	print.cl 	the Scheme 88 I/O package, written in Common Lisp

	signal.cl	system interrupt handlers

	std.s 		standard Scheme 88 macros and functions

	synstd.s	standard macros written as beta-style special forms

	syntax.s	constructors for beta-style special forms

	sys.s 		scheme-top-level and file loading functions

	top.cl 		Scheme 88 version and host system file, written
			in Common Lisp

	vector.cl	vector manipulation functions, written in Common Lisp

	vsm.cl 		the Virtual Scheme Machine, written in Common Lisp

	wrapper.s 	defining-form creation stuff
