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