X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Fdlisp2.lisp;h=433832b9006f5728c766998bbfb5a3a961e03b7c;hb=3a618201c9f2370bb8784217a866d000371769e5;hp=7186fc37a99449596ca304fcb0b02d5d013358c9;hpb=4cf9c8955fc99aa5718eb4b265360578d0de29e0;p=sbcl.git diff --git a/src/pcl/dlisp2.lisp b/src/pcl/dlisp2.lisp index 7186fc3..433832b 100644 --- a/src/pcl/dlisp2.lisp +++ b/src/pcl/dlisp2.lisp @@ -39,7 +39,14 @@ (emit-reader/writer-macro :writer 1 nil))) (2 (if class-slot-p (emit-reader/writer-macro :writer 2 t) - (emit-reader/writer-macro :writer 2 nil)))))) + (emit-reader/writer-macro :writer 2 nil))))) + (:boundp (ecase 1-or-2-class + (1 (if class-slot-p + (emit-reader/writer-macro :boundp 1 t) + (emit-reader/writer-macro :boundp 1 nil))) + (2 (if class-slot-p + (emit-reader/writer-macro :boundp 2 t) + (emit-reader/writer-macro :boundp 2 nil)))))) nil)) (defun emit-one-or-n-index-reader/writer-function @@ -59,7 +66,14 @@ (emit-one-or-n-index-reader/writer-macro :writer t nil)) (if class-slot-p (emit-one-or-n-index-reader/writer-macro :writer nil t) - (emit-one-or-n-index-reader/writer-macro :writer nil nil))))) + (emit-one-or-n-index-reader/writer-macro :writer nil nil)))) + (:boundp (if cached-index-p + (if class-slot-p + (emit-one-or-n-index-reader/writer-macro :boundp t t) + (emit-one-or-n-index-reader/writer-macro :boundp t nil)) + (if class-slot-p + (emit-one-or-n-index-reader/writer-macro :boundp nil t) + (emit-one-or-n-index-reader/writer-macro :boundp nil nil))))) nil)) (defun emit-checking-or-caching-function (cached-emf-p return-value-p metatypes applyp) @@ -75,7 +89,7 @@ (if cached-emf-p (lambda (cache miss-fn) (declare (type function miss-fn)) - #'(sb-kernel:instance-lambda (&rest args) + #'(instance-lambda (&rest args) (declare #.*optimize-speed*) (with-dfun-wrappers (args metatypes) (dfun-wrappers invalid-wrapper-p) @@ -90,7 +104,7 @@ (invoke-emf emf args)))))))) (lambda (cache emf miss-fn) (declare (type function miss-fn)) - #'(sb-kernel:instance-lambda (&rest args) + #'(instance-lambda (&rest args) (declare #.*optimize-speed*) (with-dfun-wrappers (args metatypes) (dfun-wrappers invalid-wrapper-p)