<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lua/lparser.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>2020-12-02T18:13:13+00:00</updated>
<entry>
<title>Details</title>
<updated>2020-12-02T18:13:13+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2020-12-02T18:13:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=d9d2904f09a8039522dfd6f118d4e37bffd5bdf6'/>
<id>urn:sha1:d9d2904f09a8039522dfd6f118d4e37bffd5bdf6</id>
<content type='text'>
Names in the parser and other details that do not change actual code.
</content>
</entry>
<entry>
<title>Details</title>
<updated>2020-10-30T13:18:54+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2020-10-30T13:18:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=94cbe4651156a84dd9114d7daaa61acd050adbe0'/>
<id>urn:sha1:94cbe4651156a84dd9114d7daaa61acd050adbe0</id>
<content type='text'>
- small corrections in the manual
- ldo.c: 'docall' -&gt; 'ccall' ('docall' already used in 'lua.c')
- comments
</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='https://git.lua4.win/lua/commit/?id=63295f1f7fa052fabcb4d69d49203cf33a7deef0'/>
<id>urn:sha1: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>
</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='https://git.lua4.win/lua/commit/?id=5f83fb658206d195e54d3574b989ce5285a5b18f'/>
<id>urn:sha1:5f83fb658206d195e54d3574b989ce5285a5b18f</id>
<content type='text'>
</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='https://git.lua4.win/lua/commit/?id=d6af81084df569bc8e3bd0949ad6fc0b40c8468d'/>
<id>urn:sha1: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>
</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='https://git.lua4.win/lua/commit/?id=f6aab3ec1f111cd8d968bdcb7ca800e93b819d24'/>
<id>urn:sha1:f6aab3ec1f111cd8d968bdcb7ca800e93b819d24</id>
<content type='text'>
Local constant variables initialized with compile-time constants
are optimized away from the code.
</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='https://git.lua4.win/lua/commit/?id=3d296304ef14ac9a6d1fa9357541ddd9bb54722f'/>
<id>urn:sha1: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>
</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='https://git.lua4.win/lua/commit/?id=54f7b46c1e8a0188e1649046a3a72522f2d769f4'/>
<id>urn:sha1: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>
</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='https://git.lua4.win/lua/commit/?id=8eca21c2e85625390a2a3b08c231e75e315980b0'/>
<id>urn:sha1:8eca21c2e85625390a2a3b08c231e75e315980b0</id>
<content type='text'>
</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='https://git.lua4.win/lua/commit/?id=e4b02ca8e48b499c57dd3e5882d18145db60fd4c'/>
<id>urn:sha1: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>
</entry>
</feed>
