summaryrefslogtreecommitdiffstats
path: root/README
diff options
context:
space:
mode:
authorBryan Newbold <bnewbold@robocracy.org>2017-02-20 00:05:40 -0800
committerBryan Newbold <bnewbold@robocracy.org>2017-02-20 00:05:40 -0800
commit4684239efa63dc1b2c1cbe37ef7d3062029f5532 (patch)
tree606a687e9279e9bf6048925878968df9875a4973 /README
parent64f037d91e0c9296dcaef9a0ff3eb33b19a2ed34 (diff)
downloadslib-upstream/3b1.tar.gz
slib-upstream/3b1.zip
Import Upstream version 3b1upstream/3b1
Diffstat (limited to 'README')
-rw-r--r--README174
1 files changed, 121 insertions, 53 deletions
diff --git a/README b/README
index d92b83a..b1b0b20 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-This directory contains the distribution of Scheme Library slib3a5.
+This directory contains the distribution of Scheme Library slib-3b1.
Slib conforms to Revised^5 Report on the Algorithmic Language Scheme
and the IEEE P1178 specification. Slib supports Unix and similar
systems, VMS, and MS-DOS.
@@ -18,7 +18,7 @@ The maintainer can be reached at agj @ alum.mit.edu.
reflect your system.
`bigloo.init' is a configuration file for Bigloo.
`chez.init' is a configuration file for Chez Scheme.
- `DrScheme.init' is a configuration file for DrScheme.
+ `mzscheme.init' is a configuration file for mzscheme.
`elk.init' is a configuration file for ELK 3.0.
`gambit.init' is a configuration file for Gambit Scheme.
`macscheme.init' is a configuration file for MacScheme.
@@ -197,20 +197,22 @@ The maintainer can be reached at agj @ alum.mit.edu.
INSTALLATION INSTRUCTIONS
- There are four parts to installation:
+There are five parts to installation:
* Unpack the SLIB distribution.
- * Configure the Scheme implementation(s) to locate the SLIB
- directory.
+ * Install documentation and `slib' script.
+
+ * Configure the Scheme implementation(s) to locate the SLIB directory
+ and implementation directories.
* Arrange for Scheme implementation to load its SLIB initialization
file.
* Build the SLIB catalog for the Scheme implementation.
-Unpacking the SLIB Distribution
--------------------------------
+8.1.1 Unpacking the SLIB Distribution
+-------------------------------------
If the SLIB distribution is a GNU/Linux RPM, it will create the SLIB
directory `/usr/share/slib'.
@@ -223,21 +225,50 @@ 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
-----------------------------------------------
+8.1.2 Install documentation and slib script
+-------------------------------------------
-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.)
+ make infoz
+ make install
- The `(library-vicinity)' can also be specified from the SLIB
-initialization file or by implementation-specific means.
+8.1.3 Configure Scheme Implementation to Locate SLIB
+----------------------------------------------------
-Loading SLIB Initialization File
---------------------------------
+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, Bigloo, Chez, Elk,
+Gambit, Guile, Jscheme, Larceny, MITScheme, MzScheme, RScheme, STk,
+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 set from the SLIB initialization
+file or by implementation-specific means.
+
+ Support for locating an implementation's auxiliary directory is uneven
+among implementations. Also, the person installing SLIB may not have
+write permission to some of these directories (necessary for writing
+slibcat). Therefore, those implementations supporting `getenv' (except
+SCM and Scheme48) provide a means for specifying the
+`implementation-vicinity' through environment variables. Define the
+indicated environment variable to the pathname (with trailing slash or
+backslash) of the desired directory. Do not use `slib/' as an
+implementation-vicinity!
+
+Bigloo BIGLOO_IMPLEMENTATION_PATH
+Chez CHEZ_IMPLEMENTATION_PATH
+ELK ELK_IMPLEMENTATION_PATH
+Gambit GAMBIT_IMPLEMENTATION_PATH
+Guile GUILE_IMPLEMENTATION_PATH
+Jscheme JSCHEME_IMPLEMENTATION_PATH
+MIT-Scheme MITSCHEME_IMPLEMENTATION_PATH
+MzScheme MZSCHEME_IMPLEMENTATION_PATH
+RScheme RSCHEME_IMPLEMENTATION_PATH
+STk STK_IMPLEMENTATION_PATH
+Vscm VSCM_IMPLEMENTATION_PATH
+
+8.1.4 Loading SLIB Initialization File
+--------------------------------------
Check the manifest in `README' to find a configuration file for your
Scheme implementation. Initialization files for most IEEE P1178
@@ -251,8 +282,8 @@ 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
------------------------------------------
+8.1.5 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.
@@ -272,43 +303,69 @@ SLIB-installed scheme implementation, type:
(require 'new-catalog)
(slib:exit)
-Implementation-specific Instructions
-------------------------------------
+8.1.6 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
+ -- 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
+ -- Implementation: Larceny
+ Starting with version 0.96, Larceny contains its own SLIB
+ initialization file, loaded by `(require 'srfi-96)'. If
+ SCHEME_LIBRARY_PATH is not set, then Larceny looks for an `slib'
+ subdirectory of a directory in the list returned by
+ `(current-require-path)'
- 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.
+ larceny -- -e "(require 'srfi-96)"
- 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:
+ -- Implementation: ELK
+ elk -i -l ${SCHEME_LIBRARY_PATH}elk.init
- 1. run scheme
+ -- Implementation: PLT Scheme
+ -- Implementation: DrScheme
+ -- Implementation: MzScheme
+ The `init.ss' file in the _slibinit_ collection is an SLIB
+ initialization file. To run SLIB in MzScheme:
- 2. `(load "vscm.init")'
+ mzscheme -f ${SCHEME_LIBRARY_PATH}mzscheme.init
- 3. `(slib:dump "dumpfile")'
+ -- Implementation: MIT Scheme
+ scheme -load ${SCHEME_LIBRARY_PATH}mitscheme.init
+
+ -- Implementation: Gambit-C 3.0
+ gsi -:s ${SCHEME_LIBRARY_PATH}gambit.init -
+
+ -- Implementation: SISC
+ sisc -e "(load \"${SCHEME_LIBRARY_PATH}sisc.init\")" --
+
+ -- Implementation: Kawa
+ kawa -f ${SCHEME_LIBRARY_PATH}kawa.init --
+
+ -- Implementation: Guile
+ Guile versions 1.6 and earlier link to an archaic SLIB version. In
+ RedHat or Fedora installations:
+
+ rm /usr/share/guile/slib
+ ln -s ${SCHEME_LIBRARY_PATH} /usr/share/guile/slib
- 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.)
+ In Debian installations:
+ rm /usr/share/guile/1.6/slib
+ ln -s ${SCHEME_LIBRARY_PATH} /usr/share/guile/1.6/slib
- - Implementation: Scheme48
+ `${SCHEME_LIBRARY_PATH}' is where SLIB gets installed.
+
+ Guile with SLIB can then be started thus:
+
+ guile -l ${SCHEME_LIBRARY_PATH}guile.init
+
+ -- Implementation: Scheme48
To make a Scheme48 image for an installation under `<prefix>',
1. `cd' to the SLIB directory
@@ -319,22 +376,33 @@ above.
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.
+ -- 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. For
+ example:
- To use SLIB in MzScheme, set the SCHEME_LIBRARY_PATH environment
- variable to the installed SLIB location; then invoke MzScheme thus:
+ `mv dumpfile /usr/local/vscm/lib/scheme-boot'
- `mzscheme -f ${SCHEME_LIBRARY_PATH}DrScheme.init'
+ In this case vscm should have been compiled with flag:
- - Implementation: MIT Scheme
- `scheme -load ${SCHEME_LIBRARY_PATH}mitscheme.init'
+ -DDEFAULT_BOOTFILE='"/usr/local/vscm/lib/scheme-boot"'
- - Implementation: Guile
- `guile -l ${SCHEME_LIBRARY_PATH}guile.init'
+ See Makefile (definition of DDP) for details.
PORTING INSTRUCTIONS