On Wed, 2013-01-09 at 11:58 -0800, Per Bothner wrote: > On 01/08/2013 06:07 PM, Alex Shinn wrote: > > Continuable and restartable exceptions have a long history in both > > Scheme and Common-Lisp, and if nothing else are essential to > > featureful debuggers. > > In that case they're not essential in the *language*. I find singularly > unpersuasive arguments that we need something in the language because > it is useful to a debugger. A useful debugger has to go beyond the > language. For example a debugger should be able to inspect function-local > and non-exported module variables.
I feel compelled to make a general comment about raise-continuable and raise in the context of errors and the like. RAISE-CONTINUABLE performs a non-local exit that is handled by an exception handler and allows for a return to the calling continuation. That's it. It says nothing, and is not meant to say anything about what it raises. It is not meant exclusively as a means of raising errors. If you want to raise errors, you can, and those errors may even be such that they can be continued from, but this is different and orthogonal to the question of raise-continuable. RAISE and RAISE-CONTINUABLE are two complementary primitives for performing non-local exits that "jump" to a specific handler context. If you want to talk about errors, then we should really talk about error taxonomies. In there, even despite having a RAISE-CONTINUABLE primitive, it may make sense to have a sort of error that explicitly marks itself as "continuable." This does not mean that RAISE-CONTINUABLE should not exist. Errors and exceptions and the raising of objects to be handled by exception handlers are different things, and we should avoid conflating a common use case of exception systems with the general utility of them. -- Aaron W. Hsu | [email protected] | http://www.sacrideo.us לֵ֤ב חֲכָמִים֙ בְּבֵ֣ית אֵ֔בֶל וְלֵ֥ב כְּסִילִ֖ים בְּבֵ֥ית שִׂמְחָֽה׃ _______________________________________________ Scheme-reports mailing list [email protected] http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports
