In the meantime interpreter->warns has moved to the context structure and gets now restored for CPS subroutine calls.
But there is a slight problem (as well as with e.g. pad_stacks) When we have:
warningson 1 newsub .Sub, .Continuation, _func, _ret ... invoke
and _func turns warnings off, the warns are restored fine.
When C<warningson> is after C<newsub>, the continuation has the old state of warns. So we should update the continuation context at C<invoke> time.
Here are some possibilities to achieve this:
- invokecc (this is slow)
- a new opcode e.g. C<updatecc> (update continuation ctx)
- toss invokecc's current functionality and use this opcode to update the context and call the sub.
I like option 2. I'd also like to be able to manipulate the stacks in a context, pushing things on them, changing values on them, and generally messing about with the things, so I'm all for it.
--
Dan
--------------------------------------"it's like this"------------------- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk