(defmacro !initial-classes-and-wrappers (&rest classes)
`(progn
,@(mapcar (lambda (class)
(defmacro !initial-classes-and-wrappers (&rest classes)
`(progn
,@(mapcar (lambda (class)
(dolist (slot slots)
(unless (eq (getf slot :allocation :instance) :instance)
(error "Slot allocation ~S is not supported in bootstrap."
(dolist (slot slots)
(unless (eq (getf slot :allocation :instance) :instance)
(error "Slot allocation ~S is not supported in bootstrap."
(set-slot 'can-precede-list (classes (cdr cpl)))
(set-slot 'incompatible-superclass-list nil)
(set-slot 'direct-superclasses (classes direct-supers))
(set-slot 'can-precede-list (classes (cdr cpl)))
(set-slot 'incompatible-superclass-list nil)
(set-slot 'direct-superclasses (classes direct-supers))
(set-val 'accessor-flags 7)
(let ((table (or (gethash slot-name *name->class->slotd-table*)
(setf (gethash slot-name *name->class->slotd-table*)
(set-val 'accessor-flags 7)
(let ((table (or (gethash slot-name *name->class->slotd-table*)
(setf (gethash slot-name *name->class->slotd-table*)
`(:initfunction ,form-or-fun)
`(:initform ,form-or-fun
:initfunction ,(lambda () form-or-fun)))))
`(:initfunction ,form-or-fun)
`(:initform ,form-or-fun
:initfunction ,(lambda () form-or-fun)))))
- :allocation (condition-slot-allocation slot)
- :documentation (condition-slot-documentation slot))))
+ :allocation ,(condition-slot-allocation slot)
+ :documentation ,(condition-slot-documentation slot))))
(pushnew 'maybe-reinitialize-structure-class sb-kernel::*defstruct-hooks*)
\f
(defun make-class-predicate (class name)
(pushnew 'maybe-reinitialize-structure-class sb-kernel::*defstruct-hooks*)
\f
(defun make-class-predicate (class name)