Hi Helmut,
I tried to put the snippet in my .swank.lisp (which gets correctly loaded) and no, unfortunately the patch doesn't work ...
Perhaps it would be a good idea to try to see what's wrong with OpenMCL. Or if you have a precise idea, tell me and I'll try to introspect it next week.
Best, Camille
On Dec 17, 2003, at 10:34 PM, Helmut Eller wrote:
Camille Troillard tuscland@mac.com writes:
The problem is that I really can't get out of this, if I type ":pop" for instance, Emacs tell me that the "Text is read only". Then Emacs is stuck there, the only way to get out of this is to quit Emacs and restart. I sometimes get the same problem when pressing return or some other key without evaluating "(break)" ...
You encountered two bugs at once. The first is buggy handling of asynchronous output in SLIME, which causes the "Text is read only" errors. Th CVS version contains some fixes for this.
The second problem is that OpenMCL doesn't invoke the *debugger-hook* on BREAK. This is probably more ANSI compliant than what CMUCL does, but not exactly helpful for SLIME. You can try to put something like this in your .swank.lisp:
(let ((ccl::*warn-if-redefine-kernel* nil)) (defun ccl::cbreak-loop (msg cont-string condition error-pointer) (when *debugger-hook* (let ((hook *debugger-hook*) (*debugger-hook* nil)) (funcall hook condition hook))) (let* ((*print-readably* nil)) (ccl::with-terminal-input (ccl::%break-message msg condition error-pointer) (restart-case (ccl::break-loop condition error-pointer ccl::*backtrace-on-break*) (continue () :report (lambda (stream) (write-string cont-string stream)))) (fresh-line *error-output*) nil))))
Helmut.