<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lua/lobject.h, 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-04-23T21:00:23+00:00</updated>
<entry>
<title>new macro 'setnilvalue2s'</title>
<updated>2026-04-23T21:00:23+00:00</updated>
<author>
<name>Roberto I</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2026-04-23T21:00:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=ae23e726018bd31a25c1279600328d90207ec81c'/>
<id>urn:sha1:ae23e726018bd31a25c1279600328d90207ec81c</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>Varag parameter is a new kind of variable</title>
<updated>2025-09-17T19:07:48+00:00</updated>
<author>
<name>Roberto I</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2025-09-17T19:07:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=8fb1af0e33cd8688f57cd0e3ab86420a8cfe99bd'/>
<id>urn:sha1:8fb1af0e33cd8688f57cd0e3ab86420a8cfe99bd</id>
<content type='text'>
To allow some optimizations on its use.
</content>
</entry>
<entry>
<title>Vararg table</title>
<updated>2025-09-16T16:26:24+00:00</updated>
<author>
<name>Roberto I</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2025-09-16T16:26:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=140b672e2ee2ac842661ece4b48e1a64f0cd11ea'/>
<id>urn:sha1:140b672e2ee2ac842661ece4b48e1a64f0cd11ea</id>
<content type='text'>
Not yet optimized nor documented.
</content>
</entry>
<entry>
<title>Short strings can be external, too</title>
<updated>2025-07-15T17:40:27+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2025-07-15T17:40:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=60b6599e8322dd93e3b33c9496ff035a1c45552f'/>
<id>urn:sha1:60b6599e8322dd93e3b33c9496ff035a1c45552f</id>
<content type='text'>
That complicates a little object equality (and therefore table access
for long strings), but the old behavior was somewhat weird. (Short
strings, a concept otherwise absent from the manual, could not be
external.)
</content>
</entry>
<entry>
<title>Using 'l_uint32' for unicode codepoints in scanner</title>
<updated>2025-05-08T15:49:39+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2025-05-08T15:49:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=d827e96f33056bcc0daca0c04b3273604f9d5986'/>
<id>urn:sha1:d827e96f33056bcc0daca0c04b3273604f9d5986</id>
<content type='text'>
'l_uint32' is enough for unicode codepoints (versus unsigned long),
and the utf-8 library already uses that type.
</content>
</entry>
<entry>
<title>New macro 'pushvfstring'</title>
<updated>2025-04-23T14:55:04+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2025-04-23T14:55:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=e05590591410a5e007a1e3f1691f6c1cf9d8fe45'/>
<id>urn:sha1:e05590591410a5e007a1e3f1691f6c1cf9d8fe45</id>
<content type='text'>
Helps to ensure that 'luaO_pushvfstring' is being called correctly,
with an error check after closing the vararg list with 'va_end'.
</content>
</entry>
<entry>
<title>Refactoring of 'luaH_newkey'</title>
<updated>2024-12-05T17:27:58+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2024-12-05T17:27:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=bb93f04d87cfc093757dc712905e1fe3fbe65f58'/>
<id>urn:sha1:bb93f04d87cfc093757dc712905e1fe3fbe65f58</id>
<content type='text'>
Function broke in two and some checks moved to the caller. (We may
want to call it without the checks.)
</content>
</entry>
<entry>
<title>New way to keep hints for table length</title>
<updated>2024-11-29T20:26:20+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2024-11-29T20:26:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=002beeebe79065e03dd9f531bee367e8459e3f64'/>
<id>urn:sha1:002beeebe79065e03dd9f531bee367e8459e3f64</id>
<content type='text'>
Instead of using 'alimit' for keeping the size of the array and at
the same time being a hint for '#t', a table now keeps these two
values separate. The Table structure has a field 'asize' with the
size of the array, while the length hint is kept in the array itself.
That way, tables with no array part waste no space with that field.
Moreover, the space for the hint may have zero cost for small arrays,
if the array of tags plus the hint still fits in a single word.
</content>
</entry>
</feed>
