diff --git a/code/hash-new.lisp b/code/hash-new.lisp index 8cc14424ff3408fe3699734e9ed50c470fa28027..b233bc9dc9d6cefcf5ea9d6fde125cb1bb10b066 100644 --- a/code/hash-new.lisp +++ b/code/hash-new.lisp @@ -5,7 +5,7 @@ ;;; Carnegie Mellon University, and has been placed in the public domain. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/hash-new.lisp,v 1.39 2006/08/11 18:20:18 rtoy Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/hash-new.lisp,v 1.40 2006/08/14 14:37:30 rtoy Exp $") ;;; ;;; ********************************************************************** ;;; @@ -107,7 +107,8 @@ (defun %print-hash-table (ht stream depth) (declare (ignore depth) (stream stream)) (print-unreadable-object (ht stream :identity t) - (format stream "~A hash table, ~D entr~@:P" + (format stream "~:[~;Weak ~]~A hash table, ~D entr~@:P" + (hash-table-weak-p ht) (symbol-name (hash-table-test ht)) (hash-table-number-entries ht)))) @@ -238,6 +239,15 @@ #-gencgc (when weak-p (format *debug-io* ";; Creating unsupported weak-p hash table~%")) + #+gencgc + (when (and weak-p (not (eq test 'eq))) + ;; I (rtoy) think the current GENCGC code really expects the + ;; test to be EQ, but doesn't enforce it in any way. Let's + ;; warn about it for now. + ;; + ;; XXX: Either fix GC to work with other tests, or change + ;; this warning into an error. + (warn "Creating weak key hashtable with unsupported test: ~S" test)) (let* ((index-vector (make-array length :element-type '(unsigned-byte 32) :initial-element 0))