I think one reason is historical, but I don't know if it is the only one. Probably it would take some work to figure it out.
Robby On Thu, Jan 6, 2011 at 11:14 AM, Keiko Nakata <[email protected]> wrote: > So, I fall back into the same question of why 'raise' has to be a primitive, > given > >> >> It can be implemented in terms of continuation marks (if you know the >> >> key for exception handlers). > > But, > > On Thu, Jan 6, 2011 at 3:29 PM, Robby Findler <[email protected]> > wrote: >> Probably you can get very close if not exactly there if you implement >> call-with-exception-handler at the same time. > > This may suggest there is a historical reason. > >> No, that's not what I mean. `raise' can be instructed not to install >> the barrier (via its optional second argument), > > I remembered this only now. > >> `raise' just calls the installed exception handlers in turn, until one >> does not return. It does not unwind the stack as `abort' does. It's >> something like the following (very lightly tested) code. > > Yes. I think I've understood this part. > > Thanks, > Keiko > _________________________________________________ > For list-related administrative tasks: > http://lists.racket-lang.org/listinfo/users > _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users

