[MLton] Handler in SSA Returns?
Stephen Weeks
sweeks@sweeks.com
Wed, 21 Jun 2006 12:35:23 -0700
> What does the handler argument to NonTail returns indicate? There
> are three different constructors for the datatype -- Caller, Dead
> and Handle -- what do they do?
The "handler" field says what to do with the exception handler stack
when making a nontail call.
* Caller: Use the same handler stack as was received by the caller.
I.E. leave the handler stack alone.
* Handle l: Push onto the handler stack a new handler that handles an
exception by jumping to the code at label l. The handler is
implicitly popped in the event of a normal return.
* Dead: The callee cannot raise an exception, in which case no
exception handlers need to be available (the handler stack is
"dead").