<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lua/ldo.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: '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>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>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>More checks and documentation for uses of EXTRA_STACK</title>
<updated>2022-05-26T18:14:54+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2022-05-26T18:14:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=d61b0c60287c38008d312ddd11724a15b1737f7b'/>
<id>urn:sha1:d61b0c60287c38008d312ddd11724a15b1737f7b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Details (identation and typos)</title>
<updated>2022-05-10T14:13:39+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2022-05-10T14:13:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=e435aaabef8e717e0812a16a82b56acd11fb34c1'/>
<id>urn:sha1:e435aaabef8e717e0812a16a82b56acd11fb34c1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>More uniform implementation for tail calls</title>
<updated>2021-10-29T16:41:24+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2021-10-29T16:41:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=1fce5bea817de50e055a84c153a975f25bfcf493'/>
<id>urn:sha1:1fce5bea817de50e055a84c153a975f25bfcf493</id>
<content type='text'>
'luaD_pretailcall' mimics 'luaD_precall', handling call metamethods
and calling C functions directly. That makes the code in the
interpreter loop simpler.

This commit also goes back to emulating the tail call in 'luaD_precall'
with a goto, as C compilers may not do proper tail calls and the C
stack can overflow much sooner than the Lua stack (which grows as the
metamethod is added to it).
</content>
</entry>
<entry>
<title>'luaD_tryfuncTM' checks stack space by itself</title>
<updated>2021-08-18T15:05:06+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2021-08-18T15:05:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=91673a8ec0ae55e188a790bd2dfdc99246adf20e'/>
<id>urn:sha1:91673a8ec0ae55e188a790bd2dfdc99246adf20e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Undo simplification of tail calls (commit 901d760)</title>
<updated>2021-08-18T14:21:33+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2021-08-18T14:21:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=41871f1803770305f182f56cbd22a336c5236a19'/>
<id>urn:sha1:41871f1803770305f182f56cbd22a336c5236a19</id>
<content type='text'>
Not that simpler and slower.
</content>
</entry>
<entry>
<title>Simplification in the parameters of 'luaD_precall'</title>
<updated>2021-06-30T15:53:21+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2021-06-30T15:53:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=dbdc74dc5502c2e05e1c1e2ac894943f418c8431'/>
<id>urn:sha1:dbdc74dc5502c2e05e1c1e2ac894943f418c8431</id>
<content type='text'>
The parameters 'nresults' and 'delta1', in 'luaD_precall', were never
meaningful simultaneously. So, they were combined in a single parameter
'retdel'.
</content>
</entry>
</feed>
