From 4684239efa63dc1b2c1cbe37ef7d3062029f5532 Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Mon, 20 Feb 2017 00:05:40 -0800 Subject: Import Upstream version 3b1 --- README | 174 +++++++++++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 121 insertions(+), 53 deletions(-) (limited to 'README') 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 - 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 `', 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 + 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 -- cgit v1.2.3