<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lua/lgc.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-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>More effort in avoiding errors in finalizers</title>
<updated>2026-01-11T18:36:03+00:00</updated>
<author>
<name>Roberto I</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2026-01-11T18:36:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=2a7cf4f319fc276f4554a8f6364e6b1ba4eb2ded'/>
<id>urn:sha1:2a7cf4f319fc276f4554a8f6364e6b1ba4eb2ded</id>
<content type='text'>
Before calling a finalizer, Lua not only checks stack limits, but
actually ensures that a minimum number of slots are already allocated
for the call. (If it cannot ensure that, it postpones the finalizer.)
That avoids finalizers not running due to memory errors that the
programmer cannot control.
</content>
</entry>
<entry>
<title>Details</title>
<updated>2025-12-23T17:44:06+00:00</updated>
<author>
<name>Roberto I</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2025-12-23T17:44:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=578ae5745cecee56d48795cd4ae1eaf13618715c'/>
<id>urn:sha1:578ae5745cecee56d48795cd4ae1eaf13618715c</id>
<content type='text'>
typo in comment + formatting + logical 'and' was written as a bitwise
operation (makes code more fragile)
</content>
</entry>
<entry>
<title>GC checks stack space before running finalizer</title>
<updated>2025-12-13T19:16:59+00:00</updated>
<author>
<name>Roberto I</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2025-12-13T19:16:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=a5522f06d2679b8f18534fd6a9968f7eb539dc31'/>
<id>urn:sha1:a5522f06d2679b8f18534fd6a9968f7eb539dc31</id>
<content type='text'>
If the stack does not have some minimum available space, the GC defers
calling a finalizer until the next cycle. That avoids errors while
running a finalizer that the programmer cannot control.
</content>
</entry>
<entry>
<title>External strings are as good as internal ones</title>
<updated>2025-11-11T17:40:30+00:00</updated>
<author>
<name>Roberto I</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2025-11-11T17:40:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=5b7d9987642f72d44223a8e5e79e013bb2b3d579'/>
<id>urn:sha1:5b7d9987642f72d44223a8e5e79e013bb2b3d579</id>
<content type='text'>
A '__mode' metafield and an "n" key both can be external strings.
</content>
</entry>
<entry>
<title>Added some casts for 32-bit machines</title>
<updated>2025-07-29T14:50:20+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2025-07-29T14:50:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=c33bb08ffe04f24e09571b59eed3c9b59b622d91'/>
<id>urn:sha1:c33bb08ffe04f24e09571b59eed3c9b59b622d91</id>
<content type='text'>
When both 'int' and 'l_obj' have 32 bits, an unsigned int needs a
cast to be assigned to 'l_obj'. (As long as 'l_obj' can count the
total memory used by the system, these casts should be safe.)
</content>
</entry>
<entry>
<title>New metatable in an all-weak table can fool the GC</title>
<updated>2025-06-16T19:29:32+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2025-06-16T19:29:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=9386e49a3173b68e8b5a7ba882c4c2faf557b61e'/>
<id>urn:sha1:9386e49a3173b68e8b5a7ba882c4c2faf557b61e</id>
<content type='text'>
All-weak tables are not being revisited after being visited during
propagation; if it gets a new metatable after that, the new metatable
may not be marked.
</content>
</entry>
<entry>
<title>Simpler code for 'traversetable'</title>
<updated>2025-06-16T18:50:12+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2025-06-16T18:50:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=8cd7ae7da06f54b97f95d6994d6bf47086e4e7eb'/>
<id>urn:sha1:8cd7ae7da06f54b97f95d6994d6bf47086e4e7eb</id>
<content type='text'>
Check the mode in a separate function (getmode), instead of using
comma expressions inside the 'if' condition.
</content>
</entry>
<entry>
<title>Details (typos in comments)</title>
<updated>2025-04-23T14:36:09+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2025-04-23T14:36:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=9b014d4bcd4ebadb523f1c1a1d38148d8526e5ed'/>
<id>urn:sha1:9b014d4bcd4ebadb523f1c1a1d38148d8526e5ed</id>
<content type='text'>
</content>
</entry>
<entry>
<title>In gen. GC, some gray objects stay in gray lists</title>
<updated>2025-04-15T20:00:30+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2025-04-15T20:00:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=3dbb1a4b894c0744a331d4319d8d1704dc4ad943'/>
<id>urn:sha1:3dbb1a4b894c0744a331d4319d8d1704dc4ad943</id>
<content type='text'>
In generational collection, objects marked as touched1 stay in gray
lists between collections. This commit fixes a bug introduced in
commit 808976bb59.
</content>
</entry>
</feed>
