1 Lisp Library Modules, Medley Release 1.2, WHERE-IS 1 Lisp Library Modules, Medley Release 1.2, WHERE-IS WHERE-IS 1 WHERE-IS 1 WHERE-IS 6 This is a new implementation of a facility similar to but not compatible with the Lyric library module WhereIs. Where-Is(WHERE-IS NIL Where-Is NIL NIL 313) indexes all definers, but WhereIs only indexed Interlisp FNS definitions. Requirements 1 Hash-File and Cash-File. Installation 1 Load WHERE-IS.DFASL and the required .DFASL modules from the library. Changed File Manager(FILE% MANAGER NIL File% Manager NIL NIL 313 SUBTEXT functions,% changed) Functions 1 Where-Is allows the file manager to know of many more definitions than are actually in the files which have been noticed. To achieve this behavior, the following file manager functions are changed when Where-Is is loaded. Both of these functions are called by the edit interface (the function cl:ed). Thus when Where-Is is loaded the contents of its databases are known to the editor. (il:whereis(IL:WHEREIS (Function) il:whereis NIL NIL 313) name type files filter) [Function] Performs as described in the Interlisp Reference Manual. Returns the subset of files that contain a type definition for name. Files defaults to il:filelst (all noticed files). When Where-Is is loaded and il:whereis is passed t as its files argument, il:whereis looks in the Where-Is databases. (il:typesof(IL:TYPESOF (Function) il:typesof NIL NIL 313) name possible-types impossible-types source filter) [Function] Performs as described in the Interlisp Reference Manual. Returns the subset of possible-types that name is defined as. Possible-types defaults to il:filepkgtypes (all define types). When Where-Is is loaded, il:typesofalso includes the types for name in its databases. Databases(DATABASES NIL Databases NIL NIL 313) 1 Where-Is provides functions to use and build databases. Using a Database(DATABASES NIL Databases NIL NIL 313 SUBTEXT using) (xcl::add-where-is-database pathname) [Function] Adds the database in the file named by pathname to the databases known to Where-Is. If a database on an older version of this file is already known, then Where-Is will start using the new version. (xcl::del-where-is-database pathname) [Function] Deletes the database named by pathname from the databases known to Where-Is. xcl::*where-is-cash-files* [Variable] Contains the list of databases known to Where-Is. There is a proceed case for errors while accessing a database which will delete the offending database. This can be useful when a file server goes down. Building a Database(DATABASES NIL Databases NIL NIL 314 SUBTEXT building) (xcl::where-is-notice database-file &key files new hash-file-size temp-file-name define-types quiet) [Function] Records the definers on files in the file named by database-file. Files can be a pathname or a list of pathnames. The default for files is "*.;". Note that it is important to include the trailing semicolon so that only definers on the most recent version are recorded. If new is true, a new database file is created, otherwise database-file is presumed to name an existing Where-Is database to be augmented. The default for new is nil. Hash-file-size is only used when new is false and is passed as the size argument to make-hash-file. The default for hash-file-size is xcl::*where-is-hash-file-size*, which has a default top-level value of 10,000. If temp-file-name is provided, all changes happen in the temporary file named, which will afterwards be renamed to database-file. This can both make things faster (if the temporary file is on a faster device) and doesn't generate a new version of a database until the new version is ready to be used. The use of a temporary file may slow things down when a large existing database is just being updated to reflect a small number of changes. Define-types is the list of define types (file package types) which should be recorded. The default define types are all those on IL:FILEPKGTYPES which are not aliases for others and which are not in the list xcl::*where-is-ignore-define-types*. Unless quiet is true, xcl::where-is-noticeprints the name of each file as it is processed. xcl::where-is-notice returns the pathname of the hash file written. [This page intentionally left blank](LIST ((PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC "" "") STARTINGPAGE# 313) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD RIGHT) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY HELVETICA OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC "" "")) (270 15 288 36) NIL) (HEADING NIL (HEADINGTYPE FOOTINGR) (54 27 558 36) NIL) (TEXT NIL NIL (54 54 504 702) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC "" "")) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD LEFT) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY HELVETICA OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC "" "")) (54 15 288 36) NIL) (HEADING NIL (HEADINGTYPE FOOTINGV) (54 27 558 36) NIL) (HEADING NIL (HEADINGTYPE VERSOHEAD) (54 762 558 36) NIL) (TEXT NIL NIL (54 54 504 684) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC "" "")) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD RIGHT) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY HELVETICA OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC "" "")) (270 15 288 36) NIL) (HEADING NIL (HEADINGTYPE FOOTINGR) (54 27 558 36) NIL) (HEADING NIL (HEADINGTYPE RECTOHEAD) (54 762 558 36) NIL) (TEXT NIL NIL (54 54 504 684) NIL)))))3HH T-$$T3T3T2HT ,ll2HH ,HH,HH ,HH-T-T200F PAGEHEADING VERSOHEADF PAGEHEADING RECTOHEADE PAGEHEADINGFOOTINGVE PAGEHEADINGFOOTINGR  HELVETICACLASSICCLASSIC TITAN  HELVETICA  HELVETICACLASSIC  HELVETICA TERMINAL MODERN MODERNMODERNMODERN  HRULE.GETFNMODERN  2  HRULE.GETFNMODERN  2   HRULE.GETFNMODERN    HRULE.GETFNMODERN     HRULE.GETFNMODERN  y#IM.INDEX.GETFNK    HRULE.GETFNMODERN      HRULE.GETFNMODERN   IIM.INDEX.GETFN   HRULE.GETFNMODERN   .IM.INDEX.GETFN    2 $ " .IM.INDEX.GETFN   /  %IM.INDEX.GETFN  HRULE.GETFNMODERN  83IM.INDEX.GETFN HELVETICA    M 26IM.INDEX.GETFN HELVETICA     BK.1b > w@#  1 /  $z