Vladimir Lipskiy <[EMAIL PROTECTED]> wrote:
> What are "-", "X", and " "(whitespace) supossed to mean there?
"X" is meaning "is in context". Sorry if that is misleading, I'll update
the pod.
> Why is Eval not there? Does it have no context?
Its not specified yet, how eval fits into the picture. Its currently
different, because it runs a different code segment. We don't have
general support for multiple code segment yet.
> "If items in the interpreter context are changed between creation of the
> subroutine/return continuation and its invocation, the C<updatecc> opcode
> should be used:"
> What items? Items of the interpreter context or items of the Sub context
> mentioned above? Is there any difference betwen these? How do I know
> items are changed?
If you have something like:
newsub .Sub, .Continuation, _sub_label, ret_label
...
loop:
...
invoke
ret_label:
branch loop
and e.g. interpreter's warning flags are changed during creation of the
return continuation and the subroutine call, the C<updatecc> opcode
updates the warnings in the return continuation, so that after returning
you have the very same interpreter context. The C<updatecc> should
finally set the same state of the return continuation, as if you had an
C<invokecc> inside the loop, without the overhead of creating new
continuation objects every time.
When using the PIR .pcc_begin/.pcc_end directives, C<updatecc> gets
inserted automatically when needed.
> Thanks.
leo