<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lua/lstate.h, 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: Call hook may be called twice when count hook yields</title>
<updated>2023-07-25T19:50:44+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2023-07-25T19:50:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=1b3f507f620d996ffb69da7476a19251acfb89ca'/>
<id>urn:sha1:1b3f507f620d996ffb69da7476a19251acfb89ca</id>
<content type='text'>
Took the opportunity and moved the code that controls call hooks
in 'luaV_execute' into a function.
</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>Details in some header files</title>
<updated>2022-12-14T19:20:39+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2022-12-14T19:20:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=6aabf4b15e7637c2ab4133abf3df0a77f34b6005'/>
<id>urn:sha1:6aabf4b15e7637c2ab4133abf3df0a77f34b6005</id>
<content type='text'>
Identifier LUA_NUMTAGS was deprecated (changed to LUA_NUMTYPES) +
better handling of some inclusion loops.
</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>Fix debug information about finalizers</title>
<updated>2021-12-14T15:50:05+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2021-12-14T15:50:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=066e0f93c4901e601d93e31fb700f8f66f95feb8'/>
<id>urn:sha1:066e0f93c4901e601d93e31fb700f8f66f95feb8</id>
<content type='text'>
The flag CIST_FIN does not mark a finalizer, but the function that was
running when the finalizer was called. (So, the function did not call
the finalizer, but it looks that way in the stack.)
</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>
<entry>
<title>Bug: yielding in '__close' mess up number of returns</title>
<updated>2021-04-16T18:41:44+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2021-04-16T18:41:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=681297187ec45268e872b26753c441586c12bdd8'/>
<id>urn:sha1:681297187ec45268e872b26753c441586c12bdd8</id>
<content type='text'>
Yielding in a __close metamethod called when returning vararg results
changes the top and so messes up the number of returned values.
</content>
</entry>
<entry>
<title>New control for reentrancy of emergency collections</title>
<updated>2021-02-26T14:41:02+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2021-02-26T14:41:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=1537d6680bb66dc2484e11815bc2cd0e31ca39cc'/>
<id>urn:sha1:1537d6680bb66dc2484e11815bc2cd0e31ca39cc</id>
<content type='text'>
Instead of assuming that shrinking a block may be an emergency
collection, use an explicit field ('gcstopem') to stop emergency
collections while GC is working.
</content>
</entry>
<entry>
<title>'__close' methods can yield in the return of a C function</title>
<updated>2021-02-12T16:36:30+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2021-02-12T16:36:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=bc970005ce2e258e29a5c315ea4e49f76a66586e'/>
<id>urn:sha1:bc970005ce2e258e29a5c315ea4e49f76a66586e</id>
<content type='text'>
When, inside a coroutine, a C function with to-be-closed slots return,
the corresponding metamethods can yield. ('__close' metamethods called
through 'lua_closeslot' still cannot yield, as there is no continuation
to go when resuming.)
</content>
</entry>
</feed>
