(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))
`(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)