At the start of an interactive session no catalog is present, but is
created with the first catalog inquiry (such as
'random)). Several sources of catalog information are combined to
produce the catalog:
implementation-invicinity, which is created by loading mkimpcat.scm in
implementation-invicinityif it exists.
cdto this directory before starting the Scheme session.
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. It is
a reasonable practice to change the definition of
*slib-version* whenever the library is changed. If multiple
implementations of Scheme use SLIB, remember that recompiling one
slibcat will update 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
require of a special feature:
Another special feature of
require erases SLIB's catalog,
forcing it to be reloaded the next time the catalog is queried.