<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/lua-github.git/testes/code.lua, branch v5.4.2</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>Removed optimization for «if ... then goto»</title>
<updated>2020-11-11T17:41:41+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2020-11-11T17:41:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=ab1aca94e83d2eff1605ea1854df023c814cef21'/>
<id>ab1aca94e83d2eff1605ea1854df023c814cef21</id>
<content type='text'>
That optimization was too complex and caused some weird traces when
debugging. The more common case «if ... then break» was kept.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
That optimization was too complex and caused some weird traces when
debugging. The more common case «if ... then break» was kept.
</pre>
</div>
</content>
</entry>
<entry>
<title>Changed internal representation of booleans</title>
<updated>2020-01-06T14:38:31+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2020-01-06T14:38:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=5ff408d2189c6c24fdf8908db4a31432bbdd6f15'/>
<id>5ff408d2189c6c24fdf8908db4a31432bbdd6f15</id>
<content type='text'>
Instead of an explicit value (field 'b'), true and false use different
tag variants. This avoids reading an extra field and results in more
direct code. (Most code that uses booleans needs to distinguish between
true and false anyway.)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead of an explicit value (field 'b'), true and false use different
tag variants. This avoids reading an extra field and results in more
direct code. (Most code that uses booleans needs to distinguish between
true and false anyway.)
</pre>
</div>
</content>
</entry>
<entry>
<title>Janitorial work</title>
<updated>2019-10-01T20:24:37+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2019-10-01T20:24:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=b2a580bdb1982e45bb37f95b78c2dafec6efa7a6'/>
<id>b2a580bdb1982e45bb37f95b78c2dafec6efa7a6</id>
<content type='text'>
- Several details in 'lcode.c'
- A few more tests for code generation
- Bug in assert in 'lcode.c' ("=" x "==")
- Comments in 'lopcodes.h' and 'ltable.c'
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Several details in 'lcode.c'
- A few more tests for code generation
- Bug in assert in 'lcode.c' ("=" x "==")
- Comments in 'lopcodes.h' and 'ltable.c'
</pre>
</div>
</content>
</entry>
<entry>
<title>Subtraction of small constant integers optimized with OP_ADDI</title>
<updated>2019-09-24T17:34:52+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2019-09-24T17:34:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=6ef366644f7c3c21cfb17434835edf4ebf970d6d'/>
<id>6ef366644f7c3c21cfb17434835edf4ebf970d6d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Removed arithmetic opcodes with immediate operand</title>
<updated>2019-09-10T16:20:03+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2019-09-10T16:20:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=91dad09f65984048ae43c8894d18acb785c7092b'/>
<id>91dad09f65984048ae43c8894d18acb785c7092b</id>
<content type='text'>
The difference in performance between immediate operands and K operands
does not seem to justify all those extra opcodes. We only keep OP_ADDI,
due to its ubiquity and because the difference is a little more relevant.
(Later, OP_SUBI will be implemented by OP_ADDI, negating the constant.)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The difference in performance between immediate operands and K operands
does not seem to justify all those extra opcodes. We only keep OP_ADDI,
due to its ubiquity and because the difference is a little more relevant.
(Later, OP_SUBI will be implemented by OP_ADDI, negating the constant.)
</pre>
</div>
</content>
</entry>
<entry>
<title>Use of 'MMBIN' opcodes extended to shift operators</title>
<updated>2019-08-28T12:58:03+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2019-08-28T12:58:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=46b84580d6d7890f4ba813f312e52514fffc38a7'/>
<id>46b84580d6d7890f4ba813f312e52514fffc38a7</id>
<content type='text'>
Plus, this commit removes useless 'tm' parameters in 'op_*' macros.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Plus, this commit removes useless 'tm' parameters in 'op_*' macros.
</pre>
</div>
</content>
</entry>
<entry>
<title>First version of OP_MMBIN opcodes</title>
<updated>2019-08-27T16:59:39+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2019-08-27T16:59:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=df13f259487459f3a28d31d76c890aa6c2d061e0'/>
<id>df13f259487459f3a28d31d76c890aa6c2d061e0</id>
<content type='text'>
In arithmetic/bitwise operators, the call to metamethods is made
in a separate opcode following the main one. (The main
opcode skips this next one when the operation succeeds.) This
change reduces slightly the size of the binary and the complexity
of the arithmetic/bitwise opcodes. It also simplfies the treatment
of errors and yeld/resume in these operations, as there are much
fewer cases to consider. (Only OP_MMBIN/OP_MMBINI/OP_MMBINK,
instead of all variants of all arithmetic/bitwise operators.)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In arithmetic/bitwise operators, the call to metamethods is made
in a separate opcode following the main one. (The main
opcode skips this next one when the operation succeeds.) This
change reduces slightly the size of the binary and the complexity
of the arithmetic/bitwise opcodes. It also simplfies the treatment
of errors and yeld/resume in these operations, as there are much
fewer cases to consider. (Only OP_MMBIN/OP_MMBINI/OP_MMBINK,
instead of all variants of all arithmetic/bitwise operators.)
</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>Fixed small issue with constant propagation</title>
<updated>2019-07-17T17:50:42+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2019-07-17T17:50:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/lua-github.git/commit/?id=8082906c059f2b1473de4363ca57fe19b52f281f'/>
<id>8082906c059f2b1473de4363ca57fe19b52f281f</id>
<content type='text'>
Constants directly assigned to other constants were not propagating:
For instance, in
  local &lt;const&gt; k1 = 10
  local &lt;const&gt; k2 = k1
'k2' were not treated as a compile-time constant.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Constants directly assigned to other constants were not propagating:
For instance, in
  local &lt;const&gt; k1 = 10
  local &lt;const&gt; k2 = k1
'k2' were not treated as a compile-time constant.
</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>
</feed>
