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.
Here is an example of a usercat catalog. A program in this
directory can invoke the ‘run’ feature with
;;; "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:readwould 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: