<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lua/lcode.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>2023-05-22T17:47:54+00:00</updated>
<entry>
<title>Several functions turned 'static'</title>
<updated>2023-05-22T17:47:54+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2023-05-22T17:47:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=9be74ccc214eb6f4d9d0b9496fd973542c7377d9'/>
<id>urn:sha1:9be74ccc214eb6f4d9d0b9496fd973542c7377d9</id>
<content type='text'>
Several functions that were already being used only inside their
own file have been declared as 'static'.
</content>
</entry>
<entry>
<title>Details</title>
<updated>2020-02-27T15:59:22+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2020-02-27T15:59:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=6eb53b752617fae9e1329bfe2cfecdcbb593c398'/>
<id>urn:sha1:6eb53b752617fae9e1329bfe2cfecdcbb593c398</id>
<content type='text'>
Several details in code (e.g., moving a variable to the most inner
scope that encloses its uses), comments, parameter names, extra tests.
</content>
</entry>
<entry>
<title>Simplification in the call to 'constfolding'</title>
<updated>2019-09-11T13:20:10+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2019-09-11T13:20:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=40d8832ee05096f9aea8eb54d1cdccf2646aecd0'/>
<id>urn:sha1:40d8832ee05096f9aea8eb54d1cdccf2646aecd0</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>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='https://git.lua4.win/lua/commit/?id=758c1ef445ab27d89bace746111add04083a8e20'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>OP_NEWTABLE keeps exact size of arrays</title>
<updated>2019-07-12T19:13:50+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2019-07-12T19:13:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=1fb4d539254b67e7e35ed698250c66d1edff0e08'/>
<id>urn:sha1:1fb4d539254b67e7e35ed698250c66d1edff0e08</id>
<content type='text'>
OP_NEWTABLE is followed by an OP_EXTRAARG, so that it can keep
the exact size of the array part of the table to be created.
(Functions 'luaO_int2fb'/'luaO_fb2int' were removed.)
</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>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>Big revamp in the implmentation of labels/gotos</title>
<updated>2018-10-29T17:26:48+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2018-10-29T17:26:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=a006514ea138a29b6031058d9002b48a572b5dd6'/>
<id>urn:sha1:a006514ea138a29b6031058d9002b48a572b5dd6</id>
<content type='text'>
Added restriction that, when a label is created, there cannot be
another label with the same name visible. That allows backward goto's
to be resolved when they are read. Backward goto's get a close if
they jump out of the scope of some variable; labels get a close only
if previous goto to it jumps out of the scope of some upvalue.
</content>
</entry>
</feed>
