[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Why have two RETURN opcode for function
- From: René Rebe <rene@...>
- Date: Mon, 21 Mar 2016 22:07:54 +0100
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?
>>
>> Scott
>
> 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, …
René
--
ExactCODE GmbH, Lietzenburger Str. 42, DE-10789 Berlin
DE Legal: Amtsgericht Berlin (Charlottenburg) HRB 105123B, Tax-ID#: DE251602478
Managing Director: René Rebe
http://exactcode.com | http://exactscan.com | http://ocrkit.com | http://t2-project.org | http://rene.rebe.de