0.8.7.52:
[sbcl.git] / src / code / symbol.lisp
index efe46a4..e1143df 100644 (file)
 
 (declaim (maybe-inline get %put getf remprop %putf get-properties keywordp))
 
 
 (declaim (maybe-inline get %put getf remprop %putf get-properties keywordp))
 
-(defun symbol-value (variable)
+(defun symbol-value (symbol)
   #!+sb-doc
   #!+sb-doc
-  "VARIABLE must evaluate to a symbol. This symbol's current special
-  value is returned."
+  "Return SYMBOL's current bound value."
   (declare (optimize (safety 1)))
   (declare (optimize (safety 1)))
-  (symbol-value variable))
+  (symbol-value symbol))
 
 
-(defun boundp (variable)
+(defun boundp (symbol)
   #!+sb-doc
   #!+sb-doc
-  "VARIABLE must evaluate to a symbol. Return NIL if this symbol is
-  unbound, T if it has a value."
-  (boundp variable))
+  "Return non-NIL if SYMBOL is bound to a value."
+  (boundp symbol))
 
 
-(defun set (variable new-value)
+(defun set (symbol new-value)
   #!+sb-doc
   #!+sb-doc
-  "VARIABLE must evaluate to a symbol. This symbol's special value cell is
-  set to the specified new value."
-  (declare (type symbol variable))
-  (about-to-modify variable)
-  (%set-symbol-value variable new-value))
+  "Set SYMBOL's value cell to NEW-VALUE."
+  (declare (type symbol symbol))
+  (about-to-modify-symbol-value symbol)
+  (%set-symbol-value symbol new-value))
 
 (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 (variable)
+(defun makunbound (symbol)
   #!+sb-doc
   #!+sb-doc
-  "VARIABLE must evaluate to a symbol. This symbol is made unbound,
-  removing any value it may currently have."
-  (set variable
+  "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))
        (%primitive sb!c:make-other-immediate-type
                   0
                   sb!vm:unbound-marker-widetag))
-  variable)
+  symbol)
+
+;;; Return the built-in hash value for SYMBOL.
 
 
-#!+(or x86 mips) ;; only backends for which a symbol-hash vop exists
+;;; 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)
 (defun symbol-hash (symbol)
-  #!+sb-doc
-  "Return the built-in hash value for symbol."
   (symbol-hash symbol))
 
   (symbol-hash symbol))
 
-#!-(or x86 mips)
+;;; Compute the hash value for SYMBOL.
+#!-x86
 (defun symbol-hash (symbol)
 (defun symbol-hash (symbol)
-  #!+sb-doc
-  "Return the built-in hash value for symbol."
   (%sxhash-simple-string (symbol-name symbol)))
 
   (%sxhash-simple-string (symbol-name symbol)))
 
-
-(defun symbol-function (variable)
+(defun symbol-function (symbol)
   #!+sb-doc
   #!+sb-doc
-  "VARIABLE must evaluate to a symbol. This symbol's current definition
-   is returned. Settable with SETF."
-  (raw-definition variable))
+  "Return SYMBOL's current function definition. Settable with SETF."
+  (%coerce-name-to-fun symbol))
 
 
-(defun fset (symbol new-value)
+(defun (setf symbol-function) (new-value symbol)
   (declare (type symbol symbol) (type function new-value))
   (declare (type symbol symbol) (type function new-value))
-  (setf (raw-definition symbol) new-value))
+  (setf (%coerce-name-to-fun symbol) new-value))
 
 
-(defun symbol-plist (variable)
+(defun symbol-plist (symbol)
   #!+sb-doc
   #!+sb-doc
-  "Return the property list of a symbol."
-  (symbol-plist variable))
+  "Return SYMBOL's property list."
+  (symbol-plist symbol))
 
 (defun %set-symbol-plist (symbol new-value)
   (setf (symbol-plist symbol) new-value))
 
 
 (defun %set-symbol-plist (symbol new-value)
   (setf (symbol-plist symbol) new-value))
 
-(defun symbol-name (variable)
+(defun symbol-name (symbol)
   #!+sb-doc
   #!+sb-doc
-  "Return the print name of a symbol."
-  (symbol-name variable))
+  "Return SYMBOL's name as a string."
+  (symbol-name symbol))
 
 
-(defun symbol-package (variable)
+(defun symbol-package (symbol)
   #!+sb-doc
   #!+sb-doc
-  "Return the package a symbol is interned in, or NIL if none."
-  (symbol-package variable))
+  "Return the package SYMBOL was interned in, or NIL if none."
+  (symbol-package symbol))
 
 (defun %set-symbol-package (symbol package)
   (declare (type symbol symbol))
 
 (defun %set-symbol-package (symbol package)
   (declare (type symbol symbol))
   (do ((plist place (cddr plist)))
       ((null plist) default)
     (cond ((atom (cdr plist))
   (do ((plist place (cddr plist)))
       ((null plist) default)
     (cond ((atom (cdr plist))
-          (error "~S is a malformed property list."
-                 place))
+          (error 'simple-type-error
+                 :format-control "malformed property list: ~S."
+                 :format-arguments (list place)
+                 :datum (cdr plist)
+                 :expected-type 'cons))
          ((eq (car plist) indicator)
           (return (cadr plist))))))
 
          ((eq (car plist) indicator)
           (return (cadr plist))))))
 
   (do ((plist place (cddr plist)))
       ((null plist) (values nil nil nil))
     (cond ((atom (cdr plist))
   (do ((plist place (cddr plist)))
       ((null plist) (values nil nil nil))
     (cond ((atom (cdr plist))
-          (error "~S is a malformed proprty list."
-                 place))
+          (error 'simple-type-error
+                 :format-control "malformed property list: ~S."
+                 :format-arguments (list place)
+                 :datum (cdr plist)
+                 :expected-type 'cons))
          ((memq (car plist) indicator-list)
           (return (values (car plist) (cadr plist) plist))))))
 
          ((memq (car plist) indicator-list)
           (return (values (car plist) (cadr plist) plist))))))