aboutsummaryrefslogtreecommitdiff
path: root/ltm.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Avoid inclusion loop in 'ltm.h'Roberto Ierusalimschy2023-06-161-3/+2
|
* Details in some header filesRoberto Ierusalimschy2022-12-141-2/+3
| | | | | Identifier LUA_NUMTAGS was deprecated (changed to LUA_NUMTYPES) + better handling of some inclusion loops.
* Free bit 7 of GC 'marked' fieldRoberto Ierusalimschy2020-08-071-0/+9
| | | | | | | | 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.
* Clearer distinction between types and tagsRoberto Ierusalimschy2020-01-311-1/+1
| | | | | LUA_T* represents only types; tags (types + Variants) are represented by LUA_V* constants.
* First version of OP_MMBIN opcodesRoberto Ierusalimschy2019-08-271-1/+1
| | | | | | | | | | | 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.)
* Change in the handling of 'L->top' when calling metamethodsRoberto Ierusalimschy2019-07-261-0/+1
| | | | | | | Instead of updating 'L->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->top'.)
* Keep correct type for immediate operands in comparisonsRoberto Ierusalimschy2019-03-221-1/+1
| | | | | | | | | | | | When calling metamethods for things like 'a < 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
* New macros for arithmetic/bitwise operations in 'luaV_execute'Roberto Ierusalimschy2018-11-051-1/+1
| | | | | | | 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).
* First "complete" implementation of to-be-closed variablesRoberto Ierusalimschy2018-10-171-0/+1
| | | | | | | Still missing: - handling of memory errors when creating upvalue (must run closing method all the same) - interaction with coroutines
* Removed extra information from RCS keyword stringsRoberto Ierusalimschy2018-08-231-1/+1
| | | | | Version numbers and dates (mostly wrong) from RCS keyword strings removed from all source files; only the file name are kept.
* change in 'LUAI_DDEC' to allow variables to be static in 'onelua'Roberto Ierusalimschy2018-06-181-2/+2
| | | | + change in 'LUAMOD_API' as opening functions do not need to be global
* added 'const' to 'Proto*' when possibleRoberto Ierusalimschy2018-06-081-2/+2
|
* no more 'luaH_emptyobject' and comparisons of addresses of global variablesRoberto Ierusalimschy2018-06-011-2/+2
| | | | | (instead, use a different kind of nil to signal the fake entry returned when a key is not found in a table)
* avoid circular inclusion between ltm.h <-> lstate.hRoberto Ierusalimschy2018-05-231-2/+1
|
* no more nil-in-tableRoberto Ierusalimschy2018-04-041-5/+1
|
* metamethods for 'removekey'/'keyin'Roberto Ierusalimschy2018-02-271-1/+5
|
* first version of empty entries in tablesRoberto Ierusalimschy2018-02-231-1/+7
| | | | (so that, in the future, tables can contain regular nil entries)
* correct way to check stack space for vararg functionsRoberto Ierusalimschy2018-02-171-2/+2
|
* vararg back to '...' (but with another implementation)Roberto Ierusalimschy2018-02-091-4/+6
| | | | new implementation should have zero overhead for non-vararg functions
* new opcode 'PREPVARARG'Roberto Ierusalimschy2018-02-071-2/+2
| | | | (avoids test for vararg function in all function calls)
* bug in tailcall of vararg functionsRoberto Ierusalimschy2018-01-281-2/+2
| | | | (when adjusting missing parameters)
* new opcodes BANDK/BORK/BXORK. (They do not use immediate operandsRoberto Ierusalimschy2017-12-131-1/+3
| | | | | because, too often, masks in bitwise operations are integers larger than one byte.)
* new opcodes 'OP_LTI' and 'OP_LEI'Roberto Ierusalimschy2017-11-271-1/+3
|
* new function 'luaT_trybiniTM'Roberto Ierusalimschy2017-09-271-1/+3
| | | | to handle tag methods for instructions with immediate integer arguments
* new type 'StackValue' for stack elementsRoberto Ierusalimschy2017-06-291-3/+5
| | | | (we may want to put extra info there in the future)
* back to old-style vararg system (with vararg table collecting extraRoberto Ierusalimschy2017-05-131-1/+4
| | | | arguments)
* detail ('luaT_callbinTM' does not need to be extern)Roberto Ierusalimschy2017-05-081-3/+1
|
* When available, use metafield '__name' in error messagesRoberto Ierusalimschy2016-02-261-2/+3
|
* `name' in comments changed to 'name'Roberto Ierusalimschy2014-10-251-2/+2
|
* more relaxed rules for __eq metamethod (more similar to otherRoberto Ierusalimschy2014-06-101-2/+1
| | | | operators)
* first implementation of '<<', '>>', and '~' (bitwise not)Roberto Ierusalimschy2013-12-301-1/+4
|
* first implementation of bitwise operators '&' (band), '|' (bor),Roberto Ierusalimschy2013-12-181-1/+4
| | | | and '~' (bxor)
* new order for binary operations (grouping them by type of result)Roberto Ierusalimschy2013-12-161-4/+4
|
* new function 'luaT_trybinTM'Roberto Ierusalimschy2013-04-291-1/+3
|
* new operation '//' (integer division)Roberto Ierusalimschy2013-04-261-1/+2
|
* functions 'get_equalTM' and 'call_orderTM' moved to other filesRoberto Ierusalimschy2013-04-251-1/+6
| | | | to make 'lvm.c' smaller
* functions 'traceexec', 'callTM', and 'call_binTM' moved to otherRoberto Ierusalimschy2013-04-251-1/+6
| | | | files to make 'lvm.c' a little smaller
* 'ttypenv' -> 'ttnov'Roberto Ierusalimschy2013-04-121-2/+2
|
* small problems with 'luaone.c'Roberto Ierusalimschy2011-02-281-2/+2
|
* first implementation of light C functionsRoberto Ierusalimschy2010-04-141-2/+3
|
* "no value" added to array luaT_typenames + occurrences of "userdata"Roberto Ierusalimschy2010-01-131-2/+4
| | | | in that array unified in a single address
* new macros 'LUAI_DDEC'/'LUAI_DDEF' to better control declarations andRoberto Ierusalimschy2009-11-191-2/+2
| | | | definitions of non-static variables
* tables and strings respect __len metamethodRoberto Ierusalimschy2007-09-101-2/+2
|
* new mark LUAI_DATA for extern dataRoberto Ierusalimschy2005-06-061-2/+2
|
* detailsRoberto Ierusalimschy2005-05-201-2/+2
|
* metatables for all typesRoberto Ierusalimschy2005-05-051-1/+2
|
* added LUAI_FUNC to functions not in the APIRoberto Ierusalimschy2005-04-251-5/+6
|
* new `mod' (`%') operatorRoberto Ierusalimschy2005-03-081-1/+2
|
* `TObject' renamed to `TValue' + other name changes and better assertionsRoberto Ierusalimschy2003-12-101-3/+3
| | | | for incremental garbage collection
* default metatable can be NULLRoberto Ierusalimschy2003-12-011-3/+3
|