0.8.14.27:
[sbcl.git] / src / pcl / braid.lisp
index 1a8b077..3b87419 100644 (file)
@@ -97,8 +97,7 @@
 (defmacro !initial-classes-and-wrappers (&rest classes)
   `(progn
      ,@(mapcar (lambda (class)
-                (let ((wr (intern (format nil "~A-WRAPPER" class)
-                                  *pcl-package*)))
+                (let ((wr (format-symbol *pcl-package* "~A-WRAPPER" class)))
                   `(setf ,wr ,(if (eq class 'standard-generic-function)
                                   '*sgf-wrapper*
                                   `(boot-make-wrapper
                                   (boot-make-wrapper (length slots) name))))
                   (proto nil))
              (when (eq name t) (setq *the-wrapper-of-t* wrapper))
-             (set (intern (format nil "*THE-CLASS-~A*" (symbol-name name))
-                          *pcl-package*)
-                  class)
+             (set (make-class-symbol name) class)
              (dolist (slot slots)
                (unless (eq (getf slot :allocation :instance) :instance)
                  (error "Slot allocation ~S is not supported in bootstrap."
                                     class)
                spec))
     (set-slot 'class-precedence-list (classes cpl))
+    (set-slot 'cpl-available-p t)
     (set-slot 'can-precede-list (classes (cdr cpl)))
     (set-slot 'incompatible-superclass-list nil)
     (set-slot 'direct-superclasses (classes direct-supers))
        (set-val 'location index)
        (let ((fsc-p nil))
          (set-val 'reader-function (make-optimized-std-reader-method-function
-                                    fsc-p slot-name index))
+                                    fsc-p nil slot-name index))
          (set-val 'writer-function (make-optimized-std-writer-method-function
-                                    fsc-p slot-name index))
+                                    fsc-p nil slot-name index))
          (set-val 'boundp-function (make-optimized-std-boundp-method-function
-                                    fsc-p slot-name index)))
+                                    fsc-p nil slot-name index)))
        (set-val 'accessor-flags 7)
        (let ((table (or (gethash slot-name *name->class->slotd-table*)
                         (setf (gethash slot-name *name->class->slotd-table*)
                        (list class-name)
                        (list class-name)
                        "automatically generated boundp method")))
-    (let ((gf (ensure-generic-function accessor-name)))
+    (let ((gf (ensure-generic-function accessor-name
+                                      :lambda-list arglist)))
       (if (find specls (early-gf-methods gf)
                :key #'early-method-specializers
                :test 'equal)
                     `(: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))))
     (cond ((structure-type-p name)
           (ensure 'structure-class
                   (mapcar #'slot-initargs-from-structure-slotd
 (pushnew 'maybe-reinitialize-structure-class sb-kernel::*defstruct-hooks*)
 \f
 (defun make-class-predicate (class name)
-  (let* ((gf (ensure-generic-function name))
+  (let* ((gf (ensure-generic-function name :lambda-list '(object)))
         (mlist (if (eq *boot-state* 'complete)
                    (generic-function-methods gf)
                    (early-gf-methods gf))))