0.7.5.11:
[sbcl.git] / src / pcl / slots-boot.lisp
index 998b02b..9fc23ba 100644 (file)
        `(let ,bindings ,form)
        form)))
 
-;;; FIXME: Why is this defined in two different places? And what does
-;;; it mean anyway? And can we just eliminate it completely (replacing
-;;; it with NIL, then hand-eliminating any resulting dead code)?
-(defconstant +optimize-slot-boundp+ nil)
-
 (defmacro accessor-slot-boundp (object slot-name)
   (unless (constantp slot-name)
     (error "~S requires its slot-name argument to be a constant"
           'accessor-slot-boundp))
-  (let* ((slot-name (eval slot-name))
-        (sym (slot-boundp-symbol slot-name)))
-    (if (not +optimize-slot-boundp+)
-       `(slot-boundp-normal ,object ',slot-name)
-       `(asv-funcall ,sym ,slot-name boundp ,object))))
+  (let ((slot-name (eval slot-name)))
+    `(slot-boundp-normal ,object ',slot-name)))
 
 (defun structure-slot-boundp (object)
   (declare (ignore object))
 
 (defun make-structure-slot-boundp-function (slotd)
   (let* ((reader (slot-definition-internal-reader-function slotd))
-        (fun #'(lambda (object)
-                 (not (eq (funcall reader object) +slot-unbound+)))))
+        (fun (lambda (object)
+               (not (eq (funcall reader object) +slot-unbound+)))))
     (declare (type function reader))
     fun))
 
 
 (defun make-optimized-std-reader-method-function (fsc-p slot-name index)
   (declare #.*optimize-speed*)
-  (set-function-name
+  (set-fun-name
    (etypecase index
      (fixnum (if fsc-p
                 (lambda (instance)
 
 (defun make-optimized-std-writer-method-function (fsc-p slot-name index)
   (declare #.*optimize-speed*)
-  (set-function-name
+  (set-fun-name
    (etypecase index
      (fixnum (if fsc-p
                 (lambda (nv instance)
 
 (defun make-optimized-std-boundp-method-function (fsc-p slot-name index)
   (declare #.*optimize-speed*)
-  (set-function-name
+  (set-fun-name
    (etypecase index
      (fixnum (if fsc-p
-                #'(lambda (instance)
-                    (not (eq (clos-slots-ref (fsc-instance-slots instance)
-                                            index)
-                             +slot-unbound+)))
-                #'(lambda (instance)
-                    (not (eq (clos-slots-ref (std-instance-slots instance)
-                                            index)
-                             +slot-unbound+)))))
-     (cons   #'(lambda (instance)
-                (declare (ignore instance))
-                (not (eq (cdr index) +slot-unbound+)))))
+                (lambda (instance)
+                  (not (eq (clos-slots-ref (fsc-instance-slots instance)
+                                           index)
+                           +slot-unbound+)))
+                (lambda (instance)
+                  (not (eq (clos-slots-ref (std-instance-slots instance)
+                                           index)
+                           +slot-unbound+)))))
+     (cons (lambda (instance)
+            (declare (ignore instance))
+            (not (eq (cdr index) +slot-unbound+)))))
    `(boundp ,slot-name)))
 
 (defun make-optimized-structure-slot-value-using-class-method-function (function)
 
 (defun make-optimized-structure-setf-slot-value-using-class-method-function (function)
   (declare (type function function))
-  #'(lambda (nv class object slotd)
-      (declare (ignore class slotd))
-      (funcall function nv object)))
+  (lambda (nv class object slotd)
+    (declare (ignore class slotd))
+    (funcall function nv object)))
 
 (defun make-optimized-structure-slot-boundp-using-class-method-function (function)
   (declare (type function function))
-  #'(lambda (class object slotd)
-      (declare (ignore class slotd))
-      (not (eq (funcall function object) +slot-unbound+))))
+  (lambda (class object slotd)
+    (declare (ignore class slotd))
+    (not (eq (funcall function object) +slot-unbound+))))
 
 (defun get-optimized-std-slot-value-using-class-method-function (class
                                                                 slotd
 (defun get-accessor-from-svuc-method-function (class slotd sdfun name)
   (macrolet ((emf-funcall (emf &rest args)
               `(invoke-effective-method-function ,emf nil ,@args)))
-    (set-function-name
+    (set-fun-name
      (case name
        (reader (lambda (instance)
                 (emf-funcall sdfun class instance slotd)))
      `(,name ,(class-name class) ,(slot-definition-name slotd)))))
 
 (defun make-internal-reader-method-function (class-name slot-name)
-  (list* ':method-spec `(internal-reader-method ,class-name ,slot-name)
+  (list* :method-spec `(internal-reader-method ,class-name ,slot-name)
         (make-method-function
          (lambda (instance)
            (let ((wrapper (get-instance-wrapper-or-nil instance)))
                         (instance-read-internal
                          .pv. instance-slots 1
                          (slot-value instance slot-name))))))))
-    (setf (getf (getf initargs ':plist) ':slot-name-lists)
+    (setf (getf (getf initargs :plist) :slot-name-lists)
          (list (list nil slot-name)))
-    (setf (getf (getf initargs ':plist) ':pv-table-symbol) pv-table-symbol)
-    (list* ':method-spec `(reader-method ,class-name ,slot-name)
+    (setf (getf (getf initargs :plist) :pv-table-symbol) pv-table-symbol)
+    (list* :method-spec `(reader-method ,class-name ,slot-name)
           initargs)))
 
 (defun make-std-writer-method-function (class-name slot-name)
                         (instance-write-internal
                          .pv. instance-slots 1 nv
                          (setf (slot-value instance slot-name) nv))))))))
-    (setf (getf (getf initargs ':plist) ':slot-name-lists)
+    (setf (getf (getf initargs :plist) :slot-name-lists)
          (list nil (list nil slot-name)))
-    (setf (getf (getf initargs ':plist) ':pv-table-symbol) pv-table-symbol)
-    (list* ':method-spec `(writer-method ,class-name ,slot-name)
+    (setf (getf (getf initargs :plist) :pv-table-symbol) pv-table-symbol)
+    (list* :method-spec `(writer-method ,class-name ,slot-name)
           initargs)))
 
 (defun make-std-boundp-method-function (class-name slot-name)
                          (instance-boundp-internal
                           .pv. instance-slots 1
                           (slot-boundp instance slot-name))))))))
-    (setf (getf (getf initargs ':plist) ':slot-name-lists)
+    (setf (getf (getf initargs :plist) :slot-name-lists)
          (list (list nil slot-name)))
-    (setf (getf (getf initargs ':plist) ':pv-table-symbol) pv-table-symbol)
-    (list* ':method-spec `(boundp-method ,class-name ,slot-name)
+    (setf (getf (getf initargs :plist) :pv-table-symbol) pv-table-symbol)
+    (list* :method-spec `(boundp-method ,class-name ,slot-name)
           initargs)))
 
 (defun initialize-internal-slot-gfs (slot-name &optional type)
           (gf (ensure-generic-function name)))
       (unless (generic-function-methods gf)
        (add-writer-method *the-class-slot-object* gf slot-name))))
-  (when (and +optimize-slot-boundp+
-            (or (null type) (eq type 'boundp)))
-    (let* ((name (slot-boundp-symbol slot-name))
-          (gf (ensure-generic-function name)))
-      (unless (generic-function-methods gf)
-       (add-boundp-method *the-class-slot-object* gf slot-name))))
   nil)
 
 (defun initialize-internal-slot-gfs* (readers writers boundps)