1
0
mirror of synced 2026-03-10 21:03:22 +00:00

HASHOVERFLOW moved to LLARRAYELT

This commit is contained in:
rmkaplan
2026-02-23 22:29:49 -08:00
parent 7687944866
commit 43251b18be
2 changed files with 252 additions and 124 deletions

View File

@@ -1,14 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "29-Sep-2025 12:51:06" 
{DSK}<Users>kaplan>Local>medley3.5>working-medley>sources>MACHINEINDEPENDENT.;39 119579
(FILECREATED "22-Feb-2026 13:55:06" {WMEDLEY}<sources>MACHINEINDEPENDENT.;40 125302
:EDIT-BY rmk
:CHANGES-TO (VARS MACHINEINDEPENDENTCOMS)
:PREVIOUS-DATE "18-Jan-2024 10:40:56"
{DSK}<Users>kaplan>Local>medley3.5>working-medley>sources>MACHINEINDEPENDENT.;38)
:PREVIOUS-DATE "29-Sep-2025 12:51:06" {WMEDLEY}<sources>MACHINEINDEPENDENT.;39)
(PRETTYCOMPRINT MACHINEINDEPENDENTCOMS)
@@ -19,9 +17,6 @@
(INITVARS (*COMPILED-EXTENSIONS* (LIST FASL.EXT COMPILE.EXT]
(COMS (* ;
 "random machine-independent utilities")
(FNS DMPHASH HASHOVERFLOW)
(DECLARE%: EVAL@COMPILE DONTCOPY (MACROS HASHOVERFLOW.ARRAYTEST
HASHOVERFLOW.UPDATEARRAY))
(FNS BKBUFS CHANGENAME CHNGNM CLBUFS DEFINE FNS.PUTDEF EQMEMB EQUALN FNCHECK FNTYP1
LCSKIP MAPRINT MKLIST NAMEFIELD NLIST PRINTBELLS PROMPTCHAR RAISEP READFILE
READLINE REMPROPLIST RESETBUFS TAB UNSAVED1 WRITEFILE CLOSE-AND-MAYBE-DELETE
@@ -485,104 +480,6 @@
(DEFINEQ
(DMPHASH
[NLAMBDA L (* rmk%: " 6-Apr-84 14:30")
(MAPC L (FUNCTION (LAMBDA (ARRAYNAME)
(DECLARE (SPECVARS ARRAYNAME))
(ERSETQ (PROG ((A (EVALV ARRAYNAME 'DMPHASH))
AP)
[PRINT (LIST 'RPAQ ARRAYNAME
(COND
[(LISTP A)
(SETQ AP (CAR A))
(LIST 'CONS [LIST 'HARRAY (HARRAYSIZE AP)
(KWOTE (HARRAYPROP
AP
'OVERFLOW]
(KWOTE (CDR A]
(T (LIST 'HASHARRAY (HARRAYSIZE A)
(KWOTE (HARRAYPROP AP 'OVERFLOW]
(MAPHASH (OR AP A)
(FUNCTION (LAMBDA (VAL ITEM)
(PRINT (LIST 'PUTHASH (KWOTE ITEM)
(KWOTE VAL)
ARRAYNAME])
(HASHOVERFLOW
[LAMBDA (HARRAY) (* ; "Edited 26-Feb-91 13:16 by jds")
(* ;; "Should be called from PUTHASH on hash overflow, but for implementations where PUTHASH calls ERRORX directly, may be called from ERRORX2 when the offender is a listp. HARRAY is guaranteed to be either HARRAYP or (LIST HARRAYP)")
(PROG ((OLDARRAY (HASHOVERFLOW.ARRAYTEST HARRAY))
NEWARRAY NEWSIZE OLDNUMKEYS OVACTION NEWOVFLW)
[COND
((LISTP HARRAY)
(SETQ OVACTION (CDR HARRAY))
(* ;; "Get OVERFLOW method from original HARRAY since it would erroneously be ERROR if we got the method from the coerced OLDARRAY")
(SETQ NEWOVFLW 'ERROR))
(T (SETQ OVACTION (SETQ NEWOVFLW (HARRAYPROP OLDARRAY 'OVERFLOW]
(SETQ OLDNUMKEYS (HARRAYPROP OLDARRAY 'NUMKEYS))
(* ;; "Compute the new array size:")
[SETQ NEWSIZE (SELECTQ OVACTION
(NIL
(* ;; "SIZE*1.5 --- favor to bbn, since pdp-11 doesnt have floatng point, and LRSH on other systems might be faster than IQUOTIENT")
(* ;;
 "[32749 IS THE BIGGEST PRIME < 32765, THE LIMIT ON ARRAY SIZES]")
[IMAX (+ OLDNUMKEYS 3)
(IMIN 32749 (+ OLDNUMKEYS (LRSH (CL:1+ OLDNUMKEYS)
1])
(ERROR (do (ERRORX (LIST 26 HARRAY))))
(if (FLOATP OVACTION)
then [IMAX (+ OLDNUMKEYS 3)
(IMIN 32760 (FIXR (FTIMES OLDNUMKEYS OVACTION]
elseif (FIXP OVACTION)
then (IMAX (+ OLDNUMKEYS 3)
(IMIN 32749 (+ OLDNUMKEYS OVACTION)))
elseif [AND (FNTYP OVACTION)
(NUMBERP (SETQ OVACTION (APPLY* OVACTION HARRAY]
then (if (FLOATP OVACTION)
then (* ;
 "recompute NUMKEYS since OVACTION might have removed keys")
[IMAX (+ (SETQ OLDNUMKEYS (HARRAYPROP OLDARRAY
'NUMKEYS))
3)
(IMIN 32749 (FIXR (FTIMES OLDNUMKEYS
OVACTION]
else OVACTION)
else (* ; "Default: multiply by 1.5")
(SETQ OLDNUMKEYS (HARRAYPROP OLDARRAY 'NUMKEYS))
(IMAX (+ OLDNUMKEYS 3)
(IMIN 32749 (+ OLDNUMKEYS (LRSH (CL:1+ OLDNUMKEYS)
1]
[SETQ NEWARRAY (REHASH OLDARRAY (HASHARRAY NEWSIZE NEWOVFLW (HARRAYPROP OLDARRAY
'HASHBITSFN)
(HARRAYPROP OLDARRAY 'EQUIVFN]
(HASHOVERFLOW.UPDATEARRAY HARRAY NEWARRAY OLDARRAY)
(RETURN HARRAY])
)
(DECLARE%: EVAL@COMPILE DONTCOPY
(DECLARE%: EVAL@COMPILE
[PROGN (PUTPROPS HASHOVERFLOW.ARRAYTEST MACRO [(HARRAY)
(CAR (OR (LISTP HARRAY)
(ERRORX (LIST 27 HARRAY])
(PUTPROPS HASHOVERFLOW.ARRAYTEST DMACRO ((HARRAY)
(\DTEST HARRAY 'HARRAYP)))]
[PROGN (PUTPROPS HASHOVERFLOW.UPDATEARRAY MACRO ((HARRAY NEWARRAY OLDARRAY)
(FRPLACA HARRAY NEWARRAY)))
(PUTPROPS HASHOVERFLOW.UPDATEARRAY DMACRO ((HARRAY NEWARRAY OLDARRAY)
(\COPYHARRAYP NEWARRAY OLDARRAY)))]
)
)
(DEFINEQ
(BKBUFS
[LAMBDA (BUFS ID) (* DD%: " 6-Oct-81 15:34")
(PROG (L S)
@@ -2494,24 +2391,255 @@ This has little hope of working any more.")
(LOCALVARS . T)
)
(PRETTYCOMPRINT MACHINEINDEPENDENTCOMS)
(RPAQQ MACHINEINDEPENDENTCOMS
([COMS (* ; " %"File loader%"")
(FNS LOAD? FILESLOAD DOFILESLOAD FINDFILE-WITH-EXTENSIONS READ-FILECREATED)
(INITVARS (*COMPILED-EXTENSIONS* (LIST FASL.EXT COMPILE.EXT]
(COMS (* ;
 "random machine-independent utilities")
(FNS BKBUFS CHANGENAME CHNGNM CLBUFS DEFINE FNS.PUTDEF EQMEMB EQUALN FNCHECK FNTYP1
LCSKIP MAPRINT MKLIST NAMEFIELD NLIST PRINTBELLS PROMPTCHAR RAISEP READFILE
READLINE REMPROPLIST RESETBUFS TAB UNSAVED1 WRITEFILE CLOSE-AND-MAYBE-DELETE
UNSAFE.TO.MODIFY)
(VARS UNSAFE.TO.MODIFY.FNS)
(INITVARS (OK.TO.MODIFY.FNS))
[COMS (* ;
 "FILEDATE, for finding out the creation date of source files, from the compiled files.")
(FNS FILEDATE COMPILEFILETYPE)
(* ;; "FASL isn't loaded when MACHINEINDEPENDENT is, so we have to fake the FASL checker for now. It's defined in FASLOAD.")
(P (MOVD? 'NILL 'FASL-FILEDATE]
(P (MOVD? 'CL:FMAKUNBOUND 'UNDOABLY-FMAKUNBOUND))
(* ;
 "used in FNS.PUTDEF before CMLUNDO loaded")
)
(COMS (* ;
 "Functions for retrieving and remembering FILEMAPs and file reader environments")
(FNS FILEMAP \PARSE-FILE-HEADER GET-ENVIRONMENT-AND-FILEMAP
LOOKUP-ENVIRONMENT-AND-FILEMAP GET-FILEMAP-FROM-FILECREATED \FILEMAP-HASHOVERFLOW
FLUSHFILEMAPS LISPSOURCEFILEP LISPFILETYPE GETFILEMAP PUTFILEMAP UPDATEFILEMAP)
[INITVARS (*FILEMAP-LIMIT* 20)
(*FILEMAP-VERSIONS* 2)
(*FILEMAP-HASH* (HASHARRAY *FILEMAP-LIMIT* (FUNCTION \FILEMAP-HASHOVERFLOW)
(FUNCTION STRING-EQUAL-HASHBITS)
(FUNCTION STRING.EQUAL]
(DECLARE%: EVAL@COMPILE DONTCOPY (RECORDS FILEMAPHASH)
(GLOBALVARS *FILEMAP-LIMIT* *FILEMAP-VERSIONS* *FILEMAP-HASH*)))
(COMS (* * LVLPRINT)
(FNS LVLPRINT LVLPRIN1 LVLPRIN2 LVLPRIN LVLPRIN0))
(COMS (* ; "used by PRINTOUT")
(FNS FLUSHRIGHT PRINTPARA PRINTPARA1))
(COMS (* ; "SUBLIS and friends")
(FNS SUBLIS SUBPAIR DSUBLIS))
[COMS (* * CONSTANTS)
(FNS CONSTANTOK)
(P (MOVD? 'EVQ 'CONSTANT)
(MOVD? 'EVQ 'DEFERREDCONSTANT)
(MOVD? 'EVQ 'LOADTIMECONSTANT]
(COMS (* * SCRATCHLIST)
(PROP MACRO SCRATCHLIST ADDTOSCRATCHLIST)
(PROP INFO SCRATCHLIST))
(GLOBALVARS SYSFILES LOADOPTIONS LISPXCOMS CLISPTRANFLG COMMENTFLG HISTSTR4 LISPXREADFN
REREADFLG HISTSTR0 CTRLUFLG NOLINKMESS PROMPTCHARFORMS PROMPT#FLG FILERDTBL SPELLINGS2
USERWORDS BELLS CLISPARRAY)
(FNS NLAMBDA.ARGS)
[DECLARE%:
DONTEVAL@LOAD DOCOPY (* ;
 "initialization of variables used in many places")
(ADDVARS (CLISPARRAY)
(CLISPFLG)
(CTRLUFLG)
(EDITCALLS)
(EDITHISTORY)
(EDITUNDOSAVES)
(EDITUNDOSTATS)
(GLOBALVARS)
(LCASEFLG)
(LISPXBUFS)
(LISPXCOMS)
(LISPXFNS)
(LISPXHIST)
(LISPXHISTORY)
(LISPXPRINTFLG)
(NOCLEARSTKLST)
(NOFIXFNSLST)
(NOFIXVARSLST)
(P.A.STATS)
(PROMPTCHARFORMS)
(READBUF)
(READBUFSOURCE)
(REREADFLG)
(RESETSTATE)
(SPELLSTATS1))
(INITVARS (CHCONLST '(NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL
NIL NIL NIL))
(CHCONLST1 '(NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL
NIL NIL))
(CHCONLST2 '(NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL
NIL NIL))
(CLEARSTKLST T)
(CLISPTRANFLG 'CLISP% )
(HISTSTR0 "<c.r.>")
(HISTSTR2 "repeat")
(HISTSTR3 "from event:")
(HISTSTR4 "ignore")
(LISPXREADFN 'READ)
(USEMAPFLG T))
(P [MAPC '((APPLY BLKAPPLY)
(SETTOPVAL SETATOMVAL)
(GETTOPVAL GETATOMVAL)
(APPLY* BLKAPPLY*)
(RPLACA FRPLACA)
(RPLACD FRPLACD)
(STKNTH FSTKNTH)
(STKNAME FSTKNAME)
(CHARACTER FCHARACTER)
(STKARG FSTKARG)
(CHCON DCHCON)
(UNPACK DUNPACK)
(ADDPROP /ADDPROP)
(ATTACH /ATTACH)
(DREMOVE /DREMOVE)
(DSUBST /DSUBST)
(NCONC /NCONC)
(NCONC1 /NCONC1)
(PUT /PUT)
(PUTPROP /PUTPROP)
(PUTD /PUTD)
(REMPROP /REMPROP)
(RPLACA /RPLACA)
(RPLACD /RPLACD)
(SET /SET)
(SETATOMVAL /SETATOMVAL)
(SETTOPVAL /SETTOPVAL)
(SETPROPLIST /SETPROPLIST)
(SET SAVESET)
(PRINT LISPXPRINT)
(PRIN1 LISPXPRIN1)
(PRIN2 LISPXPRIN2)
(SPACES LISPXSPACES)
(TAB LISPXTAB)
(TERPRI LISPXTERPRI)
(PRINT SHOWPRINT)
(PRIN2 SHOWPRIN2)
(PUTHASH /PUTHASH)
'*
(FNCLOSER /FNCLOSER)
(FNCLOSERA /FNCLOSERA)
(FNCLOSERD /FNCLOSERD)
(EVQ DELFILE)
(NILL SMASHFILECOMS)
(PUTASSOC /PUTASSOC)
(LISTPUT1 PUTL)
(NILL I.S.OPR)
(NILL RESETUNDO)
(NILL LISPXWATCH)
'ADDSTATS
(NILL FREEVARS)
'USEDFREE
(COPYBYTES COPYCHARS))
(FUNCTION (LAMBDA (X)
(MOVD? (CAR X)
(CADR X]
[MAPC '((TIME PRIN1 LISPXPRIN1)
(TIME SPACES LISPXSPACES)
(TIME PRINT LISPXPRINT)
(DEFC PRINT LISPXPRINT)
(DEFC PUTD /PUTD)
(DEFC PUTPROP /PUTPROP)
(DOLINK FNCLOSERD /FNCLOSERD)
(DOLINK FNCLOSERA /FNCLOSERA)
(DEFLIST PUTPROP /PUTPROP)
(SAVEDEF1 PUTPROP /PUTPROP)
(MKSWAPBLOCK PUTD /PUTD))
(FUNCTION (LAMBDA (X)
(AND (CCODEP (CAR X))
(APPLY 'CHANGENAME X]
(MAPC '[[EVALQT (LAMBDA NIL (PROG (TEM)
(RESETRESTORE NIL 'RESET)
LP
(PROMPTCHAR '_ T)
(LISPX (LISPXREAD T T))
(GO LP]
[LISPX (LAMBDA (LISPXX)
(PRINT [AND LISPXX (PROG (LISPXLINE LISPXHIST TEM)
(RETURN (COND ((AND (NLISTP LISPXX)
(SETQ LISPXLINE
(READLINE T NIL
T)))
(APPLY LISPXX (CAR
LISPXLINE
)))
(T (EVAL LISPXX]
T T]
[LISPXREAD (LAMBDA (FILE RDTBL)
(COND [READBUF (PROG1 (CAR READBUF)
(SETQ READBUF (CDR READBUF)))]
(T (READ FILE RDTBL]
[LISPXREADP (LAMBDA (FLG)
(COND ((AND READBUF (SETQ READBUF (LISPXREADBUF READBUF)))
T)
(T (READP T FLG]
[LISPXUNREAD (LAMBDA (LST)
(SETQ READBUF (APPEND LST (CONS HISTSTR0 READBUF]
[LISPXREADBUF (LAMBDA (RDBUF)
(PROG NIL LP (COND ((NLISTP RDBUF)
(RETURN NIL))
((EQ (CAR RDBUF)
HISTSTR0)
(SETQ RDBUF (CDR RDBUF))
(GO LP))
(T (RETURN RDBUF]
[LISPX/ (LAMBDA (X)
X]
[LOWERCASE (LAMBDA (FLG)
(PROG1 LCASEFLG
(RAISE (NULL FLG))
(RPAQ LCASEFLG FLG))]
[FILEPOS (LAMBDA (STR FILE)
(PROG NIL LP (COND ((EQ (PEEKC FILE)
(NTHCHAR STR 1))
(RETURN T)))
(READC FILE)
(GO LP]
(FILEPKGCOM (NLAMBDA NIL NIL]
(FUNCTION (LAMBDA (L)
(OR (GETD (CAR L))
(PUTD (CAR L)
(CADR L]
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA RESETBUFS
FILESLOAD)
(NLAML FILEMAP)
(LAMA READFILE NLIST)))
(LOCALVARS . T)))
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS
(ADDTOVAR NLAMA RESETBUFS FILESLOAD)
(ADDTOVAR NLAML FILEMAP)
(ADDTOVAR LAMA READFILE NLIST)
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (12643 26068 (LOAD? 12653 . 14504) (FILESLOAD 14506 . 14795) (DOFILESLOAD 14797 . 22423)
(FINDFILE-WITH-EXTENSIONS 22425 . 25624) (READ-FILECREATED 25626 . 26066)) (26185 31506 (DMPHASH
26195 . 27789) (HASHOVERFLOW 27791 . 31504)) (32262 64370 (BKBUFS 32272 . 33391) (CHANGENAME 33393 .
33654) (CHNGNM 33656 . 35504) (CLBUFS 35506 . 36779) (DEFINE 36781 . 37505) (FNS.PUTDEF 37507 . 40922)
(EQMEMB 40924 . 41106) (EQUALN 41108 . 41937) (FNCHECK 41939 . 43946) (FNTYP1 43948 . 44045) (LCSKIP
44047 . 44891) (MAPRINT 44893 . 45839) (MKLIST 45841 . 45991) (NAMEFIELD 45993 . 47518) (NLIST 47520
. 47855) (PRINTBELLS 47857 . 47983) (PROMPTCHAR 47985 . 49875) (RAISEP 49877 . 50138) (READFILE 50140
. 52484) (READLINE 52486 . 57926) (REMPROPLIST 57928 . 58816) (RESETBUFS 58818 . 59268) (TAB 59270 .
59866) (UNSAVED1 59868 . 60973) (WRITEFILE 60975 . 62717) (CLOSE-AND-MAYBE-DELETE 62719 . 63063) (
UNSAFE.TO.MODIFY 63065 . 64368)) (66589 71430 (FILEDATE 66599 . 69531) (COMPILEFILETYPE 69533 . 71428)
) (71796 98999 (FILEMAP 71806 . 72276) (\PARSE-FILE-HEADER 72278 . 76093) (GET-ENVIRONMENT-AND-FILEMAP
76095 . 78322) (LOOKUP-ENVIRONMENT-AND-FILEMAP 78324 . 80515) (GET-FILEMAP-FROM-FILECREATED 80517 .
81341) (\FILEMAP-HASHOVERFLOW 81343 . 86007) (FLUSHFILEMAPS 86009 . 86632) (LISPSOURCEFILEP 86634 .
88026) (LISPFILETYPE 88028 . 91277) (GETFILEMAP 91279 . 91698) (PUTFILEMAP 91700 . 93891) (
UPDATEFILEMAP 93893 . 98997)) (99665 103251 (LVLPRINT 99675 . 99848) (LVLPRIN1 99850 . 100032) (
LVLPRIN2 100034 . 100266) (LVLPRIN 100268 . 101282) (LVLPRIN0 101284 . 103249)) (103285 108202 (
FLUSHRIGHT 103295 . 104110) (PRINTPARA 104112 . 105210) (PRINTPARA1 105212 . 108200)) (108238 110523 (
SUBLIS 108248 . 108856) (SUBPAIR 108858 . 110086) (DSUBLIS 110088 . 110521)) (110546 111146 (
CONSTANTOK 110556 . 111144)) (112899 113604 (NLAMBDA.ARGS 112909 . 113602)))))
(FILEMAP (NIL (12360 25785 (LOAD? 12370 . 14221) (FILESLOAD 14223 . 14512) (DOFILESLOAD 14514 . 22140)
(FINDFILE-WITH-EXTENSIONS 22142 . 25341) (READ-FILECREATED 25343 . 25783)) (25902 58010 (BKBUFS 25912
. 27031) (CHANGENAME 27033 . 27294) (CHNGNM 27296 . 29144) (CLBUFS 29146 . 30419) (DEFINE 30421 .
31145) (FNS.PUTDEF 31147 . 34562) (EQMEMB 34564 . 34746) (EQUALN 34748 . 35577) (FNCHECK 35579 . 37586
) (FNTYP1 37588 . 37685) (LCSKIP 37687 . 38531) (MAPRINT 38533 . 39479) (MKLIST 39481 . 39631) (
NAMEFIELD 39633 . 41158) (NLIST 41160 . 41495) (PRINTBELLS 41497 . 41623) (PROMPTCHAR 41625 . 43515) (
RAISEP 43517 . 43778) (READFILE 43780 . 46124) (READLINE 46126 . 51566) (REMPROPLIST 51568 . 52456) (
RESETBUFS 52458 . 52908) (TAB 52910 . 53506) (UNSAVED1 53508 . 54613) (WRITEFILE 54615 . 56357) (
CLOSE-AND-MAYBE-DELETE 56359 . 56703) (UNSAFE.TO.MODIFY 56705 . 58008)) (60229 65070 (FILEDATE 60239
. 63171) (COMPILEFILETYPE 63173 . 65068)) (65436 92639 (FILEMAP 65446 . 65916) (\PARSE-FILE-HEADER
65918 . 69733) (GET-ENVIRONMENT-AND-FILEMAP 69735 . 71962) (LOOKUP-ENVIRONMENT-AND-FILEMAP 71964 .
74155) (GET-FILEMAP-FROM-FILECREATED 74157 . 74981) (\FILEMAP-HASHOVERFLOW 74983 . 79647) (
FLUSHFILEMAPS 79649 . 80272) (LISPSOURCEFILEP 80274 . 81666) (LISPFILETYPE 81668 . 84917) (GETFILEMAP
84919 . 85338) (PUTFILEMAP 85340 . 87531) (UPDATEFILEMAP 87533 . 92637)) (93305 96891 (LVLPRINT 93315
. 93488) (LVLPRIN1 93490 . 93672) (LVLPRIN2 93674 . 93906) (LVLPRIN 93908 . 94922) (LVLPRIN0 94924 .
96889)) (96925 101842 (FLUSHRIGHT 96935 . 97750) (PRINTPARA 97752 . 98850) (PRINTPARA1 98852 . 101840)
) (101878 104163 (SUBLIS 101888 . 102496) (SUBPAIR 102498 . 103726) (DSUBLIS 103728 . 104161)) (104186
104786 (CONSTANTOK 104196 . 104784)) (106539 107244 (NLAMBDA.ARGS 106549 . 107242)))))
STOP

Binary file not shown.