GNU Info

Info Node: (slib.info)Catalog Compilation

(slib.info)Catalog Compilation


Next: Built-in Support Prev: Library Catalogs Up: The Library System
Enter node , (file) or (file)node

Catalog Compilation
===================

SLIB combines the catalog information which doesn't vary per user into
the file `slibcat' in the implementation-vicinity.  Therefore `slibcat'
needs change only when new software is installed or compiled.  Because
the actual pathnames of files can differ from installation to
installation, SLIB builds a separate catalog for each implementation it
is used with.

The definition of `*SLIB-VERSION*' in SLIB file `require.scm' is
checked against the catalog association of `*SLIB-VERSION*' to
ascertain when versions have changed.  I recommend that the definition
of `*SLIB-VERSION*' be changed whenever the library is changed.  If
multiple implementations of Scheme use SLIB, remember that recompiling
one `slibcat' will fix only that implementation's catalog.

The compilation scripts of Scheme implementations which work with SLIB
can automatically trigger catalog compilation by deleting `slibcat' or
by invoking a special form of `require':

 - Procedure: require 'new-catalog
     This will load `mklibcat', which compiles and writes a new
     `slibcat'.

Another special form of `require' erases SLIB's catalog, forcing it to
be reloaded the next time the catalog is queried.

 - Procedure: require #f
     Removes SLIB's catalog information.  This should be done before
     saving an executable image so that, when restored, its catalog
     will be loaded afresh.

Each file in the table below is descibed in terms of its file-system
independent "vicinity" (Note: Vicinity).  The entries of a catalog in
the table override those of catalogs above it in the table.

`implementation-vicinity' `slibcat'
     This file contains the associations for the packages comprising
     SLIB, the `implcat' and the `sitecat's.  The associations in the
     other catalogs override those of the standard catalog.

`library-vicinity' `mklibcat.scm'
     creates `slibcat'.

`library-vicinity' `sitecat'
     This file contains the associations specific to an SLIB
     installation.

`implementation-vicinity' `implcat'
     This file contains the associations specific to an implementation
     of Scheme.  Different implementations of Scheme should have
     different `implementation-vicinity'.

`implementation-vicinity' `mkimpcat.scm'
     if present, creates `implcat'.

`implementation-vicinity' `sitecat'
     This file contains the associations specific to a Scheme
     implementation installation.

`home-vicinity' `homecat'
     This file contains the associations specific to an SLIB user.

`user-vicinity' `usercat'
     This file contains associations effecting only those sessions whose
     "working directory" is `user-vicinity'.


automatically generated by info2www version 1.2.2.9