0.6.11.23:
[sbcl.git] / src / pcl / low.lisp
index 1de5266..e9539ec 100644 (file)
      (declare (fixnum ,var))
      ,@body))
 \f
-
-(defmacro instance-ref (slots index)
-  `(svref ,slots ,index))
+(declaim (ftype (function (simple-vector index) t) clos-slots-ref))
+(defun clos-slots-ref (slots index)
+  (svref slots index))
+(declaim (ftype (function (t simple-vector index) t) (setf clos-slots-ref)))
+(defun (setf clos-slots-ref) (new-value slots index)
+  (setf (svref slots index) new-value))
 
 ;;; Note on implementation under CMU CL >=17 and SBCL: STD-INSTANCE-P
 ;;; is only used to discriminate between functions (including FINs)
 ;;; and normal instances, so we can return true on structures also. A
-;;; few uses of (or std-instance-p fsc-instance-p) are changed to
-;;; pcl-instance-p.
+;;; few uses of (OR STD-INSTANCE-P FSC-INSTANCE-P) are changed to
+;;; PCL-INSTANCE-P.
 (defmacro std-instance-p (x)
   `(sb-kernel:%instancep ,x))
 
@@ -93,8 +96,6 @@
   `(wrapper-class* (std-instance-wrapper ,instance)))
 \f
 
-;;; SET-FUNCTION-NAME
-;;;
 ;;; When given a function should give this function the name <new-name>.
 ;;; Note that <new-name> is sometimes a list. Some lisps get the upset
 ;;; in the tummy when they start thinking about functions which have
         (intern (let ((*package* *pcl-package*)
                       (*print-case* :upcase)
                       (*print-pretty* nil)
-                      (*print-gensym* 't))
+                      (*print-gensym* t))
                   (format nil "~S" name))
                 *pcl-package*))))
 \f
 (defun pcl-instance-p (x)
   (typep (sb-kernel:layout-of x) 'wrapper))
 
-;;; We define this as STANDARD-INSTANCE, since we're going to clobber the
-;;; layout with some standard-instance layout as soon as we make it, and we
-;;; want the accessor to still be type-correct.
+;;; We define this as STANDARD-INSTANCE, since we're going to clobber
+;;; the layout with some standard-instance layout as soon as we make
+;;; it, and we want the accessor to still be type-correct.
 (defstruct (standard-instance
            (:predicate nil)
            (:constructor %%allocate-instance--class ())
 (defmacro built-in-or-structure-wrapper (x) `(sb-kernel:layout-of ,x))
 
 (defmacro get-wrapper (inst)
-  (sb-int:once-only ((wrapper `(wrapper-of ,inst)))
+  (once-only ((wrapper `(wrapper-of ,inst)))
     `(progn
-       (assert (typep ,wrapper 'wrapper) () "What kind of instance is this?")
+       (aver (typep ,wrapper 'wrapper))
        ,wrapper)))
 
 ;;; FIXME: could be an inline function (like many other things around
 ;;; here)
 (defmacro get-instance-wrapper-or-nil (inst)
-  (sb-int:once-only ((wrapper `(wrapper-of ,inst)))
+  (once-only ((wrapper `(wrapper-of ,inst)))
     `(if (typep ,wrapper 'wrapper)
         ,wrapper
         nil)))
 
 (defmacro get-slots-or-nil (inst)
-  (sb-int:once-only ((n-inst inst))
+  (once-only ((n-inst inst))
     `(when (pcl-instance-p ,n-inst)
        (if (std-instance-p ,n-inst)
           (std-instance-slots ,n-inst)