The HS says:
break binds *debugger-hook* to nil before attempting to enter the debugger.
Still, with all slime backends (but abcl) I tried, (break) enters the slime debugger. How is this arranged?
Andras
Andras Simon andras@renyi.hu writes:
The HS says:
break binds *debugger-hook* to nil before attempting to enter the debugger.
Still, with all slime backends (but abcl) I tried, (break) enters the slime debugger. How is this arranged?
Each backend requires a different hack.
CMUCL doesn't need anything because, luckily, it is not ANSI compliant in this regard.
In SBCL we set the *invoke-debugger-hook* globally, which is probably not the best solution, but nobody complained so far.
LispWorks has apparently a generic function env-internals:environment-display-debugger which can be specialized to the "environment", whatever that is. Probably something like tty-env or gui-env. We could probably create a slime-env if someone cares, but we simply override the default method.
I don't know why we need no modification for Allegro, but the official way is probably their *break-hook*.
For CLISP and OpenMCL we simply redefine/advice BREAK.
It would probably be good to have some macro like with-debugger-hook which binds the *debugger-hook* and does whatever backend specific stuff is needed for break.
Helmut.