aboutsummaryrefslogtreecommitdiff
path: root/ltm.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Added gcc option '-Wconversion'Roberto Ierusalimschy2024-07-271-3/+3
| | | | | No warnings for standard numerical types. Still pending alternative numerical types.
* Fixed dangling 'StkId' in 'luaV_finishget'Roberto Ierusalimschy2024-03-291-2/+2
| | | | Bug introduced in 05932567.
* Small optimization in 'luaH_psetint'Roberto Ierusalimschy2024-01-251-3/+4
| | | | | | It is quite common to write to empty but existing cells in the array part of a table, so 'luaH_psetint' checks for the common case that the table doesn't have a newindex metamethod to complete the write.
* Merge branch 'master' into nextversionRoberto Ierusalimschy2023-06-221-3/+2
|\
| * Avoid inclusion loop in 'ltm.h'Roberto Ierusalimschy2023-06-161-3/+2
| |
* | Merge branch 'master' into nextversionRoberto Ierusalimschy2022-12-141-2/+3
|\|
| * 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.
* | Tables have a 'lastfree' information only when neededRoberto Ierusalimschy2022-11-011-2/+2
|/ | | | | Only tables with some minimum number of entries in their hash part have a 'lastfree' field, kept in a header before the node vector.
* 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
|