Chez Scheme is an efficient and robust implementation of Scheme with support for all required and optional features of the ANSI/IEEE Scheme Standard and the Revised5 Reports on Scheme along with a number of language and programming environment extensions. Chez Scheme employs an incremental optimizing compiler that produces efficient code and does so quickly.
Petite Chez Scheme is a complete Scheme system that is fully compatible with Chez Scheme but uses a fast interpreter in place of the compiler. It was conceived as a run-time environment for compiled Chez Scheme applications, but is also a stand-alone Scheme system. Programs written for Chez Scheme run unchanged in Petite Chez Scheme, as long as they do not depend specifically on the compiler, albeit not as quickly and without the debugging information generated by the compiler. In fact, Petite Chez Scheme is built from the same sources as Chez Scheme, with all but the compiler sources included.
Both systems are copyrighted by Cadence Research Systems and are distributed under license. Use of Chez Scheme requires a license fee, while use of Petite Chez Scheme does not. Petite Chez Scheme is freely redistributable, while Chez Scheme may not be redistributed in any form.
The threaded versions are the same as the nonthreaded versions but support multithreading (and multiprocessing on computers with multiple processors or processor cores) based on Posix threads. They run somewhat slower than the nonthreaded versions for single-processing applications.
Complete online documentation for Chez Scheme and Petite Chez Scheme is available at www.scheme.com in the form of two books written by R. Kent Dybvig: The Scheme Programming Language, Third Edition and the Chez Scheme Version 7 User's Guide.
The Scheme Widget Library (SWL) is a free windowing and graphics package. It includes an object system, a threaded windowing and graphics library, and various tools, including an editor and a window-based REPL (read-eval-print loop) window with tcsh-like history. It is distributed with online documentation in the form of the SWL Reference Manual, written by Oscar Waddell.
SWL is copyrighted by Oscar Waddell. It is based on Tcl/Tk, which is copyrighted by the Regents of the University of California, Sun Microsystems, Inc., Scriptics Corporation, and other parties. SWL and Tcl/Tk are both open source and freely distributable. Details are contained within the SWL and Tcl/Tk distributions.
The SWL system is not designed to run in the threaded versions, so to run SWL you must install the nonthreaded version.
Before you download install Chez Scheme, Petite Chez Scheme, and/or SWL, please read the appropriate license agreement(s) below.
Do not proceed with the installation unless you agree to the terms of the license agreement(s). Use of Chez Scheme, which is compiler-based, requires a license fee. It cannot be redistributed. Use of Petite Chez Scheme, which is interpreter-based, does not require a license fee, and it may be redistributed. Petite Chez Scheme may be used as a stand-alone Scheme system or as an application-delivery vehicle for compiled code produced by Chez Scheme. Please refer to the license agreements and to Section 2.7 of the Chez Scheme Version 7 User's Guide for details.
Installation instructions are given below for the nonthreaded versions of Chez Scheme. Installation of the threaded versions is similar. Since SWL is not designed to run in the threaded versions, to run SWL you must install the nonthreaded version.
To install both Chez Scheme and Petite Chez Scheme under Windows, run csv73.exe. To install Petite Chez Scheme only (e.g., for home use or as part of a delivered application), run pcsv73.exe. Both also install SWL.
Chez Scheme, Petite Chez Scheme, and SWL can be uninstalled via the add/remove programs icon in the control panel.
The easiest way to install Chez Scheme under linux is via RPM if you have it. To use RPM, run
rpm -i ChezScheme-7.3-1.i386.rpm
To install Petite Chez Scheme under Linux, run
rpm -i PetiteChezScheme-7.3-1.i386.rpm
To install SWL under Linux, run
rpm -i SWL-1.0c-1.i386.rpm
You will first need to install Tcl/Tk 8.3 or later, as well as Chez Scheme, if not already installed.
By default, the rpms do not build heap files. Heap files reduce startup times and increase sharing, but sometimes cause problems due to the inability of the system to allocate the required absolute address range. To force the rpms to build heaps, set the environment variable BUILDHEAPS to some non-zero value before running rpm.
Chez Scheme, Petite Chez Scheme, and SWL can be uninstalled with rpm -e package-name.
Source RPMS for both Chez Scheme and Petite Chez Scheme (containing RPM SPEC and binary tar.gz files) are provided to allow the binary RPM to be rebuilt (via rpmbuild --rebuild) in case of incompatibility with installed libraries.
Debian users may be able to install the Linux RPMs using alien, e.g.,
alien -cd PetiteChezScheme-7.3-1.i386.rpm
To install Chez Scheme under Mac OS X, unpack csv7.3-machine-type-1.pkg.tar.gz and click on the pkg file. To install Petite Chez Scheme, use pcsv7.3-machine-type-1.pkg.tar.gz instead. You will need the root (administrator) password to perform the installation. The package file installs an executable as /usr/bin/scheme (or /usr/bin/petite), which you can run in a new shell window by typing just scheme (petite), and a manual page, which you can access in a shell window by typing man scheme (man petite).
To install SWL, you must first install Tcl and Tk if they are not installed already. Then unpack swl1.0c-machine-type-1.pkg.tar.gz and click on the pkg file. This will install the SWL application (in the finder, select Go, then Applications, then SWL) and also the executable /usr/bin/swl in case you prefer to run SWL from a shell window.
You can also install the packages from a shell as follows:
tar -xzf packagename.pkg.tar.gz
installer -pkg packagename.pkg -target /
The latter command must be run as root.
To uninstall Chez Scheme, remove /usr/lib/csv7.3, /usr/bin/petite, /usr/bin/scheme, /usr/share/man/man1/petite.1, /usr/share/man/man1/scheme.1, and /Library/Receipts/csv7.3-machine-type-1.pkg (/Library/Receipts/pcsv7.3-machine-type-1.pkg for Petite Chez Scheme). To uninstall SWL, remove /usr/lib/swl1.0c, /usr/bin/swl, /Applications/swl.app, and /Library/Receipts/swl1.0c-machine-type-1.pkg.
To install Chez Scheme and/or Petite Chez Scheme from a .tar.gz file, first unpack the .tar.gz file. This will produce the directory csv7.3 containing the software. The file csv7.3/ReadMe contains installation instructions, but generally the following suffices:
The configure script recognizes several options. To build the threaded version, if available, pass the --threads option to configure; to build the 64-bit version, if available, pass the --64 option. To force relinking of the executable image against local libraries, use --force-relink. To force heaps to be build, use --build-heaps. Run ./configure --help for more options.
If you want to test the build before installation, consult the file csv7.3/ReadMe for instructions.
To install both Chez Scheme and Petite Chez Scheme, use csv7.3-machine-type.tar.gz. To install only Petite Chez Scheme, use pcsv7.3-machine-type.tar.gz instead.
For multiple .tar.gz files, it is safe and often desirable to unpack them into the same directory. You must run 'make distclean' between makes, then rerun './configure' for different machine types, however.
To install SWL, unpack swl1.0c-src.tar.gz, which will produce the directory swl1.0c. Edit Mf-install if necessary to change installation target directories. Finally, run
in swl1.0c. You will first need to install Tcl/Tk 8.3 or later, as well as Chez Scheme, if not already installed.
NOTE: You must be running Chez Scheme, not just Petite Chez Scheme, to install SWL from source, since rebuilding SWL requires the compiler. SWL is designed to run in the nonthreaded versions of the system and has not been tested in the threaded versions.
Run 'make uninstall' to see uninstallation instructions (this will not actually do the uninstallation) for Chez Scheme or Petite Chez Scheme. To unistall SWL, remove /usr/bin/swl and /usr/lib/swl1.0c.