<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lua/ltm.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-06-16T14:52:14+00:00</updated>
<entry>
<title>Avoid inclusion loop in 'ltm.h'</title>
<updated>2023-06-16T14:52:14+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2023-06-16T14:52:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=05ec55f16b389a4377adab84efe374437da8dbd2'/>
<id>urn:sha1:05ec55f16b389a4377adab84efe374437da8dbd2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Details in some header files</title>
<updated>2022-12-14T19:20:39+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2022-12-14T19:20:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=6aabf4b15e7637c2ab4133abf3df0a77f34b6005'/>
<id>urn:sha1:6aabf4b15e7637c2ab4133abf3df0a77f34b6005</id>
<content type='text'>
Identifier LUA_NUMTAGS was deprecated (changed to LUA_NUMTYPES) +
better handling of some inclusion loops.
</content>
</entry>
<entry>
<title>Free bit 7 of GC 'marked' field</title>
<updated>2020-08-07T14:21:44+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2020-08-07T14:21:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=7c3cb71fa48fbe84d9d9c664eb646446fb80898b'/>
<id>urn:sha1:7c3cb71fa48fbe84d9d9c664eb646446fb80898b</id>
<content type='text'>
Tables were using this bit to indicate their array sizes were real
('isrealasize'), but this bit can be useful for tests. Instead, they
can use bit 7 of their 'flag' field for that purpose. (There are only
six fast-access metamethods.) This 'flag' field only exists in tables,
so this use does not affect other types.
</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>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>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>
<entry>
<title>New macros for arithmetic/bitwise operations in 'luaV_execute'</title>
<updated>2018-11-05T18:10:42+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2018-11-05T18:10:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=5e76a4fd313a8690d300085c4e8fcb9dca50c01a'/>
<id>urn:sha1:5e76a4fd313a8690d300085c4e8fcb9dca50c01a</id>
<content type='text'>
The repetitive code of the arithmetic and bitwise operators in
the main iterpreter loop was moved to appropriate macros.
(As a detail, the function 'luaV_div' was renamed 'luaV_idiv',
as it does an "integer division" (floor division).
</content>
</entry>
<entry>
<title>First "complete" implementation of to-be-closed variables</title>
<updated>2018-10-17T13:44:42+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2018-10-17T13:44:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=bd96330d037660d9a1769c6c0d989f017e5f0278'/>
<id>urn:sha1:bd96330d037660d9a1769c6c0d989f017e5f0278</id>
<content type='text'>
Still missing:
- handling of memory errors when creating upvalue (must run closing
method all the same)
- interaction with coroutines
</content>
</entry>
<entry>
<title>Removed extra information from RCS keyword strings</title>
<updated>2018-08-23T17:26:12+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2018-08-23T17:26:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=f99509581ee73c1c2dbddb3398e87c098771d31f'/>
<id>urn:sha1:f99509581ee73c1c2dbddb3398e87c098771d31f</id>
<content type='text'>
Version numbers and dates (mostly wrong) from RCS keyword strings
removed from all source files; only the file name are kept.
</content>
</entry>
</feed>
