summaryrefslogtreecommitdiff
path: root/ldebug.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Added macro 'testMMMode'Roberto Ierusalimschy2019-09-061-5/+3
| | | | Macro 'testMMMode' checks whether opcode is an MM opcode.
* Use of 'MMBIN' opcodes extended to shift operatorsRoberto Ierusalimschy2019-08-281-8/+0
| | | | Plus, this commit removes useless 'tm' parameters in 'op_*' macros.
* First version of OP_MMBIN opcodesRoberto Ierusalimschy2019-08-271-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 Ierusalimschy2019-07-311-0/+3
|
* DetailsRoberto Ierusalimschy2019-06-031-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 Ierusalimschy2019-04-041-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 Ierusalimschy2018-11-291-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 operandsRoberto Ierusalimschy2018-11-231-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 Ierusalimschy2018-10-301-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 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.
* added 'const' to 'Proto*' when possibleRoberto Ierusalimschy2018-06-081-17/+18
|
* minimizing the code ran by 'vmfetch' + no more 'vra'Roberto Ierusalimschy2018-05-021-10/+17
| | | | (the code is simpler without 'vra' and conversion is a no-op)
* 'fTransfer' -> 'ftransfer' / 'nTransfer' -> 'ntransfer'Roberto Ierusalimschy2018-03-161-4/+4
| | | | (keep the standard of names in lower case)
* two new fields 'fTransfer'/'nTransfer' in 'lua_Debug' structureRoberto Ierusalimschy2018-02-171-3/+11
| | | | (for information about values being given and returned in function calls)
* vararg back to '...' (but with another implementation)Roberto Ierusalimschy2018-02-091-5/+21
| | | | new implementation should have zero overhead for non-vararg functions
* call hooks for Lua functions called by 'luaV_execute'Roberto Ierusalimschy2018-02-061-2/+2
|
* error handler in protected calls must be a functionRoberto Ierusalimschy2018-01-101-2/+2
|
* keep control of stack top in Lua functions concentrated in 'luaV_execute'Roberto Ierusalimschy2017-12-281-6/+3
|
* when running Lua code, there is no need to keep 'L->top' "correct";Roberto Ierusalimschy2017-12-201-9/+10
| | | | set it only when needed.
* 'Proto->numparams' does not include vararg parameterRoberto Ierusalimschy2017-12-151-2/+2
| | | | (one less subtraction when calling functions...)
* new opcodes BANDK/BORK/BXORK. (They do not use immediate operandsRoberto Ierusalimschy2017-12-131-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 Ierusalimschy2017-12-071-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 Ierusalimschy2017-11-231-2/+2
|
* no more 'stackless' implementation; 'luaV_execute' calls itselfRoberto Ierusalimschy2017-11-231-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 andRoberto Ierusalimschy2017-11-131-2/+21
| | | | to update its copy of 'base' when the stack is reallocated)
* detailRoberto Ierusalimschy2017-11-131-7/+8
|
* new function 'luaV_flttointeger' to convert floats to integers (withoutRoberto Ierusalimschy2017-11-081-2/+2
| | | | | string coercions) + string operands to bitwise operations handled by string metamethods
* new format for JUMP instructions (to allow larger offsets)Roberto Ierusalimschy2017-11-071-2/+2
|
* back to 'CallInfo' (no gains with its removal)Roberto Ierusalimschy2017-11-071-90/+71
|
* 'lua_Debug' not using 'CallInfo'Roberto Ierusalimschy2017-11-031-10/+14
|
* removing uses of 'CallInfo'Roberto Ierusalimschy2017-11-031-52/+64
|
* no more useful fields in CallInfoRoberto Ierusalimschy2017-11-031-8/+10
|
* more fields moved out of 'CallInfo'Roberto Ierusalimschy2017-11-031-14/+15
|
* new API for 'lua_resume' + cleaning the uses of the 'extra' field inRoberto Ierusalimschy2017-11-021-24/+1
| | | | 'CallInfo'
* using 'L->func' when possibleRoberto Ierusalimschy2017-11-011-4/+4
|
* detail: in 'isinstack', check against the whole stack insteadRoberto Ierusalimschy2017-10-311-5/+5
| | | | of against the stack frame
* eplicit 1-bit opcode operand 'k'Roberto Ierusalimschy2017-10-041-9/+8
|
* new opcodes with immediate integer operand for all arithmetic operationsRoberto Ierusalimschy2017-10-041-5/+8
|
* bug: Lua does not check GC when creating error messagesRoberto Ierusalimschy2017-07-101-1/+2
|
* coercion string->number in arithmetic operations moved to stringRoberto Ierusalimschy2017-07-071-3/+2
| | | | library
* new type 'StackValue' for stack elementsRoberto Ierusalimschy2017-06-291-15/+15
| | | | (we may want to put extra info there in the future)
* 'lineinfo' in prototypes saved as differences instead of absoluteRoberto Ierusalimschy2017-06-271-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 Ierusalimschy2017-05-131-5/+6
| | | | with old/new vararg implementation)
* back to old-style vararg system (with vararg table collecting extraRoberto Ierusalimschy2017-05-131-18/+3
| | | | arguments)
* details in 'findsetreg'Roberto Ierusalimschy2017-04-291-19/+17
|
* new opcodes for table access with constant keys (strings and integers)Roberto Ierusalimschy2017-04-281-30/+62
|
* new opcode OP_ADDI (for immediate integer operand) (Experimental)Roberto Ierusalimschy2017-04-261-1/+4
|
* check whether function is finalizer when finding a name for it +Roberto Ierusalimschy2016-10-191-13/+32
| | | | | comments + some instructions can call functions in unespected ways (e.g., finalizers)
* detail (comment)Roberto Ierusalimschy2016-03-311-2/+2
|
* When available, use metafield '__name' in error messagesRoberto Ierusalimschy2016-02-261-5/+5
|