[slimpl] status report, 2/20/2006

Larry Clapp larry at theclapp.org
Mon Feb 20 05:42:37 CST 2006


For the past few days I've tried to get a test-case to work where I
send '(error "my error")' to clisp and expect some sort of Slime
debugger output back.  But I couldn't get it to work because clisp
never invoked the Slime debugger.  It turns out that clisp ignores
*debugger-hook* in some cases.

If you say

> [1] > (let ((*debugger-hook* (lambda (&rest args)
>                                (format t "~%my debugger called~%"))))
>         (error "my error"))

you get

> my debugger called
> 
> *** - my error
> Break 1 [2]>

However, if you say

> clisp -x '
> (let ((*debugger-hook* (lambda (&rest args)
>                          (format t "~%my debugger called~%"))))
>   (error "my error"))
> '

you only get

> *** - my error
> Bye.

clisp doesn't call your *debugger-hook* (in some cases) if you invoke
it from the command-line.  The above code illustrates one case; the
Slime code (combined with the way I started it) illustrates another
case.  I started clisp approximately like this:

> clisp -x '(load "run-swank")'

where run-swank.lisp loaded swank-loader and started a Swank server.

Possibly clisp documents this somewhere, but since I didn't know the
origin of the problem, that wouldn't have helped, I only knew that
instead of a "(:debug ...)" form, I got back a "(:return (:abort
...))" form, even though I sent clisp the exact same events that Emacs
sent it.

So anyway, now that I've gotten that test case working, I hope to make
better progress.  :)

-- Larry



More information about the slimpl mailing list