<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lua/ltm.c, 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>2022-10-29T15:06:37+00:00</updated>
<entry>
<title>Stack indices changed to union's</title>
<updated>2022-10-29T15:06:37+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2022-10-29T15:06:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=413a393e6222482f46599e138bebac162610a572'/>
<id>urn:sha1:413a393e6222482f46599e138bebac162610a572</id>
<content type='text'>
That will allow to change pointers to offsets while reallocating
the stack.
</content>
</entry>
<entry>
<title>Broadening the use of branch hints</title>
<updated>2021-02-24T14:14:44+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2021-02-24T14:14:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=59c88f846d1dcd901a4420651aedf27816618923'/>
<id>urn:sha1:59c88f846d1dcd901a4420651aedf27816618923</id>
<content type='text'>
More uses of macros 'likely'/'unlikely' (renamed to
'l_likely'/'l_unlikely'), both in range (extended to the
libraries) and in scope (extended to hooks, stack growth).
</content>
</entry>
<entry>
<title>Fixed bugs of stack reallocation x GC</title>
<updated>2020-07-07T21:03:48+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2020-07-07T21:03:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=eb41999461b6f428186c55abd95f4ce1a76217d5'/>
<id>urn:sha1:eb41999461b6f428186c55abd95f4ce1a76217d5</id>
<content type='text'>
Macro 'checkstackGC' was doing a GC step after resizing the stack;
the GC could shrink the stack and undo the resize. Moreover, macro
'checkstackp' also does a GC step, which could remove the preallocated
CallInfo when calling a function. (Its name has been changed to
'checkstackGCp' to emphasize that it calls the GC.)
</content>
</entry>
<entry>
<title>Clearer distinction between types and tags</title>
<updated>2020-01-31T14:09:53+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2020-01-31T14:09:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=46c3587a6feb28e1ee4a32aabe463b0ecb9e8f5e'/>
<id>urn:sha1:46c3587a6feb28e1ee4a32aabe463b0ecb9e8f5e</id>
<content type='text'>
LUA_T* represents only types; tags (types + Variants) are represented
by LUA_V* constants.
</content>
</entry>
<entry>
<title>Comment about LUA_COMPAT_LT_LE moved to proper place</title>
<updated>2019-12-10T16:50:20+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2019-12-10T16:50:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=1e0ad018cef2a8e771787f126ce2150028749411'/>
<id>urn:sha1:1e0ad018cef2a8e771787f126ce2150028749411</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Undo change in the handling of 'L-&gt;top' (commit b80077b8f3)</title>
<updated>2019-08-29T15:52:37+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2019-08-29T15:52:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=72a094bda7d71050a91a88474d67d39aa2bc1c46'/>
<id>urn:sha1:72a094bda7d71050a91a88474d67d39aa2bc1c46</id>
<content type='text'>
With MMBIN instructions, there are fewer opcodes that need to update
'L-&gt;top', so that change does not seem to pay for the increased
complexity.
</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='https://git.lua4.win/lua/commit/?id=df13f259487459f3a28d31d76c890aa6c2d061e0'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>Change in the handling of 'L-&gt;top' when calling metamethods</title>
<updated>2019-07-26T17:59:39+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2019-07-26T17:59:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=b80077b8f3e27a94c6afa895b41a9f8b52c42e61'/>
<id>urn:sha1:b80077b8f3e27a94c6afa895b41a9f8b52c42e61</id>
<content type='text'>
Instead of updating 'L-&gt;top' in every place that may call a
metamethod, the metamethod functions themselves (luaT_trybinTM and
luaT_callorderTM) correct the top. (When calling metamethods from
the C API, however, the callers must preserve 'L-&gt;top'.)
</content>
</entry>
<entry>
<title>Details (typos in comments)</title>
<updated>2019-07-05T18:03:15+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2019-07-05T18:03:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=e888976bc6ba5592fb8ab8ecc04a8f63e217aa74'/>
<id>urn:sha1:e888976bc6ba5592fb8ab8ecc04a8f63e217aa74</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Keep correct type for immediate operands in comparisons</title>
<updated>2019-03-22T16:37:17+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2019-03-22T16:37:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=23e6bac8a0bbb9e5df43cbc0b7634b6d1395b0ff'/>
<id>urn:sha1:23e6bac8a0bbb9e5df43cbc0b7634b6d1395b0ff</id>
<content type='text'>
When calling metamethods for things like 'a &lt; 3.0', which generates
the opcode OP_LTI, the C register tells that the operand was
converted to an integer, so that it can be corrected to float when
calling a metamethod.

This commit also includes some other stuff:
- file 'onelua.c' added to the project
- opcode OP_PREPVARARG renamed to OP_VARARGPREP
- comparison opcodes rewritten through macros
</content>
</entry>
</feed>
