Mikael Djurfeldt <[EMAIL PROTECTED]> writes:

> You are probably more competent to answer the question than me.

:-)  Well thanks for your quick response anyway; it's very helpful.

> I wrote that code when I was pretty inexperienced, and the choice to
> allow for the continuation to be saved was probably more motivated by
> a feeling that I didn't want any limitations on what you could do with
> traps than anything more specific---except that I probably had
> imagined the continuations as a way to resume execution after a
> breakpoint, of course.

Oh yes, I remember now; continuations have not been necessary for
continuing after a breakpoint since this change to call the trap
handlers directly instead of executing a throw:

2001-06-26  Neil Jerram  <[EMAIL PROTECTED]>

        * eval.h, eval.c (scm_call_4): New function.

        * eval.c (SCM_APPLY, SCM_CEVAL, ENTER_APPLY): Call trap handlers
        directly rather than dispatching to them via scm_ithrow and a lazy
        catch.

        * eval.c (scm_evaluator_trap_table), eval.h (SCM_ENTER_FRAME_HDLR,
        SCM_APPLY_FRAME_HDLR, SCM_EXIT_FRAME_HDLR): Add three new options
        for trap handler procedures.

        * debug.h (SCM_RESET_DEBUG_MODE): Add checks for trap handler
        procedures not being #f.

(I hope I didn't miss anything by making this change ... I think I
checked it with you at the time also.)

> I agree that it seems expensive to create the continuation at every
> trap, and your idea to skip the cheaptraps option and delegate the
> decision whether to create the continuation or not to the lazy handler
> code (I assume) seems good.

Cool, I'll give it a go and see what turns out.

> BTW, your work on the debugger and Emacs interface seems really 
> great---thanks!

Thanks again,

       Neil



_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel

Reply via email to