From b1015fa7812802b2dad8c361f0638433ecb95203 Mon Sep 17 00:00:00 2001 From: Matthias Benkard Date: Wed, 5 Mar 2008 18:47:32 +0100 Subject: SHARED-INITIALIZE :AFTER (SELECTOR ...): Add a note about CMUCL. darcs-hash:8f43001b4a1f23eba62fef3c537b5b2442810c51 --- Lisp/data-types.lisp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Lisp/data-types.lisp b/Lisp/data-types.lisp index 7c08891..f531bbf 100644 --- a/Lisp/data-types.lisp +++ b/Lisp/data-types.lisp @@ -123,12 +123,18 @@ The following calls are all equivalent: &rest initargs &key &allow-other-keys) + ;; FIXME: CMUCL 19d does not allow the second argument to + ;; PCL:SET-FUNCALLABLE-INSTANCE-FUNCTION to be a closure. As we need + ;; to close over SELECTOR, this piece of code throws weird errors on + ;; CMUCL and will not work. + ;; + ;; In particular, one possible symptom is that SELECTOR may not be a + ;; selector but something different when INVOKE-BY-NAME is called. (declare (ignore slot-names initargs)) (c2mop:set-funcallable-instance-function selector #'(lambda (receiver &rest args) - (apply #'invoke-by-name receiver selector args))) - selector) + (apply #'invoke-by-name receiver selector args)))) (defmethod initialize-instance :after ((selector selector) -- cgit v1.2.3