<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lua/lstate.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: message handler can be overwritten</title>
<updated>2025-03-17T19:14:17+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2025-03-17T19:14:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=3fe7be956f23385aa1950dc31e2f25127ccfc0ea'/>
<id>urn:sha1:3fe7be956f23385aa1950dc31e2f25127ccfc0ea</id>
<content type='text'>
A __close metamethod can overwrite a message handler in the stack
when closing a thread or a state.
</content>
</entry>
<entry>
<title>Bug: 'luaD_seterrorobj' should not raise errors</title>
<updated>2025-03-12T19:01:03+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2025-03-12T19:01:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=25da574fcbb68bf507431a6091ab73ac434c9428'/>
<id>urn:sha1:25da574fcbb68bf507431a6091ab73ac434c9428</id>
<content type='text'>
This function can be called unprotected, so it should not raise any
kind of errors. (It could raise a memory-allocation error when creating
a message).
</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>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>"Emergency" new version 5.4.6</title>
<updated>2023-05-02T19:41:43+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2023-05-02T19:41:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=6443185167c77adcc8552a3fee7edab7895db1a9'/>
<id>urn:sha1:6443185167c77adcc8552a3fee7edab7895db1a9</id>
<content type='text'>
'lua_resetthread' is back to its original signature, to avoid
incompatibilities in the ABI between releases of the same version.
New function 'lua_closethread' added with the "correct" signature.
</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: stack overflow with nesting of coroutine.close</title>
<updated>2022-10-25T19:44:06+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2022-10-25T19:44:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=1e64c1391f9a14115b5cc82066dbf545ae73ee27'/>
<id>urn:sha1:1e64c1391f9a14115b5cc82066dbf545ae73ee27</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Bug: GC is not reentrant</title>
<updated>2021-12-13T13:41:17+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2021-12-13T13:41:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=0bfc572e51d9035a615ef6e9523f736c9ffa8e57'/>
<id>urn:sha1:0bfc572e51d9035a615ef6e9523f736c9ffa8e57</id>
<content type='text'>
As the GC is not reentrant, finalizers should not be able to invoke it.
</content>
</entry>
</feed>
