Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Added gcc option '-Wconversion' | Roberto Ierusalimschy | 2024-07-27 | 1 | -3/+3 |
| | | | | | No warnings for standard numerical types. Still pending alternative numerical types. | ||||
* | Fixed dangling 'StkId' in 'luaV_finishget' | Roberto Ierusalimschy | 2024-03-29 | 1 | -2/+2 |
| | | | | Bug introduced in 05932567. | ||||
* | Small optimization in 'luaH_psetint' | Roberto Ierusalimschy | 2024-01-25 | 1 | -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 nextversion | Roberto Ierusalimschy | 2023-06-22 | 1 | -3/+2 |
|\ | |||||
| * | Avoid inclusion loop in 'ltm.h' | Roberto Ierusalimschy | 2023-06-16 | 1 | -3/+2 |
| | | |||||
* | | Merge branch 'master' into nextversion | Roberto Ierusalimschy | 2022-12-14 | 1 | -2/+3 |
|\| | |||||
| * | Details in some header files | Roberto Ierusalimschy | 2022-12-14 | 1 | -2/+3 |
| | | | | | | | | | | Identifier LUA_NUMTAGS was deprecated (changed to LUA_NUMTYPES) + better handling of some inclusion loops. | ||||
* | | Tables have a 'lastfree' information only when needed | Roberto Ierusalimschy | 2022-11-01 | 1 | -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' field | Roberto Ierusalimschy | 2020-08-07 | 1 | -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 tags | Roberto Ierusalimschy | 2020-01-31 | 1 | -1/+1 |
| | | | | | LUA_T* represents only types; tags (types + Variants) are represented by LUA_V* constants. | ||||
* | First version of OP_MMBIN opcodes | Roberto Ierusalimschy | 2019-08-27 | 1 | -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 metamethods | Roberto Ierusalimschy | 2019-07-26 | 1 | -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 comparisons | Roberto Ierusalimschy | 2019-03-22 | 1 | -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 Ierusalimschy | 2018-11-05 | 1 | -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 variables | Roberto Ierusalimschy | 2018-10-17 | 1 | -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 strings | Roberto Ierusalimschy | 2018-08-23 | 1 | -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 Ierusalimschy | 2018-06-18 | 1 | -2/+2 |
| | | | | + change in 'LUAMOD_API' as opening functions do not need to be global | ||||
* | added 'const' to 'Proto*' when possible | Roberto Ierusalimschy | 2018-06-08 | 1 | -2/+2 |
| | |||||
* | no more 'luaH_emptyobject' and comparisons of addresses of global variables | Roberto Ierusalimschy | 2018-06-01 | 1 | -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.h | Roberto Ierusalimschy | 2018-05-23 | 1 | -2/+1 |
| | |||||
* | no more nil-in-table | Roberto Ierusalimschy | 2018-04-04 | 1 | -5/+1 |
| | |||||
* | metamethods for 'removekey'/'keyin' | Roberto Ierusalimschy | 2018-02-27 | 1 | -1/+5 |
| | |||||
* | first version of empty entries in tables | Roberto Ierusalimschy | 2018-02-23 | 1 | -1/+7 |
| | | | | (so that, in the future, tables can contain regular nil entries) | ||||
* | correct way to check stack space for vararg functions | Roberto Ierusalimschy | 2018-02-17 | 1 | -2/+2 |
| | |||||
* | vararg back to '...' (but with another implementation) | Roberto Ierusalimschy | 2018-02-09 | 1 | -4/+6 |
| | | | | new implementation should have zero overhead for non-vararg functions | ||||
* | new opcode 'PREPVARARG' | Roberto Ierusalimschy | 2018-02-07 | 1 | -2/+2 |
| | | | | (avoids test for vararg function in all function calls) | ||||
* | bug in tailcall of vararg functions | Roberto Ierusalimschy | 2018-01-28 | 1 | -2/+2 |
| | | | | (when adjusting missing parameters) | ||||
* | new opcodes BANDK/BORK/BXORK. (They do not use immediate operands | Roberto Ierusalimschy | 2017-12-13 | 1 | -1/+3 |
| | | | | | because, too often, masks in bitwise operations are integers larger than one byte.) | ||||
* | new opcodes 'OP_LTI' and 'OP_LEI' | Roberto Ierusalimschy | 2017-11-27 | 1 | -1/+3 |
| | |||||
* | new function 'luaT_trybiniTM' | Roberto Ierusalimschy | 2017-09-27 | 1 | -1/+3 |
| | | | | to handle tag methods for instructions with immediate integer arguments | ||||
* | new type 'StackValue' for stack elements | Roberto Ierusalimschy | 2017-06-29 | 1 | -3/+5 |
| | | | | (we may want to put extra info there in the future) | ||||
* | back to old-style vararg system (with vararg table collecting extra | Roberto Ierusalimschy | 2017-05-13 | 1 | -1/+4 |
| | | | | arguments) | ||||
* | detail ('luaT_callbinTM' does not need to be extern) | Roberto Ierusalimschy | 2017-05-08 | 1 | -3/+1 |
| | |||||
* | When available, use metafield '__name' in error messages | Roberto Ierusalimschy | 2016-02-26 | 1 | -2/+3 |
| | |||||
* | `name' in comments changed to 'name' | Roberto Ierusalimschy | 2014-10-25 | 1 | -2/+2 |
| | |||||
* | more relaxed rules for __eq metamethod (more similar to other | Roberto Ierusalimschy | 2014-06-10 | 1 | -2/+1 |
| | | | | operators) | ||||
* | first implementation of '<<', '>>', and '~' (bitwise not) | Roberto Ierusalimschy | 2013-12-30 | 1 | -1/+4 |
| | |||||
* | first implementation of bitwise operators '&' (band), '|' (bor), | Roberto Ierusalimschy | 2013-12-18 | 1 | -1/+4 |
| | | | | and '~' (bxor) | ||||
* | new order for binary operations (grouping them by type of result) | Roberto Ierusalimschy | 2013-12-16 | 1 | -4/+4 |
| | |||||
* | new function 'luaT_trybinTM' | Roberto Ierusalimschy | 2013-04-29 | 1 | -1/+3 |
| | |||||
* | new operation '//' (integer division) | Roberto Ierusalimschy | 2013-04-26 | 1 | -1/+2 |
| | |||||
* | functions 'get_equalTM' and 'call_orderTM' moved to other files | Roberto Ierusalimschy | 2013-04-25 | 1 | -1/+6 |
| | | | | to make 'lvm.c' smaller | ||||
* | functions 'traceexec', 'callTM', and 'call_binTM' moved to other | Roberto Ierusalimschy | 2013-04-25 | 1 | -1/+6 |
| | | | | files to make 'lvm.c' a little smaller | ||||
* | 'ttypenv' -> 'ttnov' | Roberto Ierusalimschy | 2013-04-12 | 1 | -2/+2 |
| | |||||
* | small problems with 'luaone.c' | Roberto Ierusalimschy | 2011-02-28 | 1 | -2/+2 |
| | |||||
* | first implementation of light C functions | Roberto Ierusalimschy | 2010-04-14 | 1 | -2/+3 |
| | |||||
* | "no value" added to array luaT_typenames + occurrences of "userdata" | Roberto Ierusalimschy | 2010-01-13 | 1 | -2/+4 |
| | | | | in that array unified in a single address | ||||
* | new macros 'LUAI_DDEC'/'LUAI_DDEF' to better control declarations and | Roberto Ierusalimschy | 2009-11-19 | 1 | -2/+2 |
| | | | | definitions of non-static variables | ||||
* | tables and strings respect __len metamethod | Roberto Ierusalimschy | 2007-09-10 | 1 | -2/+2 |
| | |||||
* | new mark LUAI_DATA for extern data | Roberto Ierusalimschy | 2005-06-06 | 1 | -2/+2 |
| |