diff options
Diffstat (limited to 'slib.texi')
-rw-r--r-- | slib.texi | 198 |
1 files changed, 144 insertions, 54 deletions
@@ -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 @@ -3659,7 +3659,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 @@ -3772,10 +3772,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))) @@ -3963,6 +3964,7 @@ should appear. @node Filenames, Batch, Getopt Parameter lists, Programs and Arguments @subsection Filenames +@ftindex glob @include glob.txi @@ -4153,8 +4155,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) @@ -5945,15 +5947,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 @@ -11421,6 +11428,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 @@ -11773,6 +11782,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 @@ -11781,12 +11791,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:: @@ -11843,10 +11863,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 @@ -11934,6 +11954,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. @@ -11947,10 +11969,7 @@ page: @section Installation @ifset html -<A NAME="Installation"> -@end ifset -@ifset html -</A> +<A NAME="Installation"></A> @end ifset @cindex install @@ -11963,7 +11982,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 @@ -11996,14 +12016,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 @@ -12052,34 +12097,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: @@ -12100,9 +12184,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>}, @@ -12124,8 +12211,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 @@ -12139,15 +12226,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 @@ -12266,10 +12355,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. @@ -12362,11 +12448,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 @@ -12378,12 +12459,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 |