[slime-devel] Problem with Slime/OpenMCL REPL

Helmut Eller e9626484 at stud3.tuwien.ac.at
Wed Dec 17 21:34:18 UTC 2003


Camille Troillard <tuscland at 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.




More information about the slime-devel mailing list