<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/lua-github.git/lparser.h, 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 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>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>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>First implementation of constant propagation</title>
<updated>2019-07-12T14:38:42+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2019-07-12T14:38:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=f6aab3ec1f111cd8d968bdcb7ca800e93b819d24'/>
<id>f6aab3ec1f111cd8d968bdcb7ca800e93b819d24</id>
<content type='text'>
Local constant variables initialized with compile-time constants
are optimized away from the code.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Local constant variables initialized with compile-time constants
are optimized away from the code.
</pre>
</div>
</content>
</entry>
<entry>
<title>Towards constant propagation</title>
<updated>2019-07-10T17:00:22+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2019-07-10T17:00:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=3d296304ef14ac9a6d1fa9357541ddd9bb54722f'/>
<id>3d296304ef14ac9a6d1fa9357541ddd9bb54722f</id>
<content type='text'>
This commit detaches the number of active variables from the
number of variables in the stack, during compilation. Soon,
compile-time constants will be propagated and therefore will
not exist during run time (in the stack).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit detaches the number of active variables from the
number of variables in the stack, during compilation. Soon,
compile-time constants will be propagated and therefore will
not exist during run time (in the stack).
</pre>
</div>
</content>
</entry>
<entry>
<title>New implementation for constants</title>
<updated>2019-07-09T13:43:17+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2019-07-09T13:43:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=54f7b46c1e8a0188e1649046a3a72522f2d769f4'/>
<id>54f7b46c1e8a0188e1649046a3a72522f2d769f4</id>
<content type='text'>
VLOCAL expressions keep a reference to their corresponding 'Vardesc',
and 'Upvaldesc' (for upvalues) has a field 'ro' (read-only). So, it is
easier to check whether a variable is read-only. The decoupling in
VLOCAL between 'vidx' ('Vardesc' index) and 'sidx' (stack index)
should also help the forthcoming implementation of compile-time
constant propagation.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
VLOCAL expressions keep a reference to their corresponding 'Vardesc',
and 'Upvaldesc' (for upvalues) has a field 'ro' (read-only). So, it is
easier to check whether a variable is read-only. The decoupling in
VLOCAL between 'vidx' ('Vardesc' index) and 'sidx' (stack index)
should also help the forthcoming implementation of compile-time
constant propagation.
</pre>
</div>
</content>
</entry>
<entry>
<title>First take on constant propagation</title>
<updated>2019-07-01T15:42:31+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2019-07-01T15:42:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=8eca21c2e85625390a2a3b08c231e75e315980b0'/>
<id>8eca21c2e85625390a2a3b08c231e75e315980b0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Structure 'Vardesc' does not need a 'name' field</title>
<updated>2019-06-21T13:16:57+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2019-06-21T13:16:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=e4b02ca8e48b499c57dd3e5882d18145db60fd4c'/>
<id>e4b02ca8e48b499c57dd3e5882d18145db60fd4c</id>
<content type='text'>
Removed the field 'name' from the structure 'Vardesc', as the name
of the local variable is already available in the prototype of the
function, through the index 'idx'.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Removed the field 'name' from the structure 'Vardesc', as the name
of the local variable is already available in the prototype of the
function, through the index 'idx'.
</pre>
</div>
</content>
</entry>
<entry>
<title>First implementation for 'const' variables</title>
<updated>2019-05-17T14:11:44+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2019-05-17T14:11:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=d9f40e3f6fb61650240c47d548bee69b24b07859'/>
<id>d9f40e3f6fb61650240c47d548bee69b24b07859</id>
<content type='text'>
A variable can be declared const, which means it cannot be assigned to,
with the syntax 'local &lt;const&gt; name = exp'.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A variable can be declared const, which means it cannot be assigned to,
with the syntax 'local &lt;const&gt; name = exp'.
</pre>
</div>
</content>
</entry>
<entry>
<title>Details</title>
<updated>2018-11-22T15:56:04+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2018-11-22T15:56:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=35296e1fde705b3ac8356a4f4ce426497cf7b64c'/>
<id>35296e1fde705b3ac8356a4f4ce426497cf7b64c</id>
<content type='text'>
  comments and other janitorial work.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  comments and other janitorial work.
</pre>
</div>
</content>
</entry>
</feed>
