NAME¶
scheme48 - a Scheme interpreter
SYNOPSIS¶
scheme48 [-i image] [-h heapsize] [-a argument]
DESCRIPTION¶
scheme48 is an implementation of the Scheme programming language as
described in the
Revised^5 Report on the Algorithmic Language Scheme. A
runnable system requires two parts, an executable program that implements the
Scheme 48 virtual machine, and an image that is used to initialize the store
of the virtual machine.
scheme48 is a shell script that starts the
virtual machine with an image that runs in a Scheme command loop.
The
scheme48 command loop reads Scheme expressions, evaluates them, and
prints their results. It also executes commands, which are identified by an
initial comma character. Type the command
,help to receive a list of
available commands.
The meaning of the
-h option depends on the type of garbage collector
that was chosen at configuration time. If
heapsize is a positive
number, it specifies the number of words that can be live at any given time.
One word is four bytes. Cons cells are currently 3 words, so if you want to
make sure you can allocate, say, a million cons cells, you should specify
-h 3000000 (actually a little more, to account for the initial heap
image and breathing room).
If you specify a maximum smaller than the memory needed to load the image file,
the maximum is increased accordingly and a message is written to the console.
For the BIBOP garbage collector,
heapsize may be 0. This means the heap
will possibly keep growing until your system runs out of memory. Because of
this risk, a warning message is written to the console if you specify
-h 0.
The
,dump and
,build commands put heap images in files. The
-i option causes the initial heap image to be taken from file
image. The
-a option causes a list of strings to be passed as
the argument to an image generated using the
,build command. The first
argument to
,build is a procedure that is passed the arguments
following
-a and which should return an integer (which is the return
value of the Scheme 48 process).
> ,build (lambda (a) (display a) (newline) 0) foo.image
> ,exit
$ scheme48 -i foo.image -a mumble
mumble
$
FILES¶
- /usr/lib/scheme48-1.`cat
./build/minor-version-number`/scheme48vm
- the virtual machine.
- /usr/lib/scheme48-1.`cat
./build/minor-version-number`/scheme48.image
- the default image.