From: Paul N. <pn...@va...> - 2013-09-12 15:33:33
Attachments:
signature.asc
|
Dear SBCL developers, I encountered this condition last night, which encouraged me to report it. I was able to reproduce this condition on 1.1.8 and 1.1.11 on OSX 10.8. Note that the fix for the condition being thrown is that the set-funcallable-instance-function is being called on callable, not referent, so the code itself is somewhat incoherent. However, I would suspect that this should not result in a failed AVER and a request to mail the bug. :-) Thank you for your time. ;; failed AVER: (FUNCALLABLE-INSTANCE-P FIN) ;; 0: (SB-INT:BUG "~@<failed AVER: ~2I~_~A~:>" (SB-KERNEL:FUNCALLABLE-INSTANCE-P SB-PCL::FIN)) ;; 1: (SB-IMPL::%FAILED-AVER (SB-KERNEL:FUNCALLABLE-INSTANCE-P SB-PCL::FIN)) ;; 2: (SB-MOP:SET-FUNCALLABLE-INSTANCE-FUNCTION NIL #<CLOSURE (LAMBDA (SEQUENCE) :IN INITIALIZE-INSTANCE) {1004FDA37B}>) ;; 3: ((SB-PCL::EMF INITIALIZE-INSTANCE) #<unused argument> #<unused argument> #<COLUMN-REFERENT {1004FB7CBB}> :ACCESSOR 0) ;; 4: ((:METHOD MAKE-INSTANCE (CLASS)) #<SB-MOP:FUNCALLABLE-STANDARD-CLASS COLUMN-REFERENT> #<unavailable &REST argument>) [fast-method] ;; 5: (SB-INT:SIMPLE-EVAL-IN-LEXENV (MAKE-INSTANCE (QUOTE COLUMN-REFERENT) :ACCESSOR 0) #<NULL-LEXENV>) ;; 6: (EVAL (MAKE-INSTANCE (QUOTE COLUMN-REFERENT) :ACCESSOR 0)) ;; 7: (SWANK::EVAL-REGION "(make-instance 'column-referent :accessor 0) ..) (defclass column-referent () ((callable :reader callable :initform nil) (accessor :accessor accessor :initform (error "Must supply accessor for a column referent") :initarg :accessor)) (:metaclass closer-mop:funcallable-standard-class)) (defmethod initialize-instance :after ((referent column-referent) &key) (with-slots (callable accessor) referent (let ((referencer (cond ((numberp accessor) #'(lambda (sequence) (elt sequence accessor))) ((symbolp accessor) #'(lambda (sequence) (cdr (assoc accessor sequence)))) ((functionp accessor) accessor) (t (error "Unable to initialize column referent"))))) (closer-mop:set-funcallable-instance-function callable referencer)))) -- Regards, Paul |
From: Christophe R. <cs...@ca...> - 2013-09-16 11:38:02
|
Paul Nathan <pn...@va...> writes: > Note that the fix for the condition being thrown is that the > set-funcallable-instance-function is being called on callable, not > referent, so the code itself is somewhat incoherent. However, I would > suspect that this should not result in a failed AVER and a request to > mail the bug. :-) Thank you; you're quite right that the AVER is super-overdefensive, a remnant from when our MOP implementation was less public than it is now. I've pushed a fix. Best wishes, Christophe |