[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: [ANN] Lua 5.2.0 (beta-rc1) now available
- From: David Manura <dm.lua@...>
- Date: Wed, 15 Jun 2011 22:35:07 -0400
On Wed, Jun 15, 2011 at 1:29 PM, Roberto Ierusalimschy
<roberto@inf.puc-rio.br> wrote:
> we are also considering to enforce a single occurence of a label name in
> each function, to avoid ambiguities. (That does not change the visbility
> rules; it is only an extra restriction.)
With locals, I tend to appreciate that I can override them in the same scope:
local x, err = f(); if not x then print(err) end
local y, err = g(); if not y then print(err) end -- note: "err"
for _, v in ipairs(t) do; for _, vv in ipairs(v) do print(vv) end
end -- note "_"
With labels, I may want that too, but the backward + forward lookup
causes ambiguity:
for x=1,10 do for y=1,10 do
if not f(x,y) then goto done end
end end @ done
for x=1,10 do for y=1,10 do
if not g(x,y) then goto done end -- go where?
end end @ done
In the "Lua 5.2.0 (beta-rc1) GOTO" discussion, it's proposed that
labels also be used as a way to inject lineinfo debuginfo into the
bytecode for code generation:
@ line123; f(); @ line124; g(); @ line123; h()
Enforcing a single occurrence of label names will render the above
example invalid even though there is no ambiguity because there is no
goto that jumps to any of those labels. True, we could work around
that restriction though:
@ line123; f(); @ line124; g(); @ line123_; h()