Each file in the table below is descibed in terms of its file-system independent vicinity (see Vicinity). The entries of a catalog in the table override those of catalogs above it in the table.
implementation-vicinity
slibcatlibrary-vicinity
mklibcat.scmlibrary-vicinity
sitecatimplementation-vicinity
implcatimplementation-vicinity
.
implementation-vicinity
mkimpcat.scmimplementation-vicinity
sitecathome-vicinity
homecatuser-vicinity
usercatuser-vicinity
.
Here is an example of a usercat catalog. A program in this
directory can invoke the ‘run’ feature with (require 'run)
.
;;; "usercat": SLIB catalog additions for SIMSYNCH. -*-scheme-*- ( (simsynch . "../synch/simsynch.scm") (run . "../synch/run.scm") (schlep . "schlep.scm") )
Copying usercat to many directories is inconvenient. Application programs which aren't always run in specially prepared directories can nonetheless register their features during initialization.
Reads file named by string catalog in vicinity, resolving all paths relative to vicinity, and adds those feature associations to *catalog*.
catalog:read
would typically be used by an application program having dynamically loadable modules. For instance, to register factoring and other modules in *catalog*, JACAL does:(catalog:read (program-vicinity) "jacalcat")
For an application program there are three appropriate venues for registering its catalog associations:
implementation-vicinity
; or
catalog:read
.