<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lua/lcode.c, branch v5.5.1</title>
<subtitle>A mirror of https://github.com/lua/lua
</subtitle>
<id>https://git.lua4.win/lua/atom?h=v5.5.1</id>
<link rel='self' href='https://git.lua4.win/lua/atom?h=v5.5.1'/>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/'/>
<updated>2026-05-28T18:10:17+00:00</updated>
<entry>
<title>Cleaning 'luaP_isIT' and 'luaP_isOT'</title>
<updated>2026-05-28T18:10:17+00:00</updated>
<author>
<name>Roberto I</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2026-05-28T18:10:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=0465c23b3ee214ea3a117ab9d69a83cf85e7a82f'/>
<id>urn:sha1:0465c23b3ee214ea3a117ab9d69a83cf85e7a82f</id>
<content type='text'>
- 'luaP_isOT' is only used for tests, so it is defined as a macro to avoid
wasting space with an unused function.
- 'luaP_isIT' must include OP_VARARGPREP.
</content>
</entry>
<entry>
<title>Details</title>
<updated>2026-04-28T16:44:29+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2026-04-28T16:44:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=0da6d320f757bc9241a33df06f3597598845cf0a'/>
<id>urn:sha1:0da6d320f757bc9241a33df06f3597598845cf0a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Avoid an assignment of values that overlap</title>
<updated>2026-02-09T16:44:27+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2026-02-09T16:44:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=b60e2bcd7ca4c349bd6ee7a8e929f55e04f7ca87'/>
<id>urn:sha1:b60e2bcd7ca4c349bd6ee7a8e929f55e04f7ca87</id>
<content type='text'>
The original code was like this, where t-&gt;u.ind.t and t-&gt;u.info overlap:

  t-&gt;u.ind.t = cast_byte((t-&gt;k == VLOCAL) ? t-&gt;u.var.ridx: t-&gt;u.info);
</content>
</entry>
<entry>
<title>Wrong assert in 'luaK_indexed'</title>
<updated>2025-12-08T14:08:12+00:00</updated>
<author>
<name>Roberto I</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2025-12-08T14:08:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=8164d09338d06ecd89bd654e4ff5379f040eba71'/>
<id>urn:sha1:8164d09338d06ecd89bd654e4ff5379f040eba71</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Functions with vararg tables don't need hidden args.</title>
<updated>2025-11-28T18:12:51+00:00</updated>
<author>
<name>Roberto I</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2025-11-28T18:12:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=a07f6a824197d7dc01c321599d3bc71936a2590e'/>
<id>urn:sha1:a07f6a824197d7dc01c321599d3bc71936a2590e</id>
<content type='text'>
Vararg functions with vararg tables don't use the arguments hidden in
the stack; therfore, it doesn't need to build/keep them.
</content>
</entry>
<entry>
<title>New conceptual model for vararg</title>
<updated>2025-11-26T14:18:29+00:00</updated>
<author>
<name>Roberto I</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2025-11-26T14:18:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=f33cc4ddec886ea499d7d41dd60cac5ddc5687db'/>
<id>urn:sha1:f33cc4ddec886ea499d7d41dd60cac5ddc5687db</id>
<content type='text'>
Conceptually, all functions get their vararg arguments in a vararg
table. The storing of vararg arguments in the stack is always treated
as an optimization.
</content>
</entry>
<entry>
<title>Correction in line info for semantic errors</title>
<updated>2025-11-11T17:36:16+00:00</updated>
<author>
<name>Roberto I</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2025-11-11T17:36:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=81f4def54f440e045b1401f11ef78b65b56b7abe'/>
<id>urn:sha1:81f4def54f440e045b1401f11ef78b65b56b7abe</id>
<content type='text'>
Semantic errors should refer the last used token, not the next one.
</content>
</entry>
<entry>
<title>Global initialization checks name conflict</title>
<updated>2025-11-08T14:43:42+00:00</updated>
<author>
<name>Roberto I</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2025-11-08T14:43:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=e44f3a2ffc7ced5e75cca7657aaa60ef27da89aa'/>
<id>urn:sha1:e44f3a2ffc7ced5e75cca7657aaa60ef27da89aa</id>
<content type='text'>
Initialization "global a = 10" raises an error if global 'a' is already
defined, that is, it has a non-nil value.
</content>
</entry>
<entry>
<title>Case VVARGIND added to luaK_storevar</title>
<updated>2025-10-30T13:39:55+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2025-10-30T13:39:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=0149b781d438091ce086449101a916e9b4456b4e'/>
<id>urn:sha1:0149b781d438091ce086449101a916e9b4456b4e</id>
<content type='text'>
In a global initialization, the variable does not pass through
'check_readonly', and therefore a VVARGIND is not normalized to a
VINDEXED.
</content>
</entry>
<entry>
<title>Fixed initialization of global variables</title>
<updated>2025-10-29T16:14:48+00:00</updated>
<author>
<name>Roberto I</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2025-10-29T16:14:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=d4eff00234dc55dac4cb86b6187f5607c1254f9b'/>
<id>urn:sha1:d4eff00234dc55dac4cb86b6187f5607c1254f9b</id>
<content type='text'>
When calling 'luaK_storevar', the 'expdesc' for the variable must be
created before the one for the expression, to satisfy the assumptions
for register allocation. So, in a statement like 'global a = exp', where
'a' is actually '_ENV.a', this variable must be handled before the
initializing expression 'exp'.
</content>
</entry>
</feed>
