aboutsummaryrefslogtreecommitdiffstats
path: root/slib.texi
diff options
context:
space:
mode:
Diffstat (limited to 'slib.texi')
-rw-r--r--slib.texi198
1 files changed, 144 insertions, 54 deletions
diff --git a/slib.texi b/slib.texi
index 10f9f60..b9d9cd7 100644
--- a/slib.texi
+++ b/slib.texi
@@ -19,7 +19,7 @@ the portable Scheme library.
@noindent
@c Copyright (C) 1993 Todd R. Eigenschink@*
Copyright @copyright{} 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
@@ -3653,7 +3653,7 @@ left unread in the input stream.
* Command Line:: A command line reader for Scheme shells
* Parameter lists:: 'parameters
* Getopt Parameter lists:: 'getopt-parameters
-* Filenames:: 'glob or 'filename
+* Filenames:: 'filename
* Batch:: 'batch
@end menu
@@ -3766,10 +3766,11 @@ have been parsed.
Example:
@lisp
#! /usr/local/bin/scm
-;;;This code is SCM specific.
-(define argv (program-arguments))
+(require 'program-arguments)
(require 'getopt)
+(define argv (program-arguments))
@ftindex getopt
+@ftindex program-arguments
(define opts ":a:b:cd")
(let loop ((opt (getopt (length argv) argv opts)))
@@ -3957,6 +3958,7 @@ should appear.
@node Filenames, Batch, Getopt Parameter lists, Programs and Arguments
@subsection Filenames
+@ftindex glob
@include glob.txi
@@ -4147,8 +4149,8 @@ Here is an example of the use of most of batch's procedures:
@ftindex parameters
(require 'batch)
@ftindex batch
-(require 'glob)
-@ftindex glob
+(require 'filename)
+@ftindex filename
(define batch (create-database #f 'alist-table))
(batch:initialize! batch)
@@ -5939,15 +5941,20 @@ values.
@deftp {Feature} cie1964
@ftindex cie1964
-Loads the Spectral Tristimulus Values defining @cite{CIE 1964
-Supplementary Standard Colorimetric Observer}.
+Loads the Spectral Tristimulus Values
+@cite{CIE 1964 Supplementary Standard Colorimetric Observer},
+defining @var{cie:x-bar}, @var{cie:y-bar}, and @var{cie:z-bar}.
+
@deftpx {Feature} cie1931
@ftindex cie1931
-Loads the Spectral Tristimulus Values defining @cite{CIE 1931
-Supplementary Standard Colorimetric Observer}.
+Loads the Spectral Tristimulus Values
+@cite{CIE 1931 Supplementary Standard Colorimetric Observer},
+defining @var{cie:x-bar}, @var{cie:y-bar}, and @var{cie:z-bar}.
+
@deftpx {Feature} ciexyz
@ftindex ciexyz
-Requires Spectral Tristimulus Values, defaulting to cie1931.
+Requires Spectral Tristimulus Values, defaulting to cie1931,
+defining @var{cie:x-bar}, @var{cie:y-bar}, and @var{cie:z-bar}.
@end deftp
@noindent
@@ -11415,6 +11422,8 @@ unspecified.
@item SRFI-94 @ref{Irrational Integer Functions} and @ref{Irrational Real Functions}
@ftindex srfi-95
@item SRFI-95 @ref{Sorting}
+@ftindex srfi-96
+@item SRFI-96 @ref{Universal SLIB Procedures}
@end itemize
@@ -11767,6 +11776,7 @@ To untrace, type
@noindent
If @code{(provided? 'getenv)}:
+@ftindex getenv
@defun getenv name
Looks up @var{name}, a string, in the program environment. If @var{name} is
@@ -11775,12 +11785,22 @@ found a string of its value is returned. Otherwise, @code{#f} is returned.
@noindent
If @code{(provided? 'system)}:
+@ftindex system
@defun system command-string
Executes the @var{command-string} on the computer and returns the
integer status code.
@end defun
+@noindent
+If @code{(provided? 'program-arguments)}:
+@ftindex program-arguments
+
+@defun program-arguments
+Returns a list of strings, the first of which is the program name
+followed by the command-line arguments.
+@end defun
+
@menu
* Directories::
@@ -11837,10 +11857,10 @@ Because I have been too busy to integrate it.
@end itemize
Once an optional package is installed (and an entry added to
-@code{*catalog*}, the @code{require} mechanism allows it to be called up
-and used as easily as any other SLIB package. Some optional packages
-(for which @code{*catalog*} already has entries) available from SLIB
-sites are:
+@code{*catalog*}), the @code{require} mechanism allows it to be called
+up and used as easily as any other SLIB package. Some optional
+packages (for which @code{*catalog*} already has entries) available
+from SLIB sites are:
@table @asis
@item SLIB-PSD
@@ -11928,6 +11948,8 @@ page:
@center @url{http://swiss.csail.mit.edu/~jaffer/SLIB}
+SLIB is part of the GNU project.
+
@menu
* Installation:: How to install SLIB on your system.
* The SLIB script:: Run interactive SLIB sessions.
@@ -11941,10 +11963,7 @@ page:
@section Installation
@ifset html
-<A NAME="Installation">
-@end ifset
-@ifset html
-</A>
+<A NAME="Installation"></A>
@end ifset
@cindex install
@@ -11957,7 +11976,8 @@ Unpack the SLIB distribution.
@item
Install documentation and @code{slib} script.
@item
-Configure the Scheme implementation(s) to locate the SLIB directory.
+Configure the Scheme implementation(s) to locate the SLIB directory
+and implementation directories.
@item
Arrange for Scheme implementation to load its SLIB initialization file.
@item
@@ -11990,14 +12010,39 @@ make install
If the Scheme implementation supports @code{getenv}, then the value of
the shell environment variable @var{SCHEME_LIBRARY_PATH} will be used
-for @code{(library-vicinity)} if it is defined. Currently, Chez, Elk,
-MITScheme, scheme->c, VSCM, and SCM support @code{getenv}. Scheme48
-supports @code{getenv} but does not use it for determining
+for @code{(library-vicinity)} if it is defined. Currently, Bigloo,
+Chez, Elk, Gambit, Guile, Jscheme, Larceny, MITScheme, MzScheme,
+RScheme, STk, VSCM, and SCM support @code{getenv}. Scheme48 supports
+@code{getenv} but does not use it for determining
@code{library-vicinity}. (That is done from the Makefile.)
-The @code{(library-vicinity)} can also be specified from the SLIB
+The @code{(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 @code{getenv}
+(except SCM and Scheme48) provide a means for specifying the
+@code{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 @file{slib/}
+as an implementation-vicinity!
+
+@multitable @columnfractions .3 .7
+@item Bigloo @tab BIGLOO_IMPLEMENTATION_PATH
+@item Chez @tab CHEZ_IMPLEMENTATION_PATH
+@item ELK @tab ELK_IMPLEMENTATION_PATH
+@item Gambit @tab GAMBIT_IMPLEMENTATION_PATH
+@item Guile @tab GUILE_IMPLEMENTATION_PATH
+@item Jscheme @tab JSCHEME_IMPLEMENTATION_PATH
+@item MIT-Scheme @tab MITSCHEME_IMPLEMENTATION_PATH
+@item MzScheme @tab MZSCHEME_IMPLEMENTATION_PATH
+@item RScheme @tab RSCHEME_IMPLEMENTATION_PATH
+@item STk @tab STK_IMPLEMENTATION_PATH
+@item Vscm @tab VSCM_IMPLEMENTATION_PATH
+@end multitable
+
@subsection Loading SLIB Initialization File
Check the manifest in @file{README} to find a configuration file for
@@ -12046,34 +12091,73 @@ Multiple implementations of Scheme can all use the same SLIB directory.
Simply configure each implementation's initialization file as outlined
above.
+
@deftp 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.
@end deftp
+@deftp Implementation Larceny
+Starting with version 0.96, Larceny contains its own SLIB
+initialization file, loaded by @code{(require 'srfi-96)}. If
+SCHEME_LIBRARY_PATH is not set, then Larceny looks for an @file{slib}
+subdirectory of a directory in the list returned by
+@code{(current-require-path)}
+
+@example
+larceny -- -e "(require 'srfi-96)"
+@end example
+@end deftp
+
+@deftp Implementation {ELK}
+@example
+elk -i -l $@{SCHEME_LIBRARY_PATH@}elk.init
+@end example
+@end deftp
+
+
@deftp Implementation {PLT Scheme}
@deftpx Implementation {DrScheme}
@deftpx Implementation {MzScheme}
The @file{init.ss} file in the _slibinit_ collection is an SLIB
-initialization file.
-
-To use SLIB in MzScheme, set the @var{SCHEME_LIBRARY_PATH} environment
-variable to the installed SLIB location; then invoke MzScheme thus:
+initialization file. To run SLIB in MzScheme:
-@code{mzscheme -f $@{SCHEME_LIBRARY_PATH@}DrScheme.init}
+@example
+mzscheme -f $@{SCHEME_LIBRARY_PATH@}mzscheme.init
+@end example
@end deftp
+
@deftp Implementation {MIT Scheme}
-@code{scheme -load $@{SCHEME_LIBRARY_PATH@}mitscheme.init}
+@example
+scheme -load $@{SCHEME_LIBRARY_PATH@}mitscheme.init
+@end example
@end deftp
-@deftp Implementation Gambit-C 3.0
-@code{$command -:s $@{SCHEME_LIBRARY_PATH@}gambit.init -}
+@deftp Implementation {Gambit-C 3.0}
+@example
+gsi -:s $@{SCHEME_LIBRARY_PATH@}gambit.init -
+@end example
@end deftp
+
+@deftp Implementation SISC
+@example
+sisc -e "(load \"$@{SCHEME_LIBRARY_PATH@}sisc.init\")" --
+@end example
+@end deftp
+
+
+@deftp Implementation Kawa
+@example
+kawa -f $@{SCHEME_LIBRARY_PATH@}kawa.init --
+@end example
+@end deftp
+
+
@deftp Implementation {Guile}
Guile versions 1.6 and earlier link to an archaic SLIB version. In
RedHat or Fedora installations:
@@ -12094,9 +12178,12 @@ ln -s $@{SCHEME_LIBRARY_PATH@} /usr/share/guile/1.6/slib
Guile with SLIB can then be started thus:
-@code{guile -l $@{SCHEME_LIBRARY_PATH@}guile.init}
+@example
+guile -l $@{SCHEME_LIBRARY_PATH@}guile.init
+@end example
@end deftp
+
@deftp Implementation Scheme48
To make a Scheme48 image for an installation under @code{<prefix>},
@@ -12118,8 +12205,8 @@ From: Matthias Blume <blume @@ cs.Princeton.EDU>
Date: Tue, 1 Mar 1994 11:42:31 -0500
@end format
-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.
+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 @file{vscm.init} as an explicit command line
argument. Since this is not very nice I would recommend the following
@@ -12133,15 +12220,17 @@ run scheme
@item
@code{(slib:dump "dumpfile")}
@item
-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.)
-@end enumerate
+mv dumpfile place-where-vscm-standard-bootfile-resides. For example:
-@end deftp
+@code{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.
+@end enumerate
+@end deftp
@node The SLIB script, Porting, Installation, About SLIB
@section The SLIB script
@@ -12260,10 +12349,7 @@ not have the time to fish through 10000 diffs to find your 10 real fixes.
@section Copyrights
@ifset html
-<A NAME="Copyrights">
-@end ifset
-@ifset html
-</A>
+<A NAME="Copyrights"></A>
@end ifset
This section has instructions for SLIB authors regarding copyrights.
@@ -12356,11 +12442,6 @@ nothing to undermine it in the future.
@node About this manual, , Copyrights, About SLIB
@section About this manual
-@menu
-* Copying This Manual::
-* How to use this License for your documents::
-@end menu
-
@itemize @bullet
@item
Entries that are labeled as Functions are called for their return
@@ -12372,12 +12453,21 @@ Examples in this text were produced using the @code{scm} Scheme
implementation.
@item
-At the beginning of each section, there is a line that looks like
+At the beginning of each section, there is a line that looks like:
@ftindex feature
-@code{(require 'feature)}. Include this line in your code prior to
-using the package.
+@example
+(require 'feature)
+@end example
+Include this line in your code prior to using the package.
@end itemize
+@menu
+* GNU Free Documentation License::
+@end menu
+
+@node GNU Free Documentation License, , About this manual, About this manual
+@subsection GNU Free Documentation License
+
@include fdl.texi
@ifinfo