On Mar 21, 2016, at 17:12, Coda Highland <chighland@gmail.com> wrote:
On Mon, Mar 21, 2016 at 9:10 AM, Scott Morgan <blumf@blueyonder.co.uk> wrote:
On 21/03/16 15:59, Dirk Laurie wrote:
2016-03-21 16:32 GMT+02:00 Wangbo <wangbo.red@gmail.com>:
I have simple Lua code, why have two RETURN opcode for foo function after i
check compile code.
6 [4] RETURN 1 2
7 [5] RETURN 0 1
Checking all code paths to make sure that the `end` statement
cannot be reached would make the compiler more complicated.
Is this an overhead of supporting gotos?
Considering this is bytecode and everything from loops to conditionals
are implemented as jumps? You could say that. But it's not
specifically tied to the "goto" language feature; it would still be
relevant even if you couldn't use "goto" in Lua code.
IIRC older Lua versions indeed already simply did this too.
At least I remember seeing this in 5.1 which did not yet had gotos, …