(DEFINE-FILE-INFO READTABLE "INTERLISP" PACKAGE "INTERLISP") (FILECREATED " 1-Nov-86 23:03:45" ("compiled on " {ERIS}LIBRARY>HASH.;28) "29-Oct-86 01:03:58" "COMPILE-FILEd" in "Xerox Lisp 29-Oct-86 ..." dated "29-Oct-86 01:55:52") (FILECREATED " 1-Nov-86 23:03:01" {ERIS}LIBRARY>HASH.;28 32253 changes to%: (FNS REPLACEHASHKEY CLEARHASHFILES CLOSEHASHFILE COPYHASHFILE COPYHASHITEM GTHASHFILE) (VARS HASHCOMS) previous date%: "20-Oct-86 13:05:19" {ERIS}LIBRARY>HASH.;25) (RPAQQ HASHCOMS ((COMS (* ; "User Functions") (FNS CLEARHASHFILES CLOSEHASHFILE COLLECTKEYS COPYHASHFILE COPYHASHITEM CREATEHASHFILE GETHASHFILE GETHASHTEXT HASHBEFORECLOSE HASHFILEDATA HASHFILENAME HASHFILEP HASHFILEPROP HASHFILESPLST LOOKUPHASHFILE MAPHASHFILE OPENHASHFILE PUTHASHFILE PUTHASHTEXT REHASHFILE)) (COMS (* ; "Internal Functions") (FNS DELETEHASHKEY FIND1STPRIME GETHASHKEY GETPROBE GTHASHFILE HASHFILESPLST1 INSERTHASHKEY MAKEHASHKEY REPLACEHASHKEY SETHASHSTATUS SPLITKEY)) ( COMS (* ; "System Variables") (INITVARS (HFGROWTHFACTOR 3) (HASHLOADFACTOR .875) (HASHFILEDEFAULTSIZE 512) (HASHSCRATCHCONSCELL (CONS)) (HASHTEXTCHAR (CHARACTER (CHARCODE ^A))) (HASHFILERDTBL ( COPYREADTABLE (QUOTE ORIG))) (HASHSCRATCHLST (CONSTANT (to 40 collect NIL))) (HASHBITTABLE ( MAKEBITTABLE (LIST HASHTEXTCHAR))) (REHASHGAG T) SYSHASHFILE SYSHASHFILELST) (VARS PROBELST HASHACCESSTYPES) (ADDVARS (AFTERSYSOUTFORMS (CLEARHASHFILES))) (OPTIMIZERS GETHASHFILE HASHFILENAME)) (COMS (* ; "System Macros") (DECLARE%: EVAL@COMPILE DONTCOPY (MACROS ANYEQ CREATEKEY PRINTPTR PRINTSTBYTE READPTR READSTBYTE REHASHKEY) (* ;; "etc.") (RECORDS HashFile HashTextPtr HashFileEntry DoubleKey) (CONSTANTS (HASH.HEADER.SIZE 8) (HASH.KEY.SIZE 4)) (GLOBALVARS HFGROWTHFACTOR HASHLOADFACTOR HASHFILEDEFAULTSIZE HASHSCRATCHCONSCELL HASHTEXTCHAR HASHSCRATCHLST HASHBITTABLE SYSHASHFILE SYSHASHFILELST PROBELST HASHACCESSTYPES HASHFILERDTBL MAX.INTEGER) (* ; "For MASTERSCOPE") (GLOBALVARS HASH.HEADER.SIZE HASH.KEY.SIZE) (SPECVARS REHASHGAG) (BLOCKS (LOOKUPHASHFILEBLOCK ( ENTRIES LOOKUPHASHFILE GETHASHFILE PUTHASHFILE) LOOKUPHASHFILE GETHASHFILE PUTHASHFILE DELETEHASHKEY GETHASHKEY GETPROBE INSERTHASHKEY MAKEHASHKEY REPLACEHASHKEY) (OPENHASHFILEBLOCK (ENTRIES CREATEHASHFILE OPENHASHFILE) CREATEHASHFILE OPENHASHFILE FIND1STPRIME SETHASHSTATUS) (MAPHASHFILEBLOCK (ENTRIES COLLECTKEYS COPYHASHFILE COPYHASHITEM HASHFILESPLST MAPHASHFILE REHASHFILE) (SPECVARS REHASHGAG) COLLECTKEYS COPYHASHFILE COPYHASHITEM HASHFILESPLST HASHFILESPLST1 MAPHASHFILE REHASHFILE SPLITKEY)))) (PROP FILETYPE HASH))) CLEARHASHFILES D1 (I 1 RELEASE I 0 CLOSE) .@ `d`Hl Hl (41 SETA 33 CLOSEF? 30 ELT) (19 SYSHASHFILELST 15 SYSHASHFILELST 10 SYSHASHFILE 5 SYSHASHFILELST) () CLOSEHASHFILE D1 (I 1 REOPEN I 0 HASHFILE) 2@` bd$k@l A@k Ahd@ @k (47 ELT 41 OPENHASHFILE 33 ELT 26 SETA 23 CLOSEF? 20 ELT 8 HASHFILEP) (5 SYSHASHFILE) () COLLECTKEYSA0001 D1 (I 1 KEY2 I 0 KEY1 F 0 MKSTRING? F 1 KEYLST) P@ @PA AQc(13 MKSTRING 5 MKSTRING) NIL () COLLECTKEYSA0002 D1 (I 0 KEY F 0 KEYLST F 1 MKSTRING?) Q@ @Pc(5 MKSTRING) NIL () COLLECTKEYS D1 (P 0 KEYLST I 2 MKSTRING? I 1 DOUBLE I 0 HASHFILE) A@gi @g H(20 MAPHASHFILE 12 MAPHASHFILE) (17 COLLECTKEYSA0002 8 COLLECTKEYSA0001) () COPYHASHFILEA0001 D1 (I 0 KEY F 0 HASHFILE F 1 NEWHASHFILE F 2 FN) @PQR (6 COPYHASHITEM) NIL () COPYHASHFILE D1 (P 2 NEWHASHFILE P 1 ACCESS I 4 LEAVEOPEN I 3 VALUETYPE I 2 FN I 1 NEWNAME I 0 HASHFILE) S@ b@g ACHl Hl Hl hHl Ig@I b@g DJ J(78 CLOSEHASHFILE 72 MAPHASHFILE 62 CLOSEHASHFILE 48 CREATEHASHFILE 44 ELT 37 ELT 31 ELT 25 ELT 15 HASHFILEPROP 3 GTHASHFILE) (69 COPYHASHFILEA0001 55 INPUT 12 ACCESS) () COPYHASHITEM D1 (P 0 VALUE I 3 USERFN I 2 NEWHASHFILE I 1 HASHFILE I 0 KEY) A@hAg C@HABlCXHg@Al BHH @HBg h(61 LOOKUPHASHFILE 51 PUTHASHTEXT 40 ELT 8 LOOKUPHASHFILE) (58 INSERT 30 HashTextPtr 5 RETRIEVE) () CREATEHASHFILE D1 (P 2 HASHFILE P 1 SIZE P 0 STREAM I 5 COPYFN I 4 SMASH I 3 %#ENTRIES I 2 ITEMLENGTH I 1 VALUETYPE I 0 FILE) "`Cc``j Y@gglo Xdj Hj Hj HIl l HIl l HIl HAdglT` ggblE HB3jb Ilkػk\K{H bDl Z]l @gglo  MkMlMl MlI Mlj Mli MlA Ml E MlB J lxHj LkԱy(281 BOUT 269 SETHASHSTATUS 264 SETA 256 SETA 248 SETA 240 SETA 232 SETA 224 SETA 216 SETA 213 FULLNAME 210 SETA 207 ELT 195 SETA 192 OPENSTREAM 171 ARRAY 159 CLOSEF 142 BOUT 126 BOUT 108 MAX 89 BOUT 80 BOUT 74 RSH 66 BOUT 60 RSH 53 BOUT 47 BOUT 41 BOUT 35 OPENSTREAM 17 FIND1STPRIME) (182 OLD 179 BOTH 118 EXPR 113 EXPR 105 HASHFILEDEFAULTSIZE 95 TEXT 25 NEW 22 OUTPUT 11 HFGROWTHFACTOR 8 HASHFILEDEFAULTSIZE) ( 188 ((TYPE BINARY)) 31 ((TYPE BINARY))) GETHASHFILE D1 (P 1 KEY2 P 0 KEY1 I 2 KEY2 I 1 HASHFILE I 0 KEY) @BIHH`I hAg (25 LOOKUPHASHFILE 16 PACK*) (22 RETRIEVE 12 HASHTEXTCHAR) () GETHASHTEXT D1 (P 0 HASHTEXTPTR I 2 DSTFIL I 1 HASHFILE I 0 KEY) '@hAg HgAl BHH (36 COPYBYTES 26 ELT 8 LOOKUPHASHFILE) (17 HashTextPtr 5 RETRIEVE) () HASHBEFORECLOSE D1 (P 0 ENTRY I 0 FILE) 1@ `Hd"d`hHl H` h(42 DREMOVE 34 SETA 3 FULLNAME) (45 SYSHASHFILELST 39 SYSHASHFILELST 26 SYSHASHFILE 19 SYSHASHFILE 6 SYSHASHFILELST) () HASHFILEDATA D1 (I 0 HASHFILE) %@ Hk Hl Hl Hl h(29 ELT 23 ELT 17 ELT 11 ELT 3 GTHASHFILE) NIL () HASHFILENAME D1 (I 0 HASHFILE) @g (6 HASHFILEPROP) (3 NAME) () HASHFILEP D1 (I 1 WRITE I 0 HASHFILE) 6@dd-l'@ bd`bdl A@l @(48 ELT 38 ELT 18 FULLNAME) (26 SYSHASHFILELST) () HASHFILEPROP D1 (I 2 VALUE I 1 PROP I 0 HASHFILE) @ AdgHl gHl g AdgHk gHl BAHl B AdgHl gHl AdgHl gHl (131 ELT 118 ELT 103 ELT 91 ELT 75 SETA 65 ELT 52 ELT 38 GETFILEINFO 32 ELT 20 ELT 3 GTHASHFILE) (122 ITEMLENGTH 109 %#ENTRIES 95 SIZE 82 STREAM 56 COPYFN 44 NAME 35 ACCESS 24 ACCESS 11 VALUETYPE) () HASHFILESPLSTA0001 D1 (F 0 HASHFILE F 1 XWORD) PQ (4 HASHFILESPLST1) NIL () HASHFILESPLST D1 (I 1 XWORD I 0 HASHFILE) @ bg (13 GENERATEFN 3 GTHASHFILE) (10 HASHFILESPLSTA0001) () LOOKUPHASHFILE D1 (P 5 RETFLG P 4 RETVAL P 3 INDEX P 2 KEYVAL P 1 KEY2 P 0 KEY1 I 4 KEY2 I 3 CALLTYPE I 2 HASHFILE I 1 VALUE I 0 KEY) `@DIHH`I RBoC_^Dh bKBCgC gCiJ ZjJ=CgCgC jJZKAB h_dOOOOOiNCgCdgCiBl ` CgCdgCJKAB CgCgCJB MLJi(212 DELETEHASHKEY 190 REPLACEHASHKEY 164 READ 158 ELT 100 INSERTHASHKEY 67 GETHASHKEY 40 GTHASHFILE 19 PACK*) (204 DELETE 196 DELETE 180 REPLACE 169 REPLACE 161 HASHFILERDTBL 147 RETRIEVE 136 RETRIEVE 86 INSERT 77 INSERT 58 INSERT 48 INSERT 15 HASHTEXTCHAR 2 MAX.INTEGER) ( 28 (REPLACE DELETE INSERT)) MAPHASHFILE D1 (P 8 HASHKEY P 7 VALUE P 6 KEY P 4 ADR P 3 BOTH I 2 DOUBLE I 1 MAPFN I 0 HASHFILE) @ bHl A jBlklCkMJHl L Hdl lUbl Hl Hl _Hl O Hl ` KHl ` _BN YIOlANOlAMkԽLlԼwh(142 SPLITKEY 133 READ 127 ELT 118 READ 112 ELT 105 SETFILEPTR 100 ELT 88 ELT 80 ELT 71 ELT 60 ELT 52 SETFILEPTR 48 ELT 18 NARGS 14 ELT 3 GTHASHFILE) (130 HASHFILERDTBL 115 HASHFILERDTBL) () OPENHASHFILE D1 (P 2 HASHFILE I 4 SMASH I 3 %#ENTRIES I 2 ITEMLENGTH I 1 ACCESS I 0 FILE)  `HAI IIbBCdg@hBCD HX@ `JAJl g JDl Z[l @Aglo  KlKl Kl Kl KlKl Kl Kl KlKl dlTgg KlKl KlAg KkKlKl J (262 SETHASHSTATUS 257 SETA 254 FULLNAME 251 SETA 248 ELT 236 SETA 224 SETA 220 ELT 210 SETA 192 ELT 182 SETA 176 ELT 168 ELT 159 ELT 149 SETA 143 ELT 135 ELT 126 ELT 116 SETA 113 OPENSTREAM 94 ARRAY 80 GETFILEINFO 74 ELT 56 FULLNAME 46 CREATEHASHFILE 17 MEMB) (232 BOTH 207 EXPR 202 TEXT 103 OLD 77 ACCESS 59 SYSHASHFILELST 35 CREATE 2 HASHACCESSTYPES) ( 109 ((TYPE BINARY))) PUTHASHFILE D1 (P 1 KEY2 P 0 KEY1 I 3 KEY2 I 2 HASHFILE I 1 VALUE I 0 KEY) $@CIHH`I ABAog A(32 LOOKUPHASHFILE 16 PACK*) (29 DELETE 12 HASHTEXTCHAR) ( 25 (REPLACE INSERT)) PUTHASHTEXT D1 (P 0 HASHTEXTPTR I 4 END I 3 START I 2 HASHFILE I 1 SRCFIL I 0 KEY) IBi b Bl m gBl hXABl CD IBl @HB (70 PUTHASHFILE 62 GETEOFPTR 59 ELT 50 COPYBYTES 45 ELT 33 GETEOFPTR 30 ELT 20 SETFILEPTR 15 ELT 4 GTHASHFILE) (24 HashTextPtr) () REHASHFILE D1 (P 1 ACCESS P 0 NAME I 2 VALUETYPE I 1 NEWNAME I 0 HASHFILE F 3 REHASHGAG) z@ bAghg@g @g S o k @k o @H@l B@l X@ HIhd@ SJk h @(118 TERPRI 113 PRIN1 110 ELT 102 OPENHASHFILE 93 CLOSEHASHFILE 88 COPYHASHFILE 85 ELT 76 ELT 67 PRIN1 59 PRIN1 56 ELT 50 SPACES 45 PRIN1 32 HASHFILEPROP 25 PACKFILENAME 22 HASHFILEPROP 3 GTHASHFILE) (29 ACCESS 19 NAME 15 BODY 11 VERSION) ( 64 " ... " 42 "Rehashing") DELETEHASHKEY D1 (I 1 HASHFILE I 0 HASHKEY) Al j Al AlAl k l l Al AlAl k l l Al AlAl k l Al @ Al lD Al (129 FORCEOUTPUT 126 ELT 120 BOUT 115 ELT 109 SETFILEPTR 105 ELT 99 BOUT 93 SETA 88 ELT 79 ELT 72 BOUT 66 RSH 61 SETA 56 ELT 47 ELT 40 BOUT 34 RSH 29 SETA 24 ELT 15 ELT 9 SETFILEPTR 5 ELT) NIL () FIND1STPRIME D1 (P 2 I P 0 P I 0 N) =@k!lHdJJYjIHJdJl԰ hiHiHlԸ(41 \FZEROP) NIL () GETHASHKEY D1 (P 4 RANGE P 3 PROBE P 2 HKEY P 1 DELETED? P 0 PROBE I 3 HASHKEY I 2 DELOK? I 1 HASHFILE I 0 INDEX)  @Al bAl C Al dlDiBjgbI)hH@ CHAl KJlL llAl Al Al Al @Al ` CjC(142 READ 136 ELT 128 SETFILEPTR 122 ELT 114 ELT 105 ELT 99 ELT 84 IMOD 71 ELT 62 GETPROBE 32 ELT 25 SETFILEPTR 21 ELT 12 MAKEHASHKEY 9 ELT) (139 HASHFILERDTBL 49 FREE) () GETPROBE D1 (I 0 KEY) `@d k lk (21 FNTH 13 NTHCHARCODE 7 NCHARS) (2 PROBELST) () GTHASHFILE D1 (I 1 WRITE I 0 HASHFILE) 6@`bA @@dk Ahd@ l@A @o (51 HELP 42 OPENHASHFILE 31 OPENHASHFILE 23 ELT 11 HASHFILEP) (5 SYSHASHFILE) ( 48 "NOT A HASHFILE") HASHFILESPLST1A0001 D1 (I 0 KEY F 0 XWORD) PP@khi @ (16 PRODUCE 10 STRPOS) NIL () HASHFILESPLST1 D1 (I 1 XWORD I 0 HASHFILE) @g (6 MAPHASHFILE) (3 HASHFILESPLST1A0001) () INSERTHASHKEY D1 (I 3 HASHFILE I 2 VALUE I 1 INDEX I 0 HASHKEY) zCl Cl `C Cl j ClCl k Cl Cl l l Cl Cl l l Cl Cl l @ABC (119 REPLACEHASHKEY 112 BOUT 106 ELT 100 ELT 93 BOUT 87 RSH 82 ELT 76 ELT 69 BOUT 63 RSH 58 ELT 52 ELT 46 SETA 41 ELT 32 SETFILEPTR 28 ELT 21 REHASHFILE 11 ELT 5 ELT) (14 HASHLOADFACTOR) () MAKEHASHKEY D1 (P 2 CHARCODE P 1 INDEX I 1 RANGE I 0 KEY) (@` kH IllIJA HX(32 IMOD 6 DCHCON) (3 HASHSCRATCHLST) () REPLACEHASHKEY D1 (I 3 HASHFILE I 2 VALUE I 1 INDEX I 0 HASHKEY) Cl @ Cl lU Cl Cl l l Cl Cl l l Cl Cl l Cl m ACl ` kCl BCl ` Cl (151 FORCEOUTPUT 148 ELT 142 PRINT 136 ELT 129 SPACES 126 ELT 119 PRIN2 113 ELT 106 SETFILEPTR 101 ELT 95 BOUT 89 GETEOFPTR 86 ELT 80 ELT 73 BOUT 67 RSH 62 GETEOFPTR 59 ELT 53 ELT 46 BOUT 40 RSH 35 GETEOFPTR 32 ELT 26 ELT 20 BOUT 15 ELT 9 SETFILEPTR 5 ELT) (139 HASHFILERDTBL 116 HASHFILERDTBL) () SETHASHSTATUS D1 (I 0 HASHFILE) ,@l gg @li @k @`@(28 ELT 22 SETA 14 WHENCLOSE 5 ELT) (41 SYSHASHFILE 37 SYSHASHFILELST 33 SYSHASHFILELST 11 HASHBEFORECLOSE 8 BEFORE) () SPLITKEY D1 (P 0 PTR I 0 KEY) 5`@ H`@kHk @Hk IJdK`@dh(30 SUBATOM 23 SUBATOM 6 STRPOSL) (44 HASHSCRATCHCONSCELL 15 HASHSCRATCHCONSCELL 2 HASHBITTABLE) () (RPAQ? HFGROWTHFACTOR 3) (RPAQ? HASHLOADFACTOR .875) (RPAQ? HASHFILEDEFAULTSIZE 512) (RPAQ? HASHSCRATCHCONSCELL (CONS)) (RPAQ? HASHTEXTCHAR (CHARACTER (CHARCODE ^A))) (RPAQ? HASHFILERDTBL (COPYREADTABLE (QUOTE ORIG))) (RPAQ? HASHSCRATCHLST (CONSTANT (to 40 collect NIL))) (RPAQ? HASHBITTABLE (MAKEBITTABLE (LIST HASHTEXTCHAR))) (RPAQ? REHASHGAG T) (RPAQ? SYSHASHFILE NIL) (RPAQ? SYSHASHFILELST NIL) (RPAQQ PROBELST (1 3 5 7 11 11 13 17 17 19 23 23 29 29 29 31 37 37 37 41 41 43 47 47 53 53 53 59 59 59 61 67)) (RPAQQ HASHACCESSTYPES ((INPUT READ OLD NIL RETRIEVE) (BOTH WRITE OUTPUT T INSERT DELETE REPLACE) ( CREATE DOUBLE NUMBER STRING PRINT FULLPRINT))) (ADDTOVAR AFTERSYSOUTFORMS (CLEARHASHFILES)) optimize-GETHASHFILE D1 (L (2 $$CTX 1 $$ENV 0 $$WHOLE)) !@HggHhHoNIL (16 LOOKUPHASHFILE 12 IGNOREMACRO) ( 26 ((QUOTE RETRIEVE))) (PUTPROP (QUOTE GETHASHFILE) (QUOTE COMPILER:OPTIMIZER-LIST) (UNION (GETPROP (QUOTE GETHASHFILE) ( QUOTE COMPILER:OPTIMIZER-LIST)) (LIST (QUOTE optimize-GETHASHFILE)))) optimize-HASHFILENAME D1 (L (2 $$CTX 1 $$ENV 0 $$WHOLE)) @gHoNIL (8 HASHFILEPROP) ( 13 ((QUOTE NAME))) (PUTPROP (QUOTE HASHFILENAME) (QUOTE COMPILER:OPTIMIZER-LIST) (UNION (GETPROP (QUOTE HASHFILENAME) ( QUOTE COMPILER:OPTIMIZER-LIST)) (LIST (QUOTE optimize-HASHFILENAME)))) (PUTPROPS HASH FILETYPE CL:COMPILE-FILE) (PUTPROPS HASH COPYRIGHT ("Christopher Lane and Xerox Corporation" 1984 1985 1986)) NIL