<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/lua-github.git/lparser.c, branch v5.4.0</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>Fixed missing GC barriers in compiler and undump</title>
<updated>2020-06-16T12:54:20+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2020-06-16T12:54:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=6d7cd31feec58011a593cf732274a33dcc1bcb53'/>
<id>6d7cd31feec58011a593cf732274a33dcc1bcb53</id>
<content type='text'>
While building a new prototype, the GC needs barriers for every object
(strings and nested prototypes) that is attached to the new prototype.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
While building a new prototype, the GC needs barriers for every object
(strings and nested prototypes) that is attached to the new prototype.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed two bugs in to-be-closed variables x constants</title>
<updated>2020-06-01T18:07:58+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2020-06-01T18:07:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=63295f1f7fa052fabcb4d69d49203cf33a7deef0'/>
<id>63295f1f7fa052fabcb4d69d49203cf33a7deef0</id>
<content type='text'>
The parser were mixing compiler indices of variables with stack indices,
so that when a to-be-closed variable was used inside the scope of
compile-time constants (which may be optimized away), it might be closed
in the wrong place. (See new tests for examples.)

Besides fixing the bugs, this commit also changed comments and variable
names to avoid that kind of confusion and added tests.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The parser were mixing compiler indices of variables with stack indices,
so that when a to-be-closed variable was used inside the scope of
compile-time constants (which may be optimized away), it might be closed
in the wrong place. (See new tests for examples.)

Besides fixing the bugs, this commit also changed comments and variable
names to avoid that kind of confusion and added tests.
</pre>
</div>
</content>
</entry>
<entry>
<title>Small issue in 'exprstat'</title>
<updated>2020-04-23T17:39:34+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2020-04-23T17:39:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=cac075a1221f373053196dbb24bdcff4609b8241'/>
<id>cac075a1221f373053196dbb24bdcff4609b8241</id>
<content type='text'>
The code should not compute an instruction address before checking that
it exists. (Virtually no machine complains of computing an invalid
address, as long as the address is not used, but for ISO C that is
undefined behavior.)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The code should not compute an instruction address before checking that
it exists. (Virtually no machine complains of computing an invalid
address, as long as the address is not used, but for ISO C that is
undefined behavior.)
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed "conceptual" bug in 'luaK_setreturns'</title>
<updated>2020-03-02T16:24:06+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2020-03-02T16:24:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=e4607523234f16ed9ed0436340b9315377dbfe7f'/>
<id>e4607523234f16ed9ed0436340b9315377dbfe7f</id>
<content type='text'>
This function was computing invalid instruction addresses when the
expression was not a multi-return instruction. (Virtually all machines
don't raise errors when computing an invalid address, as long as the
address is not accessed, but this computation is undefined behavior in
ISO C.)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This function was computing invalid instruction addresses when the
expression was not a multi-return instruction. (Virtually all machines
don't raise errors when computing an invalid address, as long as the
address is not accessed, but this computation is undefined behavior in
ISO C.)
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed a warning and other minor issues</title>
<updated>2019-10-04T19:17:04+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2019-10-04T19:17:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=7bd1e53753de7176eb0b23f2bf19ad2235dec826'/>
<id>7bd1e53753de7176eb0b23f2bf19ad2235dec826</id>
<content type='text'>
Fixed some minor issues from the feedback for 5.4-beta rc1.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixed some minor issues from the feedback for 5.4-beta rc1.
</pre>
</div>
</content>
</entry>
<entry>
<title>Change in the syntax of attributes</title>
<updated>2019-07-30T15:18:19+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2019-07-30T15:18:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=0d529138042563baf260366e19a7aa2c60a07174'/>
<id>0d529138042563baf260366e19a7aa2c60a07174</id>
<content type='text'>
Attributes changed to posfixed ('x &lt;const&gt;', instead of '&lt;const&gt; x'),
and "toclose" renamed to "close". Posfixed attributes seem to make it
clearer that it applies to only one variable when there are multiple
variables.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Attributes changed to posfixed ('x &lt;const&gt;', instead of '&lt;const&gt; x'),
and "toclose" renamed to "close". Posfixed attributes seem to make it
clearer that it applies to only one variable when there are multiple
variables.
</pre>
</div>
</content>
</entry>
<entry>
<title>Bug: 'Vardesc' array can be reallocated in 'localstat'</title>
<updated>2019-07-26T16:27:43+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2019-07-26T16:27:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=e70f275f32a5339a86be6f8b9d08c20cb874b205'/>
<id>e70f275f32a5339a86be6f8b9d08c20cb874b205</id>
<content type='text'>
A reference to a 'Vardesc*' (as done by 'localstat') can be
invalidated by the creation of any new variable.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A reference to a 'Vardesc*' (as done by 'localstat') can be
invalidated by the creation of any new variable.
</pre>
</div>
</content>
</entry>
<entry>
<title>Small corrections when setting 'L-&gt;top'</title>
<updated>2019-07-25T16:55:29+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2019-07-25T16:55:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=9a37dc0ce64c51fd57f5e658a5af8f3671a26b0a'/>
<id>9a37dc0ce64c51fd57f5e658a5af8f3671a26b0a</id>
<content type='text'>
- OP_NEWTABLE can use 'ra + 1' to set top (instead of ci-&gt;top);
- OP_CLOSE doesn't need to set top ('Protect' already does that);
- OP_TFORCALL must use 'ProtectNT', to preserve the top already set.
  (That was a small bug, because iterators could be called with
   extra parameters besides the state and the control variable.)
- Comments and an extra test for the bug in previous item.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- OP_NEWTABLE can use 'ra + 1' to set top (instead of ci-&gt;top);
- OP_CLOSE doesn't need to set top ('Protect' already does that);
- OP_TFORCALL must use 'ProtectNT', to preserve the top already set.
  (That was a small bug, because iterators could be called with
   extra parameters besides the state and the control variable.)
- Comments and an extra test for the bug in previous item.
</pre>
</div>
</content>
</entry>
<entry>
<title>New kind of expression VKSTR</title>
<updated>2019-07-17T17:26:56+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2019-07-17T17:26:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=d6af81084df569bc8e3bd0949ad6fc0b40c8468d'/>
<id>d6af81084df569bc8e3bd0949ad6fc0b40c8468d</id>
<content type='text'>
String literal expressions have their own kind VKSTR, instead of the
generic VK. This allows strings to "cross" functions without entering
their constant tables (e.g., if they are used only by some nested
function).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
String literal expressions have their own kind VKSTR, instead of the
generic VK. This allows strings to "cross" functions without entering
their constant tables (e.g., if they are used only by some nested
function).
</pre>
</div>
</content>
</entry>
<entry>
<title>Unification of size representation in OP_NEWTABLE and OP_SETLIST</title>
<updated>2019-07-15T17:59:35+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2019-07-15T17:59:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=758c1ef445ab27d89bace746111add04083a8e20'/>
<id>758c1ef445ab27d89bace746111add04083a8e20</id>
<content type='text'>
Opcodes OP_NEWTABLE and OP_SETLIST use the same representation to
store the size of the array part of a table. This new representation
can go up to 2^33 (8 + 25 bits).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Opcodes OP_NEWTABLE and OP_SETLIST use the same representation to
store the size of the array part of a table. This new representation
can go up to 2^33 (8 + 25 bits).
</pre>
</div>
</content>
</entry>
</feed>
