<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lua/lgc.c, branch v5.4.9</title>
<subtitle>A mirror of https://github.com/lua/lua
</subtitle>
<id>https://git.lua4.win/lua/atom?h=v5.4.9</id>
<link rel='self' href='https://git.lua4.win/lua/atom?h=v5.4.9'/>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/'/>
<updated>2026-07-22T17:42:55+00:00</updated>
<entry>
<title>Bug: GC checks stack space before running finalizer</title>
<updated>2026-07-22T17:42:55+00:00</updated>
<author>
<name>Roberto I</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2026-07-22T17:42:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=8511e90b7df5daf139aba290b9c9c1595927e7b3'/>
<id>urn:sha1:8511e90b7df5daf139aba290b9c9c1595927e7b3</id>
<content type='text'>
If some stack does not have a 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>Bug: new metatable in weak table can fool the GC</title>
<updated>2025-06-16T19:33:02+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2025-06-16T19:33:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=1b0f943da7dfb25987456a77259edbeea0b94edc'/>
<id>urn:sha1:1b0f943da7dfb25987456a77259edbeea0b94edc</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>Towards release 5.4.7</title>
<updated>2024-04-26T17:55:18+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2024-04-26T17:55:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=de794a6527058e75b674118b35f39dcbb13e88b1'/>
<id>urn:sha1:de794a6527058e75b674118b35f39dcbb13e88b1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>More disciplined use of 'getstr' and 'tsslen'</title>
<updated>2023-08-17T18:59:28+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2023-08-17T18:59:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=9b4f39ab14fb2e55345c3d23537d129dac23b091'/>
<id>urn:sha1:9b4f39ab14fb2e55345c3d23537d129dac23b091</id>
<content type='text'>
We may want to add other string variants in the future; this change
documents better where the code may need to handle those variants.
</content>
</entry>
<entry>
<title>Thread stacks resized in the atomic phase</title>
<updated>2023-07-13T17:55:46+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2023-07-13T17:55:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=6b51133a988587f34ee9581d799ea9913581afd3'/>
<id>urn:sha1:6b51133a988587f34ee9581d799ea9913581afd3</id>
<content type='text'>
Although stack resize can be a little expensive, it seems unusual to
have too many threads needing resize during one GC cycle. On the other
hand, the change allows full collections to skip the propagate phase,
going straight from a pause to the atomic phase.
</content>
</entry>
<entry>
<title>Several functions turned 'static'</title>
<updated>2023-05-22T17:47:54+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2023-05-22T17:47:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=9be74ccc214eb6f4d9d0b9496fd973542c7377d9'/>
<id>urn:sha1:9be74ccc214eb6f4d9d0b9496fd973542c7377d9</id>
<content type='text'>
Several functions that were already being used only inside their
own file have been declared as 'static'.
</content>
</entry>
<entry>
<title>Reduce calls to 'luaC_step' when GC is stopped</title>
<updated>2022-12-09T19:35:19+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2022-12-09T19:35:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=fa2f294dd1269115bf9cf534dd38553e2f606801'/>
<id>urn:sha1:fa2f294dd1269115bf9cf534dd38553e2f606801</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Threads are created like other objects</title>
<updated>2022-11-01T20:14:01+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2022-11-01T20:14:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=9ede317c70ad82279f2e3962eb52904a17bf4b55'/>
<id>urn:sha1:9ede317c70ad82279f2e3962eb52904a17bf4b55</id>
<content type='text'>
Using a version of 'luaC_newobj' that allows offsets (extra space
before the object itself).
</content>
</entry>
<entry>
<title>Stack indices changed to union's</title>
<updated>2022-10-29T15:06:37+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2022-10-29T15:06:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=413a393e6222482f46599e138bebac162610a572'/>
<id>urn:sha1:413a393e6222482f46599e138bebac162610a572</id>
<content type='text'>
That will allow to change pointers to offsets while reallocating
the stack.
</content>
</entry>
<entry>
<title>Bug: set correct pause when (re)entering gen. collection.</title>
<updated>2022-08-23T19:06:23+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2022-08-23T19:06:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=a1f77a234a053da46b06d5d4be00ffb30d3eb45b'/>
<id>urn:sha1:a1f77a234a053da46b06d5d4be00ffb30d3eb45b</id>
<content type='text'>
</content>
</entry>
</feed>
