[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