X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ftarget-sxhash.lisp;h=5fb976226b61a9144c08d80930b759adad32b472;hb=073501ed49414d9638cb41c05fb80627529f796d;hp=c77b2579c3ba2336b1d74c7b2adc53ae953fb632;hpb=17d48b6525fdd5f188961c863e1d1f1d44d29107;p=sbcl.git diff --git a/src/code/target-sxhash.lisp b/src/code/target-sxhash.lisp index c77b257..5fb9762 100644 --- a/src/code/target-sxhash.lisp +++ b/src/code/target-sxhash.lisp @@ -99,7 +99,7 @@ ;;; (unless (string= (gethash hash ht) string) ;;; (format t "collision: ~S ~S~%" string (gethash hash ht))) ;;; (setf (gethash hash ht) string)))) -;;; (format t "final count=~D~%" (hash-table-count ht))) +;;; (format t "final count=~W~%" (hash-table-count ht))) (defun %sxhash-simple-string (x) (declare (optimize speed)) @@ -145,6 +145,13 @@ (logxor 422371266 (sxhash ; through DEFTRANSFORM (class-name (layout-class (%instance-layout x))))) + ;; Nice though it might be to return a nontrivial + ;; hash value for other instances (especially + ;; STANDARD-OBJECTs) there seems to be no good way + ;; to do so. We can't even do the CLASS-NAME trick + ;; (as used above for STRUCTURE-OBJECT) because + ;; then CHANGE-CLASS would cause SXHASH values to + ;; change, ouch! -- WHN recording wisdom of CSR 309518995)) (symbol (sxhash x)) ; through DEFTRANSFORM (array