diff options
Diffstat (limited to 'README')
| -rw-r--r-- | README | 172 | 
1 files changed, 138 insertions, 34 deletions
| @@ -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 | 
