Installation
============
There are four parts to installation:
* Unpack the SLIB distribution.
* Configure the Scheme implementation(s) to locate the SLIB
directory.
* Arrange for Scheme implementation to load its SLIB initialization
file.
* Build the SLIB catalog for the Scheme implementation.
Unpacking the SLIB Distribution
-------------------------------
If the SLIB distribution is a Linux RPM, it will create the SLIB
directory `/usr/share/slib'.
If the SLIB distribution is a ZIP file, unzip the distribution to
create the SLIB directory. Locate this `slib' directory either in your
home directory (if only you will use this SLIB installation); or put it
in a location where libraries reside on your system. On unix systems
this might be `/usr/share/slib', `/usr/local/lib/slib', or
`/usr/lib/slib'. If you know where SLIB should go on other platforms,
please inform agj @ alum.mit.edu.
Configure Scheme Implementation to Locate SLIB
----------------------------------------------
If the Scheme implementation supports `getenv', then the value of the
shell environment variable SCHEME_LIBRARY_PATH will be used for
`(library-vicinity)' if it is defined. Currently, Chez, Elk,
MITScheme, scheme->c, VSCM, and SCM support `getenv'. Scheme48
supports `getenv' but does not use it for determining
`library-vicinity'. (That is done from the Makefile.)
The `(library-vicinity)' can also be specified from the SLIB
initialization file or by implementation-specific means.
Loading SLIB Initialization File
--------------------------------
Check the manifest in `README' to find a configuration file for your
Scheme implementation. Initialization files for most IEEE P1178
compliant Scheme Implementations are included with this distribution.
You should check the definitions of `software-type',
`scheme-implementation-version', `implementation-vicinity', and
`library-vicinity' in the initialization file. There are comments in
the file for how to configure it.
Once this is done, modify the startup file for your Scheme
implementation to `load' this initialization file.
Build New SLIB Catalog for Implementation
-----------------------------------------
When SLIB is first used from an implementation, a file named
`slibcat' is written to the `implementation-vicinity' for that
implementation. Because users may lack permission to write in
`implementation-vicinity', it is good practice to build the new catalog
when installing SLIB.
To build (or rebuild) the catalog, start the Scheme implementation
(with SLIB), then:
(require 'new-catalog)
Implementation-specific Instructions
------------------------------------
Multiple implementations of Scheme can all use the same SLIB
directory. Simply configure each implementation's initialization file
as outlined above.
- Implementation: SCM
The SCM implementation does not require any initialization file as
SLIB support is already built into SCM. See the documentation
with SCM for installation instructions.
- Implementation: VSCM
From: Matthias Blume <blume @ cs.Princeton.EDU>
Date: Tue, 1 Mar 1994 11:42:31 -0500
Disclaimer: The code below is only a quick hack. If I find some
time to spare I might get around to make some more things work.
You have to provide `vscm.init' as an explicit command line
argument. Since this is not very nice I would recommend the
following installation procedure:
1. run scheme
2. `(load "vscm.init")'
3. `(slib:dump "dumpfile")'
4. mv dumpfile place-where-vscm-standard-bootfile-resides e.g.
mv dumpfile /usr/local/vscm/lib/scheme-boot (In this case
vscm should have been compiled with flag
-DDEFAULT_BOOTFILE='"/usr/local/vscm/lib/scheme-boot"'. See
Makefile (definition of DDP) for details.)
- Implementation: Scheme48
To make a Scheme48 image for an installation under `<prefix>',
1. `cd' to the SLIB directory
2. type `make prefix=<prefix> slib48'.
3. To install the image, type `make prefix=<prefix> install48'.
This will also create a shell script with the name `slib48'
which will invoke the saved image.
- Implementation: PLT Scheme
- Implementation: DrScheme
- Implementation: MzScheme
The `init.ss' file in the _slibinit_ collection is an SLIB
initialization file.
To use SLIB in MzScheme, set the SCHEME_LIBRARY_PATH environment
variable to the installed SLIB location; then invoke MzScheme thus:
`mzscheme -L init.ss slibinit'
- Implementation: MIT Scheme
`scheme -load ${SCHEME_LIBRARY_PATH}mitscheme.init'
- Implementation: Guile
`guile -l ${SCHEME_LIBRARY_PATH}guile.init'