0.8.13.31:
[sbcl.git] / src / code / symbol.lisp
index 76d7ab3..557141b 100644 (file)
   (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