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'.