[slime-devel] Re: SBCL restart-frame

Mészáros Levente melevy at freemail.hu
Fri Jan 20 08:24:26 UTC 2006

> > Is it really this simple?
> Not quite. The restarted function will be run in the wrong dynamic 
> environment. For example:
> (declaim (optimize (debug 2)))
> (defvar *a* 0)
> (defun foo (a)
>   (let ((*a* (1+ *a*)))
>     (/ 2 a)))
> (defun bar ()
>   (print *a*)
>   (foo 0))
> When you call BAR, it'll print 0 and then call FOO, which will signal 
> an error. If we now restart BAR, the dynamic binding for *A* that 
> established will still be visibile, and it'll print 1 instead.

On the other hand return from frame is already supported for SBCL in 

And if I got it right the above statement also means that return from 
frame works the same "somewhat bad" way. I mean returning from the 
frame of bar (in the debugger) the value of *a* will return 1 instead of 

Am I right?


Képkidolgozás már bruttó 25,- Ft-tól! FotoMarket Online Fotóáruház 
- már 5 éve az Ön fotószolgálatában: www.fotomarket.hu

More information about the slime-devel mailing list