Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Fixed bug: line hooks in stripped functions | Roberto Ierusalimschy | 2020-07-27 | 1 | -1/+3 |
| | | | | | Line-hook handling was accessing debug info. without checking whether it was present. | ||||
* | Fixed bug: Negation overflow in getlocal/setlocal | Roberto Ierusalimschy | 2020-07-27 | 1 | -3/+3 |
| | |||||
* | Fixed bug: invalid 'oldpc' when returning to a function | Roberto Ierusalimschy | 2020-07-17 | 1 | -16/+25 |
| | | | | | | | | | | The field 'L->oldpc' is not always updated when control returns to a function; an invalid value can seg. fault when computing 'changedline'. (One example is an error in a finalizer; control can return to 'luaV_execute' without executing 'luaD_poscall'.) Instead of trying to fix all possible corner cases, it seems safer to be resilient to invalid values for 'oldpc'. Valid but wrong values at most cause an extra call to a line hook. | ||||
* | Improvements in the handling of signals | Roberto Ierusalimschy | 2020-05-22 | 1 | -9/+11 |
| | | | | Added 'volatile' to 'l_signalT' variables plus some minor changes. | ||||
* | Details | Roberto Ierusalimschy | 2020-02-27 | 1 | -3/+3 |
| | | | | | Several details in code (e.g., moving a variable to the most inner scope that encloses its uses), comments, parameter names, extra tests. | ||||
* | 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. | ||||
* | Changed internal representation of booleans | Roberto Ierusalimschy | 2020-01-06 | 1 | -1/+1 |
| | | | | | | | Instead of an explicit value (field 'b'), true and false use different tag variants. This avoids reading an extra field and results in more direct code. (Most code that uses booleans needs to distinguish between true and false anyway.) | ||||
* | Added macro 'testMMMode' | Roberto Ierusalimschy | 2019-09-06 | 1 | -5/+3 |
| | | | | Macro 'testMMMode' checks whether opcode is an MM opcode. | ||||
* | Use of 'MMBIN' opcodes extended to shift operators | Roberto Ierusalimschy | 2019-08-28 | 1 | -8/+0 |
| | | | | Plus, this commit removes useless 'tm' parameters in 'op_*' macros. | ||||
* | First version of OP_MMBIN opcodes | Roberto Ierusalimschy | 2019-08-27 | 1 | -14/+7 |
| | | | | | | | | | | | 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.) | ||||
* | Tracebacks recognize metamethods '__close' | Roberto Ierusalimschy | 2019-07-31 | 1 | -0/+3 |
| | |||||
* | Details | Roberto Ierusalimschy | 2019-06-03 | 1 | -2/+3 |
| | | | | | Several small changes from feedback on 5.4 alhpa rc1 (warnings, typos in the manual, and the like) | ||||
* | Added field 'srclen' to structure 'lua_Debug' | Roberto Ierusalimschy | 2019-04-04 | 1 | -3/+11 |
| | | | | | | This new field gets the length of 'source' in the same structure. Unlike the other strings in that structure, 'source' can be relatively large, and Lua already has its length readily available. | ||||
* | A to-be-closed variable must have a closable value (or be nil) | Roberto Ierusalimschy | 2018-11-29 | 1 | -8/+10 |
| | | | | | | | It is an error for a to-be-closed variable to have a non-closable non-nil value when it is being closed. This situation does not seem to be useful and often hints to an error. (Particularly in the C API, it is easy to change a to-be-closed index by mistake.) | ||||
* | Added opcodes for arithmetic with K operands | Roberto Ierusalimschy | 2018-11-23 | 1 | -2/+8 |
| | | | | | | | | Added opcodes for all seven arithmetic operators with K operands (that is, operands that are numbers in the array of constants of the function). They cover the cases of constant float operands (e.g., 'x + .0.0', 'x^0.5') and large integer operands (e.g., 'x % 10000'). | ||||
* | Better error messages for invalid operands in numeric 'for' | Roberto Ierusalimschy | 2018-10-30 | 1 | -0/+6 |
| | | | | | | "Better" and similar to error messages for invalid function arguments. *old message: 'for' limit must be a number *new message: bad 'for' limit (number expected, got table) | ||||
* | 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. | ||||
* | added 'const' to 'Proto*' when possible | Roberto Ierusalimschy | 2018-06-08 | 1 | -17/+18 |
| | |||||
* | minimizing the code ran by 'vmfetch' + no more 'vra' | Roberto Ierusalimschy | 2018-05-02 | 1 | -10/+17 |
| | | | | (the code is simpler without 'vra' and conversion is a no-op) | ||||
* | 'fTransfer' -> 'ftransfer' / 'nTransfer' -> 'ntransfer' | Roberto Ierusalimschy | 2018-03-16 | 1 | -4/+4 |
| | | | | (keep the standard of names in lower case) | ||||
* | two new fields 'fTransfer'/'nTransfer' in 'lua_Debug' structure | Roberto Ierusalimschy | 2018-02-17 | 1 | -3/+11 |
| | | | | (for information about values being given and returned in function calls) | ||||
* | vararg back to '...' (but with another implementation) | Roberto Ierusalimschy | 2018-02-09 | 1 | -5/+21 |
| | | | | new implementation should have zero overhead for non-vararg functions | ||||
* | call hooks for Lua functions called by 'luaV_execute' | Roberto Ierusalimschy | 2018-02-06 | 1 | -2/+2 |
| | |||||
* | error handler in protected calls must be a function | Roberto Ierusalimschy | 2018-01-10 | 1 | -2/+2 |
| | |||||
* | keep control of stack top in Lua functions concentrated in 'luaV_execute' | Roberto Ierusalimschy | 2017-12-28 | 1 | -6/+3 |
| | |||||
* | when running Lua code, there is no need to keep 'L->top' "correct"; | Roberto Ierusalimschy | 2017-12-20 | 1 | -9/+10 |
| | | | | set it only when needed. | ||||
* | 'Proto->numparams' does not include vararg parameter | Roberto Ierusalimschy | 2017-12-15 | 1 | -2/+2 |
| | | | | (one less subtraction when calling functions...) | ||||
* | new opcodes BANDK/BORK/BXORK. (They do not use immediate operands | Roberto Ierusalimschy | 2017-12-13 | 1 | -2/+3 |
| | | | | | because, too often, masks in bitwise operations are integers larger than one byte.) | ||||
* | opcodes for order and shift can use several metamethods, | Roberto Ierusalimschy | 2017-12-07 | 1 | -4/+8 |
| | | | | | so it is better to use a generic description + metamethod names in some error messages shown without '__' prefix | ||||
* | detail (typo in comments) | Roberto Ierusalimschy | 2017-11-23 | 1 | -2/+2 |
| | |||||
* | no more 'stackless' implementation; 'luaV_execute' calls itself | Roberto Ierusalimschy | 2017-11-23 | 1 | -1/+2 |
| | | | | | recursively to execute function calls. 'unroll' continues all executions suspended by an yield (through a long jump) | ||||
* | using 'trap' to stop 'luaV_execute' when necessary (tracing and | Roberto Ierusalimschy | 2017-11-13 | 1 | -2/+21 |
| | | | | to update its copy of 'base' when the stack is reallocated) | ||||
* | detail | Roberto Ierusalimschy | 2017-11-13 | 1 | -7/+8 |
| | |||||
* | new function 'luaV_flttointeger' to convert floats to integers (without | Roberto Ierusalimschy | 2017-11-08 | 1 | -2/+2 |
| | | | | | string coercions) + string operands to bitwise operations handled by string metamethods | ||||
* | new format for JUMP instructions (to allow larger offsets) | Roberto Ierusalimschy | 2017-11-07 | 1 | -2/+2 |
| | |||||
* | back to 'CallInfo' (no gains with its removal) | Roberto Ierusalimschy | 2017-11-07 | 1 | -90/+71 |
| | |||||
* | 'lua_Debug' not using 'CallInfo' | Roberto Ierusalimschy | 2017-11-03 | 1 | -10/+14 |
| | |||||
* | removing uses of 'CallInfo' | Roberto Ierusalimschy | 2017-11-03 | 1 | -52/+64 |
| | |||||
* | no more useful fields in CallInfo | Roberto Ierusalimschy | 2017-11-03 | 1 | -8/+10 |
| | |||||
* | more fields moved out of 'CallInfo' | Roberto Ierusalimschy | 2017-11-03 | 1 | -14/+15 |
| | |||||
* | new API for 'lua_resume' + cleaning the uses of the 'extra' field in | Roberto Ierusalimschy | 2017-11-02 | 1 | -24/+1 |
| | | | | 'CallInfo' | ||||
* | using 'L->func' when possible | Roberto Ierusalimschy | 2017-11-01 | 1 | -4/+4 |
| | |||||
* | detail: in 'isinstack', check against the whole stack instead | Roberto Ierusalimschy | 2017-10-31 | 1 | -5/+5 |
| | | | | of against the stack frame | ||||
* | eplicit 1-bit opcode operand 'k' | Roberto Ierusalimschy | 2017-10-04 | 1 | -9/+8 |
| | |||||
* | new opcodes with immediate integer operand for all arithmetic operations | Roberto Ierusalimschy | 2017-10-04 | 1 | -5/+8 |
| | |||||
* | bug: Lua does not check GC when creating error messages | Roberto Ierusalimschy | 2017-07-10 | 1 | -1/+2 |
| | |||||
* | coercion string->number in arithmetic operations moved to string | Roberto Ierusalimschy | 2017-07-07 | 1 | -3/+2 |
| | | | | library | ||||
* | new type 'StackValue' for stack elements | Roberto Ierusalimschy | 2017-06-29 | 1 | -15/+15 |
| | | | | (we may want to put extra info there in the future) | ||||
* | 'lineinfo' in prototypes saved as differences instead of absolute | Roberto Ierusalimschy | 2017-06-27 | 1 | -7/+85 |
| | | | | | | values, so that the array can use bytes instead of ints, reducing its size. (A new array 'abslineinfo' is used when line differences do not fit in a byte.) | ||||
* | no more field 'base' in CallInfo (base is always equal to 'func + 1', | Roberto Ierusalimschy | 2017-05-13 | 1 | -5/+6 |
| | | | | with old/new vararg implementation) |