<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/lua-github.git/lfunc.h, branch v5.4.4</title>
<subtitle>github.com: lua/lua.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/'/>
<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='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=4e47f81188d37e29027158b76271d02a781242e2'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</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='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=b07fc10e91a5954254b47280aba287220c734a4b'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Cleaner handling of errors in '__close' metamethods</title>
<updated>2020-12-28T14:40:30+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2020-12-28T14:40:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=7af27ef59da4051914d93d8b63efac663b64765a'/>
<id>7af27ef59da4051914d93d8b63efac663b64765a</id>
<content type='text'>
Instead of protecting each individual metamethod call, protect the
entire call to 'luaF_close'.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead of protecting each individual metamethod call, protect the
entire call to 'luaF_close'.
</pre>
</div>
</content>
</entry>
<entry>
<title>Details</title>
<updated>2019-11-18T17:54:06+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2019-11-18T17:54:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=5f83fb658206d195e54d3574b989ce5285a5b18f'/>
<id>5f83fb658206d195e54d3574b989ce5285a5b18f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Do not collect open upvalues</title>
<updated>2019-07-22T12:41:10+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2019-07-22T12:41:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=9e6807c3c9d5036e999f636f936df07b72284442'/>
<id>9e6807c3c9d5036e999f636f936df07b72284442</id>
<content type='text'>
Open upvalues are kept alive together with their corresponding
stack. This change makes a simpler and safer fix to the issue in
commit 440a5ee78c8, about upvalues in the list of open upvalues
being collected while others are being created. (That previous fix
may not be correct.)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Open upvalues are kept alive together with their corresponding
stack. This change makes a simpler and safer fix to the issue in
commit 440a5ee78c8, about upvalues in the list of open upvalues
being collected while others are being created. (That previous fix
may not be correct.)
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed bug for emergency collection in upvalue creation</title>
<updated>2019-07-19T15:13:00+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2019-07-19T15:13:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=440a5ee78c8592230780310c9c8d8c2ba1700cb1'/>
<id>440a5ee78c8592230780310c9c8d8c2ba1700cb1</id>
<content type='text'>
When creating an upvalue, an emergency collection can collect the
previous upvalue where the new one would be linked. The following
code can trigger the bug, using valgrind on Lua compiled with the
-DHARDMEMTESTS option:

  local x; local y
  (function () return y end)();
  (function () return x end)()
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When creating an upvalue, an emergency collection can collect the
previous upvalue where the new one would be linked. The following
code can trigger the bug, using valgrind on Lua compiled with the
-DHARDMEMTESTS option:

  local x; local y
  (function () return y end)();
  (function () return x end)()
</pre>
</div>
</content>
</entry>
<entry>
<title>New functions 'lua_resetthread' and 'coroutine.kill'</title>
<updated>2018-12-13T15:07:53+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2018-12-13T15:07:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=fdc25a1ebfe9968dcec390dd556375105aa0be40'/>
<id>fdc25a1ebfe9968dcec390dd556375105aa0be40</id>
<content type='text'>
New functions to reset/kill a thread/coroutine, mainly (only?) to
close any pending to-be-closed variable. ('lua_resetthread' also
allows a thread to be reused...)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
New functions to reset/kill a thread/coroutine, mainly (only?) to
close any pending to-be-closed variable. ('lua_resetthread' also
allows a thread to be reused...)
</pre>
</div>
</content>
</entry>
<entry>
<title>Handling of memory errors when creating to-be-closed upvalues</title>
<updated>2018-10-18T19:15:09+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2018-10-18T19:15:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=3c7dc52909ce0688bdb20cacaf686413a79aaf48'/>
<id>3c7dc52909ce0688bdb20cacaf686413a79aaf48</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>First "complete" implementation of to-be-closed variables</title>
<updated>2018-10-17T13:44:42+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2018-10-17T13:44:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=bd96330d037660d9a1769c6c0d989f017e5f0278'/>
<id>bd96330d037660d9a1769c6c0d989f017e5f0278</id>
<content type='text'>
Still missing:
- handling of memory errors when creating upvalue (must run closing
method all the same)
- interaction with coroutines
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Still missing:
- handling of memory errors when creating upvalue (must run closing
method all the same)
- interaction with coroutines
</pre>
</div>
</content>
</entry>
<entry>
<title>Removed extra information from RCS keyword strings</title>
<updated>2018-08-23T17:26:12+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2018-08-23T17:26:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=f99509581ee73c1c2dbddb3398e87c098771d31f'/>
<id>f99509581ee73c1c2dbddb3398e87c098771d31f</id>
<content type='text'>
Version numbers and dates (mostly wrong) from RCS keyword strings
removed from all source files; only the file name are kept.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Version numbers and dates (mostly wrong) from RCS keyword strings
removed from all source files; only the file name are kept.
</pre>
</div>
</content>
</entry>
</feed>
