Christian, in general I agree with your analysis. This is a bug in with-exception-catcher and the REPL. I have now changed it so that the dynamic-wind stack is properly wound and unwound. This has required the addition of the procedures ##continuation-[graft|return]- with-winding.
I also uncovered a bug which caused the dynamic-environment (shown with the ,e command) to be wrong in higher frames, and a bug in dynamic-wind when re-entering the dynamic-wind.
However:
On 7-Jan-06, at 10:24 AM, Christian wrote:
So it helps as long as I don't short-cut away my continuation in the repl. It's also rather ugly that I don't immediately see the position of the code where the error happened when being thrown into the debugger.
I don't understand. What is ugly? You know about the ,y REPL command. Do you mean you would like the system to implicitly execute this command when a new REPL is started? I'm not convinced this is useful because the error message contains all this information, but in a different (more novice friendly) format.
(For inspecting the lexical environment of the place where the debugger happens I'll also step one up, and then it's too easy to forget to step back before continuing.)
At least for the repl, efficiency is no concern - could it be changed to use safe continuations?
Changed.
Marc