0.pre7.126:
[sbcl.git] / src / pcl / slots-boot.lisp
index 998b02b..bad2c3a 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)))
           (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)