(FILECREATED "24-Sep-86 12:32:30" ("compiled on " {ERIS}LIBRARY>HASH.;24) "16-Sep-86 11:57:30" in "Xerox Lisp 16-Sep-86 ..." dated "16-Sep-86 12:29:41") (FILECREATED "24-Sep-86 12:31:44" {ERIS}LIBRARY>HASH.;24 35334 changes to: (FNS LOOKUPHASHFILE MAPHASHFILE GETHASHKEY) (VARS HASHCOMS) (MACROS PRINTPTR PRINTSTBYTE READPTR READSTBYTE ) (OPTIMIZERS GETHASHFILE) previous date: "30-May-86 10:32:52" {ERIS}LIBRARY>HASH.;21) (RPAQQ HASHCOMS ((* * User Functions) (FNS CLEARHASHFILES CLOSEHASHFILE COLLECTKEYS COPYHASHFILE COPYHASHITEM CREATEHASHFILE GETHASHFILE GETHASHTEXT HASHBEFORECLOSE HASHFILEDATA HASHFILENAME HASHFILEP HASHFILEPROP HASHFILESPLST LOOKUPHASHFILE MAPHASHFILE OPENHASHFILE PUTHASHFILE PUTHASHTEXT REHASHFILE) (* * Internal Functions) (FNS DELETEHASHKEY FIND1STPRIME GETHASHKEY GETPROBE GTHASHFILE HASHFILESPLST1 INSERTHASHKEY MAKEHASHKEY REPLACEHASHKEY SETHASHSTATUS SPLITKEY) (* * 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) (* * 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))) (P (MOVD? (QUOTE NILL) (QUOTE FORCEOUTPUT))) (PROP FILETYPE HASH))) CLEARHASHFILES D1 (I 1 RELEASE I 0 CLOSE) .@ `d`Hl Hl (51Q SETA 41Q CLOSEF? 36Q ELT) (23Q SYSHASHFILELST 17Q SYSHASHFILELST 12Q SYSHASHFILE 5 SYSHASHFILELST) () CLOSEHASHFILE D1 (I 1 REOPEN I 0 HASHFILE) 2@` bd$k@l A@k Ahd@ @k (57Q ELT 51Q OPENHASHFILE 41Q ELT 32Q SETA 27Q CLOSEF? 24Q ELT 10Q HASHFILEP) (5 SYSHASHFILE) () COLLECTKEYSA0001 D1 (I 1 KEY2 I 0 KEY1 F 0 MKSTRING? F 1 KEYLST) P@ @PA AQc(15Q 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(24Q MAPHASHFILE 14Q MAPHASHFILE) (21Q COLLECTKEYSA0002 10Q 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(116Q CLOSEHASHFILE 110Q MAPHASHFILE 76Q CLOSEHASHFILE 60Q CREATEHASHFILE 54Q ELT 45Q ELT 37Q ELT 31Q ELT 17Q HASHFILEPROP 3 GTHASHFILE) (105Q COPYHASHFILEA0001 67Q INPUT 14Q 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(75Q LOOKUPHASHFILE 63Q PUTHASHTEXT 50Q ELT 10Q LOOKUPHASHFILE) (72Q INSERT 36Q 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) `CW``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 lzHj!LkԱ{(375Q SETHASHSTATUS 370Q SETA 360Q SETA 350Q SETA 340Q SETA 330Q SETA 320Q SETA 310Q SETA 305Q FULLNAME 302Q SETA 277Q ELT 263Q SETA 260Q OPENSTREAM 233Q ARRAY 217Q CLOSEF 140Q MAX 102Q RSH 66Q RSH 43Q OPENSTREAM 21Q FIND1STPRIME) (246Q OLD 243Q BOTH 152Q EXPR 145Q EXPR 135Q HASHFILEDEFAULTSIZE 123Q TEXT 31Q NEW 26Q OUTPUT 13Q HFGROWTHFACTOR 10Q HASHFILEDEFAULTSIZE) ( 254Q ((TYPE BINARY)) 37Q ((TYPE BINARY))) GETHASHFILE D1 (P 1 KEY2 P 0 KEY1 I 2 KEY2 I 1 HASHFILE I 0 KEY) @BIHH`I hAg (31Q LOOKUPHASHFILE 20Q PACK*) (26Q RETRIEVE 14Q HASHTEXTCHAR) () GETHASHTEXT D1 (P 0 HASHTEXTPTR I 2 DSTFIL I 1 HASHFILE I 0 KEY) '@hAg HgAl BHH (44Q COPYBYTES 32Q ELT 10Q LOOKUPHASHFILE) (21Q HashTextPtr 5 RETRIEVE) () HASHBEFORECLOSE D1 (P 0 ENTRY I 0 FILE) 1@ `Hd"d`hHl H` h(52Q DREMOVE 42Q SETA 3 FULLNAME) (55Q SYSHASHFILELST 47Q SYSHASHFILELST 32Q SYSHASHFILE 23Q SYSHASHFILE 6 SYSHASHFILELST) () HASHFILEDATA D1 (I 0 HASHFILE) %@ Hk Hl Hl Hl h(35Q ELT 27Q ELT 21Q ELT 13Q 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 @(60Q ELT 46Q ELT 22Q FULLNAME) (32Q SYSHASHFILELST) () HASHFILEPROP D1 (I 2 VALUE I 1 PROP I 0 HASHFILE) @ AdgHl gHl g AdgHk gHl BAHl B AdgHl gHl AdgHl gHl (203Q ELT 166Q ELT 147Q ELT 133Q ELT 113Q SETA 101Q ELT 64Q ELT 46Q GETFILEINFO 40Q ELT 24Q ELT 3 GTHASHFILE) (172Q ITEMLENGTH 155Q #ENTRIES 137Q SIZE 122Q STREAM 70Q COPYFN 54Q NAME 43Q ACCESS 30Q ACCESS 13Q VALUETYPE) () HASHFILESPLSTA0001 D1 (F 0 HASHFILE F 1 XWORD) PQ (4 HASHFILESPLST1) NIL () HASHFILESPLST D1 (I 1 XWORD I 0 HASHFILE) @ bg (15Q GENERATEFN 3 GTHASHFILE) (12Q 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(324Q DELETEHASHKEY 276Q REPLACEHASHKEY 244Q READ 236Q ELT 144Q INSERTHASHKEY 103Q GETHASHKEY 50Q GTHASHFILE 23Q PACK*) (314Q DELETE 304Q DELETE 264Q REPLACE 251Q REPLACE 241Q HASHFILERDTBL 223Q RETRIEVE 210Q RETRIEVE 126Q INSERT 115Q INSERT 72Q INSERT 60Q INSERT 17Q HASHTEXTCHAR 2 MAX.INTEGER) ( 34Q (REPLACE DELETE INSERT)) MAPHASHFILE D1 (P 10Q 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(216Q SPLITKEY 205Q READ 177Q ELT 166Q READ 160Q ELT 151Q SETFILEPTR 144Q ELT 130Q ELT 120Q ELT 107Q ELT 74Q ELT 64Q SETFILEPTR 60Q ELT 22Q NARGS 16Q ELT 3 GTHASHFILE) (202Q HASHFILERDTBL 163Q 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 (406Q SETHASHSTATUS 401Q SETA 376Q FULLNAME 373Q SETA 370Q ELT 354Q SETA 340Q SETA 334Q ELT 322Q SETA 300Q ELT 266Q SETA 260Q ELT 250Q ELT 237Q ELT 225Q SETA 217Q ELT 207Q ELT 176Q ELT 164Q SETA 161Q OPENSTREAM 136Q ARRAY 120Q GETFILEINFO 112Q ELT 70Q FULLNAME 56Q CREATEHASHFILE 21Q MEMB) (350Q BOTH 317Q EXPR 312Q TEXT 147Q OLD 115Q ACCESS 73Q SYSHASHFILELST 43Q CREATE 2 HASHACCESSTYPES) ( 155Q ((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(40Q LOOKUPHASHFILE 20Q PACK*) (35Q DELETE 14Q HASHTEXTCHAR) ( 31Q (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 (106Q PUTHASHFILE 76Q GETEOFPTR 73Q ELT 62Q COPYBYTES 55Q ELT 41Q GETEOFPTR 36Q ELT 24Q SETFILEPTR 17Q ELT 4 GTHASHFILE) (30Q 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 @(166Q TERPRI 161Q PRIN1 156Q ELT 146Q OPENHASHFILE 135Q CLOSEHASHFILE 130Q COPYHASHFILE 125Q ELT 114Q ELT 103Q PRIN1 73Q PRIN1 70Q ELT 62Q SPACES 55Q PRIN1 40Q HASHFILEPROP 31Q PACKFILENAME 26Q HASHFILEPROP 3 GTHASHFILE) (35Q ACCESS 23Q NAME 17Q BODY 13Q VERSION) ( 100Q " ... " 52Q "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 (171Q FORCEOUTPUT 166Q ELT 155Q ELT 147Q SETFILEPTR 143Q ELT 131Q SETA 124Q ELT 113Q ELT 100Q RSH 73Q SETA 66Q ELT 55Q ELT 42Q RSH 35Q SETA 30Q ELT 17Q ELT 11Q SETFILEPTR 5 ELT) NIL () FIND1STPRIME D1 (P 2 I P 0 P I 0 N) =@k!lHdJJYjIHJdJl԰ hiHiHlԸ(51Q \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(216Q READ 210Q ELT 200Q SETFILEPTR 172Q ELT 162Q ELT 151Q ELT 143Q ELT 124Q IMOD 107Q ELT 76Q GETPROBE 40Q ELT 31Q SETFILEPTR 25Q ELT 14Q MAKEHASHKEY 11Q ELT) (213Q HASHFILERDTBL 61Q FREE) () GETPROBE D1 (I 0 KEY) `@d k lk (25Q FNTH 15Q NTHCHARCODE 7 NCHARS) (2 PROBELST) () GTHASHFILE D1 (I 1 WRITE I 0 HASHFILE) 6@`bA @@dk Ahd@ l@A @o (63Q HELP 52Q OPENHASHFILE 37Q OPENHASHFILE 27Q ELT 13Q HASHFILEP) (5 SYSHASHFILE) ( 60Q "NOT A HASHFILE") HASHFILESPLST1A0001 D1 (I 0 KEY F 0 XWORD) PP@khi @ (20Q PRODUCE 12Q 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) tCl Cl `C Cl j ClCl k Cl Cl l l!Cl Cl l l!Cl Cl l!@ABC (161Q REPLACEHASHKEY 146Q ELT 140Q ELT 125Q RSH 120Q ELT 112Q ELT 77Q RSH 72Q ELT 64Q ELT 56Q SETA 51Q ELT 40Q SETFILEPTR 34Q ELT 25Q REHASHFILE 13Q ELT 5 ELT) (16Q HASHLOADFACTOR) () MAKEHASHKEY D1 (P 2 CHARCODE P 1 INDEX I 1 RANGE I 0 KEY) (@` kH IllIJA HX(40Q 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 Cl AH kH BH H Cl (213Q FORCEOUTPUT 210Q ELT 201Q TERPRI 174Q PRIN2 166Q SPACES 160Q PRIN2 150Q ELT 142Q SETFILEPTR 135Q ELT 123Q GETEOFPTR 120Q ELT 112Q ELT 77Q RSH 72Q GETEOFPTR 67Q ELT 61Q ELT 46Q RSH 41Q GETEOFPTR 36Q ELT 30Q ELT 17Q ELT 11Q SETFILEPTR 5 ELT) NIL () SETHASHSTATUS D1 (I 0 HASHFILE) ,@l gg @li @k @`@(34Q ELT 26Q SETA 16Q WHENCLOSE 5 ELT) (51Q SYSHASHFILE 45Q SYSHASHFILELST 41Q SYSHASHFILELST 13Q HASHBEFORECLOSE 10Q BEFORE) () SPLITKEY D1 (P 0 PTR I 0 KEY) 5`@ H`@kHk @Hk IJdK`@dh(36Q SUBATOM 27Q SUBATOM 6 STRPOSL) (54Q HASHSCRATCHCONSCELL 17Q 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 (20Q LOOKUPHASHFILE 14Q IGNOREMACRO) ( 32Q ((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 (10Q HASHFILEPROP) ( 15Q ((QUOTE NAME))) (PUTPROP (QUOTE HASHFILENAME) (QUOTE COMPILER:OPTIMIZER-LIST) (UNION (GETPROP (QUOTE HASHFILENAME) ( QUOTE COMPILER:OPTIMIZER-LIST)) (LIST (QUOTE optimize-HASHFILENAME)))) (MOVD? (QUOTE NILL) (QUOTE FORCEOUTPUT)) (PUTPROPS HASH FILETYPE COMPILE-FILE) (PUTPROPS HASH COPYRIGHT ("Christopher Lane and Xerox Corporation" 1984 1985 1986)) NIL