I just installed SLIME in Emacs, but sometimes when I type at the text, I get an error, and the debugger comes up, and I quit out of it, but when I get back to the REPL I can't evaluate anything. I can't get the prompt back, either.

I would like something like Ctrl-C in the command-line version of the Lisp I am using (SBCL).

I just get stuck at something like

Process inferior-lisp
(list 1 2 3 4)(quit)

Nothing seems to get me back to the * prompt, and nothing evaluates.

Free me!! How do I get a prompt back in the SLIME REPL?

  • How are you quitting the debugger? SBCL's debugger offers a list of restarts; the default, marked with an asterisk in the list and available by pressing q, should get you back to the REPL. – Aaron Miller Aug 14 '13 at 21:57

When the buffer opened you probably saw a buffer with contents that look sort of like the following (I created this by evaluating (+1 'foo)

Argument Y is not a NUMBER: FOO [Condition of type SIMPLE-TYPE-ERROR]

Restarts: 0: [RETRY] Retry SLIME REPL evaluation request. 1: [*ABORT] Return to SLIME's top level. 2: [ABORT] Abort thread (#)

Backtrace: 0: (SB-KERNEL:TWO-ARG-+ 1 FOO) 1: (+ #) [more,optional] 2: (SB-INT:SIMPLE-EVAL-IN-LEXENV (+ 1 (QUOTE FOO)) #)

If you simply close that buffer (perhaps by hitting C-xk<RET>) then you will not be given a new prompt immediately. If you hit return again in the REPL you are given a new prompt.

However. The correct way to exit from the debugger is to enter the number of one of the restarts, or to move to the line of the restart you want to execute and then hit return.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.