<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lua/lfunc.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>2022-11-08T13:15:10+00:00</updated>
<entry>
<title>Removed unused field 'UpVal.tbc'</title>
<updated>2022-11-08T13:15:10+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2022-11-08T13:15:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=be908a7d4d8130264ad67c5789169769f824c5d1'/>
<id>urn:sha1:be908a7d4d8130264ad67c5789169769f824c5d1</id>
<content type='text'>
</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>Better documentation for 'multires' expressions</title>
<updated>2022-08-19T17:10:18+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2022-08-19T17:10:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=c6cea857a4845940c833e39a149d20bb64a9af85'/>
<id>urn:sha1:c6cea857a4845940c833e39a149d20bb64a9af85</id>
<content type='text'>
Manual has a new section explaining multires expressions, lists of
expressions, and adjustments. This commit also corrects some comments
in the code.
</content>
</entry>
<entry>
<title>Bug: 'lua_settop' may use an invalid pointer to stack</title>
<updated>2022-05-25T20:41:39+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2022-05-25T20:41:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=196bb94d66e727e0aec053a0276c3ad701500762'/>
<id>urn:sha1:196bb94d66e727e0aec053a0276c3ad701500762</id>
<content type='text'>
</content>
</entry>
<entry>
<title>New implementation for 'tbclist'</title>
<updated>2021-03-10T13:27:19+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2021-03-10T13:27:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=81c6021fb40a254d9a586b0cb53453bba8973d80'/>
<id>urn:sha1:81c6021fb40a254d9a586b0cb53453bba8973d80</id>
<content type='text'>
- Fixes a bug, by removing dummy nodes together with the node
itself. (The previous implementation could leave dummy nodes in frames
which otherwise had no tbc variables, and therefore would not close
variables; that could leave 'tbclist' pointing higher than 'top', which
could dangle if the stack shrank.)

- Computes MAXDELTA based on the type of delta, to ease changing its
type if needed.

- Instead of 'isdummy', uses 'delta==0' to signal dummy nodes. (Dummy
nodes always have MAXDELTA for their real delta.)
</content>
</entry>
<entry>
<title>New implementation for to-be-closed variables</title>
<updated>2021-02-09T17:00:05+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2021-02-09T17:00:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=4e47f81188d37e29027158b76271d02a781242e2'/>
<id>urn:sha1:4e47f81188d37e29027158b76271d02a781242e2</id>
<content type='text'>
To-be-closed variables are linked in their own list, embedded into the
stack elements. (Due to alignment, this information does not change
the size of the stack elements in most architectures.)  This new list
does not produce garbage and avoids memory errors when creating tbc
variables.
</content>
</entry>
<entry>
<title>Fixed some bugs around stack reallocation</title>
<updated>2021-02-05T14:00:28+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2021-02-05T14:00:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=2bfa13e520e53210b96ead88f49a9ca20c5a5d18'/>
<id>urn:sha1:2bfa13e520e53210b96ead88f49a9ca20c5a5d18</id>
<content type='text'>
Long time without using HARDSTACKTESTS...
</content>
</entry>
<entry>
<title>Simpler handling of errors when creating tbc variables</title>
<updated>2021-01-19T13:03:13+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2021-01-19T13:03:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=6ccd24eff58340c00db2877c4558a63c6b859442'/>
<id>urn:sha1:6ccd24eff58340c00db2877c4558a63c6b859442</id>
<content type='text'>
New field 'lua_State.ptbc' keeps to-be-closed variable until its
upvalue is created, so that it can be closed in case of a
memory-allocation error.
</content>
</entry>
<entry>
<title>Allow yields inside '__close' metamethods</title>
<updated>2021-01-13T16:54:10+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2021-01-13T16:54:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=b07fc10e91a5954254b47280aba287220c734a4b'/>
<id>urn:sha1:b07fc10e91a5954254b47280aba287220c734a4b</id>
<content type='text'>
Initial implementation to allow yields inside '__close' metamethods.
This current version still does not allow a '__close' metamethod
to yield when called due to an error. '__close' metamethods from
C functions also are not allowed to yield.
</content>
</entry>
<entry>
<title>No need to recheck close method before calling it</title>
<updated>2020-12-29T13:23:02+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2020-12-29T13:23:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=59e565d9555c07e82808d8c1db8f4f4d159b5e5c'/>
<id>urn:sha1:59e565d9555c07e82808d8c1db8f4f4d159b5e5c</id>
<content type='text'>
A to-be-closed variable is constant and it must have a close metamethod
when it is created. A program has to go out of its way (e.g., by
changing the variable's metamethod) to invalidate that check. So,
it is not worth to test that again. If the program tampers with the
metamethod, Lua will raise a regular error when attempting to call it.
</content>
</entry>
</feed>
