;;; -*- Mode:LISP; Package:SYSTEM-INTERNALS; Readtable:ZL; Base:10 -*-


;;; SUSPECT THAT HASH TABLES MAY BE GETTING REHASH TOO MUCH.
;;;

(OR (FBOUNDP 'Ohash-array-default-rehash)
    (FSET 'Ohash-array-default-rehash #'hash-array-default-rehash ))

(DEFVAR *REHASH-KOUNT* 0)
(DEFVAR *GROW-KOUNT* 0)

(DEFUN HASH-STATS ()
  (FSET 'HASH-ARRAY-DEFAULT-REHASH #'XHASH-ARRAY-DEFAULT-REHASH)
  (FORMAT T "~&REHASH COUNT = ~D,~
             ~%GROW   COUNT = ~D~
             ~%"
	  *REHASH-KOUNT*
	  *GROW-KOUNT*))

(DEFUN Xhash-array-default-rehash (harry grow &optional actual-size)
  (INCF *REHASH-KOUNT*)
  (IF GROW (INCF *GROW-KOUNT*))
  (WHO-LINE-REMARK "REHASH!!!!")
  (OHASH-ARRAY-DEFAULT-REHASH HARRY GROW ACTUAL-SIZE))

(DEFUN WHO-LINE-REMARK (S)
  (SEND tv:who-line-documentation-window :CLEAR-SCREEN)
  (PRINC S tv:who-line-documentation-window))

