"Fossies" - the Fresh Open Source Software Archive

Member "slib-3b6/README" (16 Feb 2020, 19063 Bytes) of package /linux/privat/slib-3b6.tar.gz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "README": 3b5_vs_3b6.

    1 This directory contains the distribution of Scheme Library slib-3b6.
    2 Slib conforms to Revised^5 Report on the Algorithmic Language Scheme
    3 and the IEEE P1178 specification.  Slib supports Unix and similar
    4 systems, VMS, and MS-DOS.
    5 
    6 The maintainer can be reached at agj @ alum.mit.edu.
    7 	    http://people.csail.mit.edu/jaffer/SLIB.html
    8 
    9 			       MANIFEST
   10 
   11   `README' is this file.  It contains a MANIFEST and INSTALLATION
   12 	INSTRUCTIONS.
   13   `FAQ' Frequently Asked Questions and answers.
   14   `ChangeLog' documents changes to slib.
   15   `slib.texi' has documentation on library packages in TexInfo format.
   16 
   17   `Template.scm' Example configuration file.  Copy and customize to
   18 	reflect your system.
   19   `bigloo.init' is a configuration file for Bigloo.
   20   `chez.init' is a configuration file for Chez Scheme.
   21   `mzscheme.init' is a configuration file for mzscheme.
   22   `elk.init' is a configuration file for ELK 3.0.
   23   `gambit.init' is a configuration file for Gambit Scheme.
   24   `macscheme.init' is a configuration file for MacScheme.
   25   `mitscheme.init' is a configuration file for MIT Scheme.
   26   `pscheme.init' is configuration file for PocketScheme 0.2.5 (WinCE SIOD)
   27   `RScheme.init' is a configuration file for RScheme.
   28   `scheme2c.init' is a configuration file for DEC's scheme->c.
   29   `scheme48.init' is a configuration file for Scheme48.
   30   `scsh.init' is a configuration file for Scheme-Shell
   31   `scm.init' is a configuration file for SCM.
   32   `sisc.init' is a configuration file for SISC.
   33   `t3.init' is a configuration file for T3.1 in Scheme mode.
   34   `STk.init' is a configuration file for STk.
   35   `s7.init' is a configuration file for S7, part of Snd sound-editor.
   36   `umbscheme.init' is a configuration file for umb-scheme.
   37   `vscm.init' is a configuration file for VSCM.
   38   `guile-2.init' is a configuration file for Guile version 2.0 or later.
   39   `guile.init' is a configuration file for older versions of Guile.
   40   `jscheme.init' is a configuration file for JScheme.
   41   `kawa.init' is a configuration file for Kawa.
   42   `mklibcat.scm' builds the *catalog* cache.
   43   `require.scm' has code which allows system independent access to
   44 	the library files.
   45 
   46   `slib.sh' is a shell script for running various Schemes with SLIB.
   47   `Bev2slib.scm' Converts Stephen Bevan's "*.map" files to SLIB catalog entries.
   48   `pp.scm' has pretty-print.
   49   `ppfile.scm' has pprint-file and pprint-filter-file.
   50   `obj2str.scm' has object->string.
   51   `strcase.scm' has functions for manipulating the case of strings.
   52   `genwrite.scm' has a generic-write which is used by pp.scm,
   53 	pp2str.scm and obj2str.scm
   54   `format.scm' has Common-Lisp format.
   55   `formatst.scm' tests format.
   56   `printf.scm' has printf, fprintf, and sprintf compatible with C.
   57   `scanf.scm' has scanf, fscanf, and sscanf compatible by C.
   58   `lineio' has line oriented input/output functions.
   59   `qp.scm' has printer safe for circular structures.
   60   `break.scm' has break and continue.
   61   `trace.scm' has trace and untrace for tracing function execution.
   62   `debug.scm' has handy higher level debugging aids.
   63   `strport.scm' has routines for string-ports.
   64   `strsrch.scm' search for chars or substrings in strings and ports.
   65   `differ.scm' An O(NP) Sequence Comparison Algorithm.
   66 
   67   `alist.scm' has functions accessing and modifying association lists.
   68   `hash.scm' defines hash, hashq, and hashv.
   69   `hashtab.scm' has hash tables.
   70   `sierpinski.scm' 2-dimensional coordinate hash.
   71   `phil-spc.scm' Hilbert Space-Filling Curve.
   72   `peanosfc.scm' Peano Space-Filling Curve.
   73   `soundex.scm' English name hash.
   74   `logical.scm' emulates 2's complement logical operations.
   75   `random.scm' has random number generator compatible with Common Lisp.
   76   `randinex.scm' has inexact real number distributions.
   77   `primes.scm' has primes and probably-prime?.
   78   `factor.scm' has factor.
   79   `root.scm' has Newton's and Laguerre's methods for finding roots.
   80   `minimize.scm' has Golden Section Search for minimum value.
   81   `limit.scm' computes one-sided limits.
   82   `cring.scm' extend + and * to custom commutative rings.
   83   `selfset.scm' sets single letter identifiers to their symbols.
   84   `determ.scm' compute determinant of list of lists.
   85   `charplot.scm' has procedure for plotting on character screens.
   86   `grapheps.scm' has procedures for creating PostScript graphs.
   87   `grapheps.ps' is PostScript runtime support for creating graphs.
   88   `matfile.scm' reads MAT-File Format version 4 (MATLAB).
   89   `solid.scm' has VRML97 solid-modeling.
   90   `colorspc.scm' has CIE and sRGB color transforms.
   91   `colornam.scm' has color-name database functions.
   92   `mkclrnam.scm' creates color-name databases.
   93   `color.scm' has color data-type.
   94   `cie1931.xyz' CIE XYZ(1931) Spectra from 380.nm to 780.nm.
   95   `cie1964.xyz' CIE XYZ(1964) Spectra from 380.nm to 780.nm.
   96   `ciesia.dat' CIE Standard Illuminant A relative spectral power distribution
   97   `ciesid65.dat' CIE Standard Illuminant D65 relative spectral power distribution
   98   `daylight.scm' Model of sky colors.
   99   `getopt.scm' has posix-like getopt for parsing command line arguments.
  100   `timecore.scm' has shared time conversion routines.
  101   `psxtime.scm' has Posix time conversion routines.
  102   `cltime.scm' has Common-Lisp time conversion routines.
  103   `timezone.scm' has the default time-zone, UTC.
  104   `tzfile.scm' reads sysV style (binary) timezone file.
  105   `comparse.scm' has shell-like command parsing.
  106 
  107   `rdms.scm' has code to construct a relational database from a base
  108 	table implementation.
  109   `alistab.scm' has association list base tables.
  110   `dbutil.scm' has procedures for creating and opening relational
  111 	databases.
  112   `dbsyn.scm' has Syntactic extensions for RDMS (within-database).
  113   `dbcom.scm' embeds *commands* in relational databases.
  114   `dbinterp.scm' Interpolate function from database table.
  115   `htmlform.scm' generates HTML-3.2 with forms.
  116   `db2html.scm' convert relational database to hyperlinked tables and
  117 	pages.
  118   `http-cgi.scm' serves WWW pages with HTTP or CGI.
  119   `html4each.scm' parses HTML files.
  120   `xml-parse.scm' parses XML files.
  121   `dirs.scm' maps over directory filenames.
  122   `uri.scm' encodes and decodes Uniform Resource Identifiers.
  123   `dbrowse.scm' browses relational databases.
  124   `paramlst.scm' has procedures for passing parameters by name.
  125   `getparam.scm' has procedures for converting getopt to parameters.
  126   `manifest.scm' List SLIB module requires and exports; useful for compiling.
  127   `top-defs.scm' Finds external references.
  128   `vet.scm' Checks each module imports, exports, and documentation.
  129   `schmooz.scm' is a simple, lightweight markup language for
  130 	interspersing Texinfo documentation with Scheme source code.
  131   `glob.scm' has filename matching and manipulation.
  132   `batch.scm' Group and execute commands on various operating systems.
  133   `crc.scm' Calculate POSIX.2 checksums and other CRCs.
  134 
  135   `record.scm' a MITScheme user-definable datatypes package
  136   `promise.scm' has code from R4RS for supporting DELAY and FORCE.
  137 
  138   `repl.scm' has a read-eval-print-loop.
  139   `defmacex.scm' has defmacro:expand*.
  140   `mbe.scm' has "Macro by Example" define-syntax.
  141   `scmacro.scm' is a syntactic closure R4RS macro package.
  142 	r4rsyn.scm, synclo.scm, synrul.scm have syntax definitions
  143 	and support.
  144   `scmactst.scm' is code for testing SYNTACTIC CLOSURE macros.
  145   `scainit.scm' is a syntax-case R4RS macro package.
  146 	scaglob.scm scamacr.scm scaoutp.scm scaexpp.scm have
  147 	syntax definitions and support.  `syncase.sh' is a shell
  148 	script for producing the SLIB version from the original.
  149   `macwork.scm' is a "Macros that work" package.
  150 	mwexpand.scm mwdenote.scm mwsynrul.scm have support.
  151   `macrotst.scm' is code from R4RS for testing macros.
  152 
  153   `values.scm' is multiple values.
  154   `queue.scm' has queues and stacks.
  155 
  156   `object.scm' is an object system.
  157   `yasyn.scm' defines (syntax-rules) macros for object oriented programming.
  158   `collect.scm' is collection operators (like CL sequences).
  159   `priorque.scm' has code and documentation for priority queues.
  160   `wttree.scm' has weight-balanced trees.
  161   `wttree-test.scm' new test suite.
  162   `process.scm' has multi-processing primitives.
  163   `array.scm' has multi-dimensional arrays.
  164   `subarray.scm' has subarray and accessory procedures.
  165   `linterp.scm' has interpolate-array-ref and resample-array!.
  166   `arraymap.scm' has array-map!, array-for-each, and array-indexes.
  167 
  168   `sort.scm' has sorted?, sort, sort!, merge, and merge!.
  169   `tsort.scm' has topological-sort.
  170   `comlist.scm' has many common list and mapping procedures.
  171   `tree.scm' has functions dealing with trees.
  172   `coerce.scm' has coerce and type-of from Common-Lisp.
  173   `chap.scm' has functions which compare and create strings in
  174 	"chapter order".
  175 
  176   `sc4opt.scm' has optional rev4 procedures.
  177   `sc4sc3.scm' has procedures to make a rev3 implementation run rev4
  178 	code.
  179   `sc2.scm' has rev2 procedures eliminated in subsequent versions.
  180   `mularg.scm' redefines - and / to take more than 2 arguments.
  181   `mulapply.scm' redefines apply to take more than 2 arguments.
  182   `ratize.scm' has function rationalize from Revised^4 spec.
  183   `trnscrpt.scm' has transcript-on and transcript-off from Revised^4 spec.
  184   `withfile.scm' has with-input-from-file and with-output-to-file from R4RS.
  185   `dynwind.scm' has dynamic-wind from R5RS.
  186   `eval.scm' has eval with environments from R5RS.
  187   `dwindtst.scm' has routines for characterizing dynamic-wind.
  188   `dynamic.scm' has DYNAMIC data type [obsolete].
  189   `fluidlet.scm' has fluid-let syntax (defmacro).
  190   `fluid-let.scm' has fluid-let syntax.
  191   `structure.scm' has undocumented syntax-case macros.
  192   `byte.scm' has arrays of small integers.
  193   `bytenumb.scm' convert byte-arrays to integers; IEEE floating-point numbers.
  194   `transact.scm' File locking and backup.
  195   `pnm.scm' provides a Scheme interface to "portable bitmap" files.
  196   `simetrix.scm' provides SI Metric Interchange Format.
  197   `ncbi-dna.scm' reads and manipulates DNA and protein sequences.
  198   `srfi.scm' implements Scheme Request for Implementation.
  199   `srfi-N.scm' implements srfi-N.
  200 
  201 		      INSTALLATION INSTRUCTIONS
  202 
  203 There are five parts to installation:
  204 
  205    * Unpack the SLIB distribution.
  206 
  207    * Install documentation and `slib' script.
  208 
  209    * Configure the Scheme implementation(s) to locate the SLIB directory
  210      and implementation directories.
  211 
  212    * Arrange for Scheme implementation to load its SLIB initialization
  213      file.
  214 
  215    * Build the SLIB catalog for the Scheme implementation.
  216 
  217 8.1.1 Unpacking the SLIB Distribution
  218 -------------------------------------
  219 
  220 If the SLIB distribution is a GNU/Linux RPM, it will create the SLIB
  221 directory `/usr/share/slib'.
  222 
  223   If the SLIB distribution is a ZIP file, unzip the distribution to
  224 create the SLIB directory.  Locate this `slib' directory either in your
  225 home directory (if only you will use this SLIB installation); or put it
  226 in a location where libraries reside on your system.  On unix systems
  227 this might be `/usr/share/slib', `/usr/local/lib/slib', or
  228 `/usr/lib/slib'.  If you know where SLIB should go on other platforms,
  229 please inform agj @ alum.mit.edu.
  230 
  231 8.1.2 Install documentation and slib script
  232 -------------------------------------------
  233 
  234      make infoz
  235      make install
  236 
  237 8.1.3 Configure Scheme Implementation to Locate SLIB
  238 ----------------------------------------------------
  239 
  240 If the Scheme implementation supports `getenv', then the value of the
  241 shell environment variable SCHEME_LIBRARY_PATH will be used for
  242 `(library-vicinity)' if it is defined.  Currently, Bigloo, Chez, Elk,
  243 Gambit, Guile, Jscheme, Larceny, MITScheme, MzScheme, RScheme, STk,
  244 VSCM, and SCM support `getenv'.  Scheme48 supports `getenv' but does
  245 not use it for determining `library-vicinity'.  (That is done from the
  246 Makefile.)
  247 
  248   The `(library-vicinity)' can also be set from the SLIB initialization
  249 file or by implementation-specific means.
  250 
  251   Support for locating an implementation's auxiliary directory is uneven
  252 among implementations.  Also, the person installing SLIB may not have
  253 write permission to some of these directories (necessary for writing
  254 slibcat).  Therefore, those implementations supporting `getenv' (except
  255 SCM and Scheme48) provide a means for specifying the
  256 `implementation-vicinity' through environment variables.  Define the
  257 indicated environment variable to the pathname (with trailing slash or
  258 backslash) of the desired directory.  Do not use `slib/' as an
  259 implementation-vicinity!
  260 
  261 Bigloo                 BIGLOO_IMPLEMENTATION_PATH
  262 Chez                   CHEZ_IMPLEMENTATION_PATH
  263 ELK                    ELK_IMPLEMENTATION_PATH
  264 Gambit                 GAMBIT_IMPLEMENTATION_PATH
  265 Guile                  GUILE_IMPLEMENTATION_PATH
  266 Jscheme                JSCHEME_IMPLEMENTATION_PATH
  267 MIT-Scheme             MITSCHEME_IMPLEMENTATION_PATH
  268 MzScheme               MZSCHEME_IMPLEMENTATION_PATH
  269 RScheme                RSCHEME_IMPLEMENTATION_PATH
  270 S7                     S7_IMPLEMENTATION_PATH
  271 STk                    STK_IMPLEMENTATION_PATH
  272 Vscm                   VSCM_IMPLEMENTATION_PATH
  273 
  274 8.1.4 Loading SLIB Initialization File
  275 --------------------------------------
  276 
  277 Check the manifest in `README' to find a configuration file for your
  278 Scheme implementation.  Initialization files for most IEEE P1178
  279 compliant Scheme Implementations are included with this distribution.
  280 
  281   You should check the definitions of `software-type',
  282 `scheme-implementation-version', `implementation-vicinity', and
  283 `library-vicinity' in the initialization file.  There are comments in
  284 the file for how to configure it.
  285 
  286   Once this is done, modify the startup file for your Scheme
  287 implementation to `load' this initialization file.
  288 
  289 8.1.5 Build New SLIB Catalog for Implementation
  290 -----------------------------------------------
  291 
  292 When SLIB is first used from an implementation, a file named `slibcat'
  293 is written to the `implementation-vicinity' for that implementation.
  294 Because users may lack permission to write in
  295 `implementation-vicinity', it is good practice to build the new catalog
  296 when installing SLIB.
  297 
  298   To build (or rebuild) the catalog, start the Scheme implementation
  299 (with SLIB), then:
  300 
  301      (require 'new-catalog)
  302 
  303   The catalog also supports color-name dictionaries.  With an
  304 SLIB-installed scheme implementation, type:
  305      (require 'color-names)
  306      (make-slib-color-name-db)
  307      (require 'new-catalog)
  308      (slib:exit)
  309 
  310 8.1.6 Implementation-specific Instructions
  311 ------------------------------------------
  312 
  313 Multiple implementations of Scheme can all use the same SLIB directory.
  314 Simply configure each implementation's initialization file as outlined
  315 above.
  316 
  317  -- Implementation: SCM
  318      The SCM implementation does not require any initialization file as
  319      SLIB support is already built into SCM.  See the documentation
  320      with SCM for installation instructions.
  321 
  322  -- Implementation: Larceny
  323      Starting with version 0.96, Larceny contains its own SLIB
  324      initialization file, loaded by `(require 'srfi-96)'.  If
  325      SCHEME_LIBRARY_PATH is not set, then Larceny looks for an `slib'
  326      subdirectory of a directory in the list returned by
  327      `(current-require-path)'
  328 
  329           larceny -- -e "(require 'srfi-96)"
  330 
  331  -- Implementation: ELK
  332           elk -i -l ${SCHEME_LIBRARY_PATH}elk.init
  333 
  334  -- Implementation: PLT Scheme
  335  -- Implementation: DrScheme
  336  -- Implementation: MzScheme
  337      The `init.ss' file in the _slibinit_ collection is an SLIB
  338      initialization file.  To run SLIB in MzScheme:
  339 
  340           mzscheme -f ${SCHEME_LIBRARY_PATH}mzscheme.init
  341 
  342  -- Implementation: MIT Scheme
  343           scheme -load ${SCHEME_LIBRARY_PATH}mitscheme.init
  344 
  345  -- Implementation: Gambit-C 3.0
  346           gsi -:s ${SCHEME_LIBRARY_PATH}gambit.init -
  347 
  348  -- Implementation: SISC
  349           sisc -e "(load \"${SCHEME_LIBRARY_PATH}sisc.init\")" --
  350 
  351  -- Implementation: Kawa
  352           kawa -f ${SCHEME_LIBRARY_PATH}kawa.init --
  353 
  354  -- Implementation: Guile
  355      For Guile 1.8 or later, use:
  356           guile -l ${SCHEME_LIBRARY_PATH}guile.init
  357 
  358      For prehistoric Guile, you may have to remove a prehistoric copy of
  359      SLIB that was included with Guile:
  360 
  361           rm /usr/share/guile/slib
  362           ln -s ${SCHEME_LIBRARY_PATH} /usr/share/guile/slib
  363 
  364      In Debian installations:
  365 
  366           rm /usr/share/guile/1.6/slib
  367           ln -s ${SCHEME_LIBRARY_PATH} /usr/share/guile/1.6/slib
  368 
  369      `${SCHEME_LIBRARY_PATH}' is where SLIB gets installed.
  370 
  371  -- Implementation: Scheme48
  372      To make a Scheme48 image for an installation under `<prefix>',
  373 
  374        1. `cd' to the SLIB directory
  375 
  376        2. type `make prefix=<prefix> slib48'.
  377 
  378        3. To install the image, type `make prefix=<prefix> install48'.
  379           This will also create a shell script with the name `slib48'
  380           which will invoke the saved image.
  381 
  382  -- Implementation: VSCM
  383      From: Matthias Blume <blume @ cs.Princeton.EDU>
  384      Date: Tue, 1 Mar 1994 11:42:31 -0500
  385 
  386      Disclaimer: The code below is only a quick hack.  If I find some
  387      time to spare I might get around to make some more things work.
  388 
  389      You have to provide `vscm.init' as an explicit command line
  390      argument.  Since this is not very nice I would recommend the
  391      following installation procedure:
  392 
  393        1. run scheme
  394 
  395        2. `(load "vscm.init")'
  396 
  397        3. `(slib:dump "dumpfile")'
  398 
  399        4. mv dumpfile place-where-vscm-standard-bootfile-resides.  For
  400           example:
  401 
  402           `mv dumpfile /usr/local/vscm/lib/scheme-boot'
  403 
  404           In this case vscm should have been compiled with flag:
  405 
  406           -DDEFAULT_BOOTFILE='"/usr/local/vscm/lib/scheme-boot"'
  407 
  408           See Makefile (definition of DDP) for details.
  409 
  410 			 PORTING INSTRUCTIONS
  411 
  412 If there is no initialization file for your Scheme implementation, you
  413 will have to create one.  Your Scheme implementation must be largely
  414 compliant with
  415   `IEEE Std 1178-1990',
  416   `Revised(4) Report on the Algorithmic Language Scheme', or
  417   `Revised(5) Report on the Algorithmic Language Scheme'
  418 in order to support SLIB.
  419 
  420   `Template.scm' is an example configuration file.  The comments inside
  421 will direct you on how to customize it to reflect your system.  Give
  422 your new initialization file the implementation's name with `.init'
  423 appended.  For instance, if you were porting `foo-scheme' then the
  424 initialization file might be called `foo.init'.
  425 
  426   Your customized version should then be loaded as part of your scheme
  427 implementation's initialization.  It will load `require.scm' from the
  428 library; this will allow the use of `provide', `provided?', and
  429 `require' along with the "vicinity" functions.  The rest of the
  430 library will then be accessible in a system independent fashion.
  431 
  432   Please mail new working configuration files to `agj @ alum.mit.edu'
  433 so that they can be included in the SLIB distribution.
  434 
  435 			      USING SLIB
  436 
  437   All library packages are written in IEEE P1178 Scheme and assume
  438 that a configuration file and `require.scm' package have already been
  439 loaded.  Other versions of Scheme can be supported in library packages
  440 as well by using, for example, `(provided? 'r3rs)' or `(require 'r3rs)'.
  441 
  442 The first chapter of the SLIB manual "The Library System" explains the
  443 mechanics of using SLIB modules.
  444 
  445 	      http://people.csail.mit.edu/jaffer/slib_1