0.7.7.9:
[sbcl.git] / src / code / symbol.lisp
index 5bf53d8..437e199 100644 (file)
 
 (declaim (maybe-inline get %put getf remprop %putf get-properties keywordp))
 
-(defun symbol-value (variable)
+(defun symbol-value (symbol)
   #!+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)))
-  (symbol-value variable))
+  (symbol-value symbol))
 
-(defun boundp (variable)
+(defun boundp (symbol)
   #!+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
-  "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 makunbound (variable)
+(defun makunbound (symbol)
   #!+sb-doc
-  "VARIABLE must evaluate to a symbol. This symbol is made unbound,
-  removing any value it may currently have."
-  (set variable
-       (%primitive sb!c:make-other-immediate-type 0 sb!vm:unbound-marker-type))
-  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))
+  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)
-  #!+sb-doc
-  "Return the built-in hash value for symbol."
   (symbol-hash symbol))
 
-(defun symbol-function (variable)
+;;; Compute the hash value for SYMBOL.
+#!-x86
+(defun symbol-hash (symbol)
+  (%sxhash-simple-string (symbol-name symbol)))
+
+(defun symbol-function (symbol)
   #!+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))
-  (setf (raw-definition symbol) new-value))
+  (setf (%coerce-name-to-fun symbol) new-value))
 
-(defun symbol-plist (variable)
+(defun symbol-plist (symbol)
   #!+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 symbol-name (variable)
+(defun symbol-name (symbol)
   #!+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
-  "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))
@@ -89,8 +98,7 @@
 (defun make-symbol (string)
   #!+sb-doc
   "Make and return a new symbol with the STRING as its print name."
-  #!-gengc (make-symbol string)
-  #!+gengc (%make-symbol (random most-positive-fixnum) string))
+  (make-symbol string))
 
 (defun get (symbol indicator &optional (default nil))
   #!+sb-doc
 
 (defun getf (place indicator &optional (default ()))
   #!+sb-doc
-  "Searches the property list stored in Place for an indicator EQ to Indicator.
-  If one is found, the corresponding value is returned, else the Default is
-  returned."
+  "Search the property list stored in Place for an indicator EQ to INDICATOR.
+  If one is found, return the corresponding value, else return DEFAULT."
   (do ((plist place (cddr plist)))
       ((null plist) default)
     (cond ((atom (cdr plist))
 
 (defun get-properties (place indicator-list)
   #!+sb-doc
-  "Like GETF, except that Indicator-List is a list of indicators which will
-  be looked for in the property list stored in Place. Three values are
+  "Like GETF, except that INDICATOR-LIST is a list of indicators which will
+  be looked for in the property list stored in PLACE. Three values are
   returned, see manual for details."
   (do ((plist place (cddr plist)))
       ((null plist) (values nil nil nil))
 
 (defun keywordp (object)
   #!+sb-doc
-  "Returns true if Object is a symbol in the keyword package."
+  "Return true if Object is a symbol in the \"KEYWORD\" package."
   (and (symbolp object)
        (eq (symbol-package object) *keyword-package*)))
 \f
 (defvar *gentemp-counter* 0)
 (declaim (type unsigned-byte *gentemp-counter*))
 
-(defun gentemp (&optional (prefix "T") (package *package*))
+(defun gentemp (&optional (prefix "T") (package (sane-package)))
   #!+sb-doc
-  "Creates a new symbol interned in package Package with the given Prefix."
+  "Creates a new symbol interned in package PACKAGE with the given PREFIX."
   (declare (type string prefix))
   (loop
     (let ((*print-base* 10)