From 5e8e4ba8abf8692720b5c5d64ba9530f08899dab Mon Sep 17 00:00:00 2001 From: rtoy <rtoy> Date: Sat, 15 May 2004 18:30:47 +0000 Subject: [PATCH] Make the symbol hash slot contain the sxhash of the symbol name instead of a random value, just like on sparc. --- code/hash-new.lisp | 6 +++--- code/symbol.lisp | 6 +++--- compiler/generic/new-genesis.lisp | 5 ++--- compiler/generic/objdef.lisp | 15 +++++++-------- compiler/x86/alloc.lisp | 3 ++- 5 files changed, 17 insertions(+), 18 deletions(-) diff --git a/code/hash-new.lisp b/code/hash-new.lisp index 12629a84e..13c9e997e 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.29 2004/05/14 13:40:18 rtoy Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/hash-new.lisp,v 1.30 2004/05/15 18:30:46 rtoy Exp $") ;;; ;;; ********************************************************************** ;;; @@ -929,8 +929,8 @@ (sxhash-instance s-expr))) ;; Other-pointer types. (simple-string (sxhash-simple-string s-expr)) - (symbol #-sparc (sxhash-simple-string (symbol-name s-expr)) - #+sparc (kernel:symbol-hash s-expr)) + (symbol #-(or sparc x86) (sxhash-simple-string (symbol-name s-expr)) + #+(or sparc x86) (kernel:symbol-hash s-expr)) (number (etypecase s-expr (integer (ldb sxhash-bits-byte s-expr)) diff --git a/code/symbol.lisp b/code/symbol.lisp index 6193f2ac3..2eca7d75c 100644 --- a/code/symbol.lisp +++ b/code/symbol.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/symbol.lisp,v 1.33 2004/05/14 13:40:18 rtoy Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/symbol.lisp,v 1.34 2004/05/15 18:30:46 rtoy Exp $") ;;; ;;; ********************************************************************** ;;; @@ -96,9 +96,9 @@ (defun make-symbol (string) "Make and return a new symbol with the STRING as its print name." - #-(or gengc sparc) (make-symbol string) + #-(or gengc x86 sparc) (make-symbol string) #+gengc (%make-symbol (random most-positive-fixnum) string) - #+sparc (%make-symbol (sxhash string) string)) + #+(or sparc x86) (%make-symbol (sxhash string) string)) #+(or gengc x86 sparc) (defun symbol-hash (symbol) diff --git a/compiler/generic/new-genesis.lisp b/compiler/generic/new-genesis.lisp index 5e5b750d4..7f7571734 100644 --- a/compiler/generic/new-genesis.lisp +++ b/compiler/generic/new-genesis.lisp @@ -4,7 +4,7 @@ ;;; Carnegie Mellon University, and has been placed in the public domain. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/generic/new-genesis.lisp,v 1.65 2004/05/14 13:40:18 rtoy Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/generic/new-genesis.lisp,v 1.66 2004/05/15 18:30:47 rtoy Exp $") ;;; ;;; ********************************************************************** ;;; @@ -565,8 +565,7 @@ (c:backend-featurep :sparc)) (let ((offset #+(or x86 sparc) vm:symbol-hash-slot #-(or x86 sparc) vm:symbol-unused-slot) - (value #+x86 (1+ (random vm:target-most-positive-fixnum)) - #+sparc (sxhash name))) + (value (sxhash name))) (write-indexed symbol offset (make-fixnum-descriptor value)))) diff --git a/compiler/generic/objdef.lisp b/compiler/generic/objdef.lisp index 9a30aa898..310285962 100644 --- a/compiler/generic/objdef.lisp +++ b/compiler/generic/objdef.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/compiler/generic/objdef.lisp,v 1.51 2004/05/14 13:40:19 rtoy Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/generic/objdef.lisp,v 1.52 2004/05/15 18:30:47 rtoy Exp $") ;;; ;;; ********************************************************************** ;;; @@ -466,29 +466,28 @@ ;;;; Symbols -#+(or gengc sparc) +#+(or gengc sparc x86) (defknown %make-symbol (index simple-string) symbol (flushable movable)) -#+(or gengc sparc) +#+(or gengc sparc x86) (defknown symbol-hash (symbol) index (flushable movable)) -#+x86 +#+(and nil x86) (defknown symbol-hash (symbol) lisp::hash (flushable movable)) (define-primitive-object (symbol :lowtag other-pointer-type :header symbol-header-type - #-x86 :alloc-trans + :alloc-trans #-(or gengc x86 sparc) make-symbol - #+(or gengc sparc) %make-symbol) + #+(or gengc x86 sparc) %make-symbol) (value :set-trans %set-symbol-value :init :unbound) #-(or gengc x86 sparc) unused - #+(or gengc sparc) + #+(or gengc x86 sparc) (hash :init :arg) - #+x86 (hash) (plist :ref-trans symbol-plist :set-trans %set-symbol-plist :init :null) diff --git a/compiler/x86/alloc.lisp b/compiler/x86/alloc.lisp index 3d83f980e..8379c1ddf 100644 --- a/compiler/x86/alloc.lisp +++ b/compiler/x86/alloc.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/x86/alloc.lisp,v 1.11 2003/08/25 20:50:58 gerd Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/x86/alloc.lisp,v 1.12 2004/05/15 18:30:47 rtoy Exp $") ;;; ;;; ********************************************************************** ;;; @@ -255,6 +255,7 @@ +#+nil (define-vop (make-symbol) (:policy :fast-safe) (:translate make-symbol) -- GitLab