Gabor Melis mega@hotpop.com writes:
That mostly helps. However, sldb-show-source has become erratic: sometimes it doesn't do anything on the first invocation and then shows the wrong file/form on the subsequent ones.
I guess that's because the debugger keeps a pointer into the control stack, but CMUCL copies the stacks forth and back to schedule different threads. The pointer for the frame is probably not updated and has no meaning in the other thread. A wonder that CMUCL didn't crash.
I think the CMUCL debugger disables scheduling, perhaps for this reason.
This is a bit difficult to fix properly and I don't have enough motivation to do that at the moment.
Is it the bookkeeping code for slime-[input | output]-[start | end] that's wrong?
Yes. The current code only works if the marks are separated by the prompt. But in this situation all markers are at the same position. The marks must be moved differently for input from the user and for output form the Lisp process. Setting the insertion types of the markers is not enough. It's probably the easiest to use insert-before-markers (not sure if that exists in XEmacs) to insert output from Lisp and to change the insertion-types so that user input is handled correctly.
Helmut.