summaryrefslogtreecommitdiffstats
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README172
1 files changed, 138 insertions, 34 deletions
diff --git a/README b/README
index daae3a6..8d4d31d 100644
--- a/README
+++ b/README
@@ -1,15 +1,15 @@
-This directory contains the distribution of Scheme Library slib2c7.
+This directory contains the distribution of Scheme Library slib2d2.
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.
-The maintainer can be reached at jaffer @ ai.mit.edu.
+The maintainer can be reached at agj @ alum.mit.edu.
http://swissnet.ai.mit.edu/~jaffer/SLIB.html
MANIFEST
`README' is this file. It contains a MANIFEST, INSTALLATION
- INSTRUCTIONS, and proposed coding standards.
+ INSTRUCTIONS, and coding guidelines.
`FAQ' Frequently Asked Questions and answers.
`ChangeLog' documents changes to slib.
`slib.texi' has documentation on library packages in TexInfo format.
@@ -18,22 +18,23 @@ The maintainer can be reached at jaffer @ ai.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.
`elk.init' is a configuration file for ELK 2.1
`gambit.init' is a configuration file for Gambit Scheme.
`macscheme.init' is a configuration file for MacScheme.
`mitscheme.init' is a configuration file for MIT Scheme.
- `mitcomp.pat' is a patch file which adds definitions to SLIB files
- for the MitScheme compiler.
`pscheme.init' is configuration file for PocketScheme 0.2.5 (WinCE SIOD)
`RScheme.init' is a configuration file for RScheme.
- `scheme2c.init' is a configuration file for DEC's scheme->c.
+ `scheme2c.init' is a configuration file for DEC's scheme->c.
`scheme48.init' is a configuration file for Scheme48.
+ `s48-0_57.init is a configuration file for Scheme48-0.57.
`scsh.init' is a configuration file for Scheme-Shell
`scm.init' is a configuration file for SCM.
`t3.init' is a configuration file for T3.1 in Scheme mode.
`STk.init' is a configuration file for STk.
`umbscheme.init' is a configuration file for umb-scheme.
`vscm.init' is a configuration file for VSCM.
+ `guile.init' is a configuration file for guile.
`mklibcat.scm' builds the *catalog* cache.
`require.scm' has code which allows system independent access to
the library files.
@@ -56,6 +57,7 @@ The maintainer can be reached at jaffer @ ai.mit.edu.
`debug.scm' has handy higher level debugging aids.
`strport.scm' has routines for string-ports.
`strsrch.scm' search for chars or substrings in strings and ports.
+ `differ.scm' An O(NP) Sequence Comparison Algorithm.
`alist.scm' has functions accessing and modifying association lists.
`hash.scm' defines hash, hashq, and hashv.
@@ -68,6 +70,7 @@ The maintainer can be reached at jaffer @ ai.mit.edu.
`primes.scm' has primes and probably-prime?.
`factor.scm' has factor.
`root.scm' has Newton's and Laguerre's methods for finding roots.
+ `minimize.scm' has Golden Section Search for minimum value.
`cring.scm' extend + and * to custom commutative rings.
`selfset.scm' sets single letter identifiers to their symbols.
`determ.scm' compute determinant of list of lists.
@@ -87,8 +90,11 @@ The maintainer can be reached at jaffer @ ai.mit.edu.
`alistab.scm' has association list base tables.
`dbutil.scm' has utilities for creating and manipulating relational
databases.
- `htmlform' generates HTML2.0 forms and service CGI requests from RDB
- command tables.
+ `htmlform.scm' generates HTML-3.2 with forms.
+ `db2html.scm' convert relational database to hyperlinked tables and
+ pages.
+ `http-cgi.scm' serves WWW pages with HTTP or CGI.
+ `uri.scm' encodes and decodes Uniform Resource Identifiers.
`dbrowse.scm' browses relational databases.
`paramlst.scm' has procedures for passing parameters by name.
`getparam.scm' has procedures for converting getopt to parameters.
@@ -135,6 +141,7 @@ The maintainer can be reached at jaffer @ ai.mit.edu.
`tsort.scm' has topological-sort.
`comlist.scm' has many common list and mapping procedures.
`tree.scm' has functions dealing with trees.
+ `coerce.scm' has coerce and type-of from Common-Lisp.
`chap.scm' has functions which compare and create strings in
"chapter order".
@@ -147,23 +154,49 @@ The maintainer can be reached at jaffer @ ai.mit.edu.
`ratize.scm' has function rationalize from Revised^4 spec.
`trnscrpt.scm' has transcript-on and transcript-off from Revised^4 spec.
`withfile.scm' has with-input-from-file and with-output-to-file from R4RS.
- `dynwind.scm' has proposed dynamic-wind from R5RS.
- `eval.scm' has proposed eval with environments from R5RS.
+ `dynwind.scm' has dynamic-wind from R5RS.
+ `eval.scm' has eval with environments from R5RS.
`dwindtst.scm' has routines for characterizing dynamic-wind.
- `dynamic.scm' has proposed DYNAMIC data type.
+ `dynamic.scm' has DYNAMIC data type [obsolete].
`fluidlet.scm' has fluid-let syntax.
- `struct.scm' has defmacros which implement RECORDS from the book:
- "Essentials of Programming Languages".
- `structure.scm' has syntax-case macros for the same.
- `structst.scm' has test code for struct.scm.
+ `structure.scm' has undocumented syntax-case macros.
`byte.scm' has arrays of small integers.
- `nclients' provides a Scheme interface to FTP and WWW Browsers.
+ `nclients.scm' provides a Scheme interface to FTP and WWW Browsers.
+ `pnm.scm' provides a Scheme interface to "portable bitmap" files.
+ `simetrix.scm' provides SI Metric Interchange Format.
+ `srfi.scm' implements Scheme Request for Implementation.
+ `srfi-N.scm' implements srfi-N.
INSTALLATION INSTRUCTIONS
- 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.
+ 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
@@ -172,30 +205,101 @@ 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 you can modify the startup file for your Scheme
-implementation to `load' this initialization file. SLIB is then
-installed.
+ 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.
- The SCM implementation does not require any initialization file as
-SLIB support is already built in to SCM. See the documentation with
-SCM for installation instructions.
+ - 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'
- SLIB includes methods to create heap images for the VSCM and Scheme48
-implementations. The instructions for creating a VSCM image are in
-comments in `vscm.init'. To make a Scheme48 image for an installation
-under `<prefix>', `cd' to the SLIB directory and type `make
-prefix=<prefix> slib48'. 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: Guile
+ `guile -l ${SCHEME_LIBRARY_PATH}guile.init'
PORTING INSTRUCTIONS
@@ -219,10 +323,10 @@ library; this will allow the use of `provide', `provided?', and
`require' along with the "vicinity" functions. The rest of the
library will then be accessible in a system independent fashion.
- Please mail new working configuration files to `jaffer@ai.mit.edu' so
+ Please mail new working configuration files to `agj @ alum.mit.edu' so
that they can be included in the SLIB distribution.
- CODING STANDARDS
+ CODING GUIDELINES
All library packages are written in IEEE P1178 Scheme and assume that
a configuration file and `require.scm' package have already been