X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fsymbol.lisp;h=557141b2b2e37b147ad5d28219a6199f0e5cafcc;hb=15d6e7c9a2c3234f95dfe278046fa2fee1b0c007;hp=76d7ab3eea0338b9f0fd58cc62f9847f1ca7a853;hpb=e365f2f7a9c66d307b48fee70778f4eaa84bdcc0;p=sbcl.git diff --git a/src/code/symbol.lisp b/src/code/symbol.lisp index 76d7ab3..557141b 100644 --- a/src/code/symbol.lisp +++ b/src/code/symbol.lisp @@ -35,37 +35,23 @@ (about-to-modify-symbol-value symbol) (%set-symbol-value symbol new-value)) -;;; can't do this yet, the appropriate vop only gets defined in -;;; compiler/target/cell, 400 lines hence -;;;(defun %set-symbol-value (symbol new-value) -;;; (%set-symbol-value symbol new-value)) +(defun %set-symbol-value (symbol new-value) + (%set-symbol-value symbol new-value)) (defun makunbound (symbol) #!+sb-doc "Make SYMBOL unbound, removing any value it may currently have." - (set symbol - (%primitive sb!c:make-other-immediate-type - 0 - sb!vm:unbound-marker-widetag)) - symbol) + (with-single-package-locked-error (:symbol symbol "unbinding the symbol ~A") + (set symbol + (%primitive sb!c:make-other-immediate-type + 0 + sb!vm:unbound-marker-widetag)) + symbol)) ;;; Return the built-in hash value for SYMBOL. - -;;; only backends for which a SYMBOL-HASH vop exists. In the past, -;;; when the MIPS backend supported (or nearly did) a generational -;;; (non-conservative) garbage collector, this read (OR X86 MIPS). -;;; Having excised the vestigial support for GENGC, this now only -;;; applies for the x86 port, but if someone were to rework the GENGC -;;; support, this might change again. -- CSR, 2002-08-26 -#!+x86 (defun symbol-hash (symbol) (symbol-hash symbol)) -;;; Compute the hash value for SYMBOL. -#!-x86 -(defun symbol-hash (symbol) - (%sxhash-simple-string (symbol-name symbol))) - (defun symbol-function (symbol) #!+sb-doc "Return SYMBOL's current function definition. Settable with SETF." @@ -73,7 +59,9 @@ (defun (setf symbol-function) (new-value symbol) (declare (type symbol symbol) (type function new-value)) - (setf (%coerce-name-to-fun symbol) new-value)) + (with-single-package-locked-error + (:symbol symbol "setting the symbol-function of ~A") + (setf (%coerce-name-to-fun symbol) new-value))) (defun symbol-plist (symbol) #!+sb-doc