When I evaluate something in REPL which produces a lot of rapid
output, sometimes I get a message "destructure-case failed:
(:WRITE-STRING ... part of the output ...)" in the message area, and
the corresponding output is never added to the REPL buffer.
This is happens especially often when I use (trace "ENTIRE-PACKAGE")
in order to debug something.
I can fix the problem by editing slime.el and adding a duplicate case
in the slime-dispatch-event function for :WRITE-STRING (in upper case)
being the same as :write-string, but thats just fixing the symptom
and the underlaying buy in Slime remains.
Here is a test case that I can reproduce 100%
Emacs: 22.0.51.7-multi-tty (also happened on 21.3)
Slime: latest CVS
Lisp: SBCL 0.9.13 x86-64
OS: SuSe 10 64bit, 2.6.15-rc6-2-smp kernel
Hardware: Dual core Opteron
CL-USER> (require 'cl-ppcre)
NIL
CL-USER> (trace "CL-PPCRE")
... bunch of output listing all functions in CL-PPCRE ...
Now just do the following several times:
CL-USER> (cl-ppcre::parse-string "a*b+")
... TRACE output here ...
You should see the destructure-case failed messages. Note that
sometimes its every other invocation, sometimes you have to do it 10
times to get it.
Below is a paste from my *Messages* buffer
---------------------- *Messages* ----------------------
error in process filter: destructure-case failed: (:WRITE-STRING " 4: (CL-PPCRE::GREEDY-QUANT
#S(CL-PPCRE::LEXER
:STR \"a*b+\"
:LEN 4
:REG 0
:POS 0
:LAST-POS NIL))
")
error in process filter: slime-dispatch-event: destructure-case failed: (:WRITE-STRING " 6: CL-PPCRE::NEXT-CHAR returned #\\+
")
error in process filter: destructure-case failed: (:WRITE-STRING " 6: CL-PPCRE::NEXT-CHAR returned #\\+
")
error in process filter: destructure-case failed: (:WRITE-STRING " 6: CL-PPCRE::NEXT-CHAR returned #\\+
")
---------------------------------------------------------
Regards,
Max