Installing Scheme 48


This concrete set of installation instructions was written by Margaret Fleck. For advanced features, see Kelsey's instructions on installation and running scheme48.

Basic installation

If you don't already have a copy of Scheme48, first get one from Richard Kelsey's home page. If that page or the link to the tar file is inaccessible, try the Scheme48 home page and/or Kelsey's ftp directory.

Run gunzip and tar to unpack the source code.

If you want to install scheme48 directly into the top-level system directories, just follow the instructions in the file INSTALL in the source.

It may be more convenient to install scheme48 into a private directory structure, e.g. if you are not root or if you need to maintain binaries for several versions of unix on one server. To do this, create your scheme48 directory, and make subdirectories: bin, include, lib, man, and src. Put the scheme48 source in src.

Then, go to the src subdirectory and type "./configure --prefix=PATH" in which PATH is the name of your scheme48 directory (the whole thing, not the src subdirectory). When this finishes, type "make" to build the binaries, then "make install" to install the code. To clean up after a losing build before retrying, do "make clean" and then "make distclean".

Finally, make sure that you have emacs installed on your system and that your emacs directory contains the cmuscheme48 (ideal) or cmuscheme (ok) package. If the cmuscheme stuff is missing, look in the src/emacs subdirectory of your scheme48 installation.

Now, edit your emacs init file (.emacs in your home directory) to include something like the following. Restart emacs and the command "M-x run-scheme" should start scheme48.

   (setq load-path
	 (append load-path '("/usr/local/vision/scheme/scheme48-0.51/src/emacs")))
   (setq scheme-program-name 

Emacs init files on multiple operating systems

If you use one init file under several different operating systems, you will need something like the following in your emacs init file. You can find the current value of the system-type variable by invoking M-x eval-expression, then typing system-type at the prompt, inside emacs.

  ((eq system-type 'hpux)
     (setq load-path 
       (append load-path '("/group/scheme/scheme48/scheme48-0.51-hp/src/emacs")))
     (setq scheme-program-name 
   ((eq system-type 'aix)
     (setq load-path 
      (append load-path '("/group/scheme/scheme48/scheme48-0.51-ibm/src/emacs")))
     (setq scheme-program-name 

Changing images frequently and/or controlling the heap size

If you frequently swap between several scheme48 images and/or change scheme's heap size, it is inconvenient to reboot emacs for each change. This can be avoided by replacing the installation script file with one of your own. Put something like the following in your emacs init file.

    (setq load-path 
      (append load-path '("/group/scheme/scheme48/scheme48-0.51-hp/src/emacs")))
    (setq scheme-program-name 
    (autoload 'run-scheme "cmuscheme48" "Run an inferior Scheme process." t)

Then create a script file (in this example "/home/fleck/scheme-script") containing something like the following:


exec $lib/scheme48vm -o $lib/scheme48vm -i $lib/scheme48.image -h 6000000 -s 2500"$@"

To change versions of scheme: halt scheme, edit the script file to point to the new image, and then restart scheme. Similarly, to change the heap size, change the value associated with the -h flag. To toggle frequently between two versions, retain multiple versions of each line and comment out all but one. For example:


exec $lib/scheme48vm -o $lib/scheme48vm -i /usr/local/vision/scheme/envision/bin/solaris/envision.image -h 6500000 -s 2500"$@"
#exec $lib/scheme48vm -o $lib/scheme48vm -i $lib/scheme48.image -h 6500000 -s 2500"$@"


Ownership, Maintenance and Disclaimers

Manual Top Page

Last modified