Hi,
I was wondering lately why slime/sbcl did not want to compile swank-sbcl.lisp. When I tried it, I got the backtrace available at URL:http://shell.iddqd.org:8081/paste/display/103.
As you can see, somehow sbcl fails to find the appropriate method for slime-output-stream-buffer. I can trigger this by executing
C-c : (defclass slime-output-stream (sb-gray:fundamental-character-output-stream) ((buffer :initform (make-string-output-stream :element-type 'character) :accessor slime-output-stream-buffer))) RET
(i.e. a complete 1:1 redefinition of the slime-output-stream class and the slime-output-stream-buffer GF)
I'm not sure which is to blame: me, sbcl or swank. It also seems like I'm the only person for whom this is failing. On my machine, I can reproduce this with a clean slime, fresh sbcl (no .sbclrc), while running emacs -q; so it must be my karma or something (-:
Thanks,
Andreas Fuchs asf@boinkor.net writes:
I'm not sure which is to blame: me, sbcl or swank. It also seems like I'm the only person for whom this is failing. On my machine, I can reproduce this with a clean slime, fresh sbcl (no .sbclrc), while running emacs -q; so it must be my karma or something (-:
Blame SBCL. This turned out to be a consequence of class redefinition signalling a (spurious) warning, which swank was of course catching and attempting to propagate to emacs. This would only be a problem during the redefinition of the slime-output-stream class, when there is a window where the accessor method has been removed and not yet reinstated... no-one else is seeing this because I only committed the change that had this as a side-effect a couple of days ago.
I have committed a fix for this to sbcl's CVS; those of you on anonymous access might be lucky enough to leapfrog the bug completely, when sourceforge deigns to update their now six-day-old backup repository. :-/
Cheers,
Christophe