[racket] raise vs abort

From: Keiko Nakata (keiko at kurims.kyoto-u.ac.jp)
Date: Thu Jan 6 12:14:38 EST 2011

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 <robby at eecs.northwestern.edu> 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


Posted on the users mailing list.