From: Paul F. Dietz <dietz@dl...> - 2004-12-12 14:07:16
According to the standard, the variables *, **, and *** are updated
in the REPL only when form evaluation does not abort.
There is no such restriction on +, ++, and +++. However, sbcl
is not updating + when the form aborts:
This is SBCL 0.8.17.24, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.
SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses. See the CREDITS and COPYING files in the
distribution for more information.
* (error "foo")
debugger invoked on a SIMPLE-ERROR in thread 19793: foo
You can type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.
restarts (invokable by number or by possibly-abbreviated name):
0: [ABORT ] Reduce debugger level (leaving debugger, returning to toplevel).
1: [TOPLEVEL] Restart at toplevel READ/EVAL/PRINT loop.
:POLICY ((SAFETY . 3) (COMPILATION-SPEED . 2) (DEBUG . 2) (SPEED . 1)
(SPACE . 1) (INHIBIT-WARNINGS . 1))))[:EXTERNAL]
* (list + ++ +++)
('Z 'Y 'X)
"Paul F. Dietz" <dietz@...> writes:
> According to the standard, the variables *, **, and *** are updated
> in the REPL only when form evaluation does not abort.
> There is no such restriction on +, ++, and +++. However, sbcl
> is not updating + when the form aborts:
Thanks. I have altered the behaviour of sbcl-0.9.3.9 to your
interpretation, which I think is the most useful. (It does not appear
to be widely implemented that way, though; if maintainers of their own
toplevels have a contrary opinion -- slime? McCLIM Apps/Listener? --
then it might be good to make it known.)