call for readers II

Allison Randal allison at parrot.org
Sat Feb 14 01:37:48 UTC 2009


register reg.ini wrote:
> What I would like to be more clear are the various calling conventions 
> adopted in Parrot . From what I have read  in the docs and in the book 
> Parrot supports both a stack call  ( there is a stack that keeps return 
> address ) and continuation passing style. I read also that the same 
> stack contains exceptions handlers. What are not clear to me are the 
> various   relationships that are possible between these three elements. 
> For example: What happens when an exception is thrown and traversing the 
> stack results in a return address because the stack does not contain an 
> handler for the exception. And what happens in the same scenario when we 
> are in a continuation? Also with this design it seems to me that a 
> continuation should also carry a copy of the control stack to correctly 
> restore the calling environment so the principle that says that CPS does 
> not need a stack does not hold in this case.

That documentation is all out of date. You can no longer make a stack 
call, you can only make a CPS call. And exception handlers are no longer 
stored on a global stack, they're stored locally in each context.

Allison


More information about the parrot-dev mailing list