[DGD] How are the "end" of catch/rlimits/atomic blocks marked in bytecode
Carter Cheng
cartercheng at gmail.com
Thu Apr 13 07:23:31 CEST 2017
Thanks Felix
On Thu, Apr 13, 2017 at 5:02 AM, Felix A. Croes <felix at dworkin.nl> wrote:
> Carter Cheng <cartercheng at gmail.com> wrote:
>
> > I am curious about how this is handled i.e. is a I_RETURN used to mark
> the
> > end point? and how does the interpreter which is re entered- know where
> the
> > next instruction is after the return is the I_CATCH followed by some sort
> > of jmp?
>
> There are no atomic blocks, only atomic fumctions. Catch and rlimits call
> the interpreter function recursively but with the same stack frame, so
> the program counter is carried to and from those contexts; it may be
> changed after the call. I_RETURN returns from those calls, and thereby
> ends the catch/rlimits context. You should identify the purpose of each
> I_RETURN and replace them with ENDCATCH/ENDRLIMITS as needed.
>
> Regards,
> Felix Croes
> ____________________________________________
> https://mail.dworkin.nl/mailman/listinfo/dgd
More information about the DGD
mailing list