1 LISP LIBRARY PACKAGES MANUAL 1 LISP LIBRARY PACKAGES MANUAL DATABASEFNS 1 PROGRAM ANALYSIS 1 DATABASEFNS 6 DataBaseFns is a very small package whose purpose is to make the construction and maintenance of MASTERSCOPE data bases an essentially automatic process. It modifies MAKEFILE, LOAD, and LOADFROM to behave in the following way: A data base will be maintained automatically for any file (containing functions) whose file name has the property DATABASE with value YES. Whenever such a file is dumped via MAKEFILE, MASTERSCOPE will analyse any new or changed functions on the file, and a data base for all of the functions on the file will be written on a separate file whose name is of the form FILE.DATABASE. Whenever a file that has a DATABASE property with value YES is loaded via LOAD or LOADFROM, then the corresponding DATABASE file, if any, is also loaded. The data base will not be dumped or loaded if the value of the DATABASE property for the file is NO. The DATABASE property is considered to be NO if the file is loaded with LDFLG=SYSLOAD. If the DATABASE property is not YES or NO, then MAKEFILE, LOAD, and LOADFROM will ask the user whether he or she wants automatic data base maintenance. The user's answer will be stored on the DATABASE property so that he or she will not be asked again. Thus when a file is dumped for the first time, the user will be asked ©©Do you want a Masterscope Database for this file?'' Similarly, if the user loads a file that has an associated data base, the user will be asked ©©Load database for FILE?'' The above interactions may be controlled via the global variables SAVEDBFLG and LOADDBFLG. When a file that has neither a YES or NO data base property is being dumped, MAKEFILE will assume (and store) a YES value if the value of SAVEDBLFG is YES, and a NO value if SAVEDBFLG is NO. The user will be queried only if SAVEDBFLG is ASK (its initial value). Similarly, if LOADDBFLG is YES, LOAD and LOADFROM will automatically load an existing .DATABASE file for a file that does not have a YES or NO value for its DATABASE property. The data base will not be loaded if LOADDBFLG is NO, and the user will be interrogated as described above if LOADDBFLG is ASK (its initial value). The user can dump and restore data bases explicitly via the following functions: (DUMPDB FILE) [Function] Dumps a data base for FILE then sets the DATABASE property to YES, so that data base maintenance for FILE will subsequently be automatic. (LOADDB FILE) [Function] Loads the file FILE.DATABASE if one exists. After the data base is loaded, the DATABASE property for FILE is set to YES, so that maintenance will be thereafter automatic. Data base files include the date and full file name of the file to which they correspond. LOADDB will print out a warning message if it loads a data base that does not correspond to the in-core version of the file, and ask the user if he or she approves. Note that LOADDB is the only approved way of loading a data base. Attempting to LOAD a data base file will cause an error.(LIST ((PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC ) STARTINGPAGE# 368) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD LEFT) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC )) (54 12 288 36) NIL) (HEADING NIL (HEADINGTYPE FOOTINGV) (54 27 558 36) NIL) (HEADING NIL (HEADINGTYPE VERSOHEAD) (54 762 558 36) NIL) (TEXT NIL NIL (55 54 503 618) 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 MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC )) (270 12 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))) (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 MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC )) (270 12 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))))).ÌÌø ø.ÌÌøø.ÌÌøø<ø PAGEHEADING VERSOHEAD<ø PAGEHEADING RECTOHEAD;ø PAGEHEADINGFOOTINGV;ø PAGEHEADINGFOOTINGRMODERN MODERNMODERN  HRULE.GETFNMODERN  HRULE.GETFNMODERN   HRULE.GETFNMODERN  HRULE.GETFNMODERN   HRULE.GETFNMODERN ç×ö«Q J! fBÿ{ ;zº