aboutsummaryrefslogtreecommitdiff
path: root/lparser.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Towards "to closed" local variablesRoberto Ierusalimschy2018-10-081-4/+30
| | | | | | | | | | | | Start of the implementation of "scoped variables" or "to be closed" variables, local variables whose '__close' (or themselves) are called when they go out of scope. This commit implements the syntax, the opcode, and the creation of the corresponding upvalue, but it still does not call the finalizations when the variable goes out of scope (the most important part). Currently, the syntax is 'local scoped name = exp', but that will probably change.
* Details (comments)Roberto Ierusalimschy2018-09-111-2/+2
|
* 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.
* in generational mode, an emergency collection can turn any object blackRoberto Ierusalimschy2018-06-181-2/+2
| | | | during any memory allocation.
* no more nil-in-tableRoberto Ierusalimschy2018-04-041-15/+1
|
* new experimental syntax using reserved word 'undef'Roberto Ierusalimschy2018-03-071-11/+18
|
* correct way to check stack space for vararg functionsRoberto Ierusalimschy2018-02-171-3/+1
|
* vararg back to '...' (but with another implementation)Roberto Ierusalimschy2018-02-091-16/+6
| | | | new implementation should have zero overhead for non-vararg functions
* new opcode 'PREPVARARG'Roberto Ierusalimschy2018-02-071-6/+16
| | | | (avoids test for vararg function in all function calls)
* new macros 'isOT'/'isIT'Roberto Ierusalimschy2017-12-221-2/+2
| | | | | (plus exchanged parameters of OP_VARARG to make it similar to other 'isOT' instructions)
* new opcodes 'FORLOOP1'/'FORPREP1' for "basic for" (integer variableRoberto Ierusalimschy2017-12-181-15/+36
| | | | with increment of 1)
* details (cleaning uses of 'exp1')Roberto Ierusalimschy2017-12-181-8/+5
|
* 'Proto->numparams' does not include vararg parameterRoberto Ierusalimschy2017-12-151-5/+4
| | | | (one less subtraction when calling functions...)
* 'VRELOCABLE' -> 'VRELOC'Roberto Ierusalimschy2017-12-141-3/+3
|
* avoid using one function for different tasks (malloc, free, etc.)Roberto Ierusalimschy2017-12-061-16/+9
|
* small peephole optimizationsRoberto Ierusalimschy2017-11-301-2/+2
|
* no more 'stackless' implementation; 'luaV_execute' calls itselfRoberto Ierusalimschy2017-11-231-8/+4
| | | | | recursively to execute function calls. 'unroll' continues all executions suspended by an yield (through a long jump)
* detailRoberto Ierusalimschy2017-10-041-2/+3
|
* no more 'getBMode'-'getCMode' (imprecise + we will need more spaceRoberto Ierusalimschy2017-09-281-2/+2
| | | | for op mode) + better control of op modes
* jumps do not close upvalues (to be faster and simpler);Roberto Ierusalimschy2017-09-131-46/+81
| | | | | | explicit instruction to close upvalues; command 'break' not handled like a 'goto' (to optimize removal of uneeded 'close' instructions)
* jumps in 'for' loops don't need to be signedRoberto Ierusalimschy2017-08-141-6/+24
|
* commentRoberto Ierusalimschy2017-08-121-2/+2
|
* 'OP_VARARG' has the vararg parameter as an operandRoberto Ierusalimschy2017-06-291-2/+3
|
* new type 'StackValue' for stack elementsRoberto Ierusalimschy2017-06-291-3/+3
| | | | (we may want to put extra info there in the future)
* 'lineinfo' in prototypes saved as differences instead of absoluteRoberto Ierusalimschy2017-06-271-4/+9
| | | | | | 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.)
* back to old-style vararg system (with vararg table collecting extraRoberto Ierusalimschy2017-05-131-1/+10
| | | | arguments)
* bug: cannot "skip" labels after if-goto before the jump over theRoberto Ierusalimschy2017-04-291-2/+2
| | | | 'then' part
* new opcodes for table access with constant keys (strings and integers)Roberto Ierusalimschy2017-04-281-16/+24
|
* new opcode LOADI (for loading immediate integers)Roberto Ierusalimschy2017-04-201-2/+2
|
* do not eliminate varargs from functions that do not use varargsRoberto Ierusalimschy2016-08-011-4/+3
| | | | (confuses the debug lib and gains very little in performance)
* bug: expression list with four or more expressions inRoberto Ierusalimschy2016-06-221-5/+4
| | | | | a 'for' loop can crash the interpreter. ('adjust_assign' must remove extra expresssions from its registers.)
* 'singlevaraux' returns result only in 'var->k'Roberto Ierusalimschy2016-05-131-10/+10
|
* bug: label between local definitions can mix-up their initializationsRoberto Ierusalimschy2016-03-071-2/+2
|
* 'getcode' -> 'getinstruction'Roberto Ierusalimschy2016-01-051-4/+4
|
* detail (moving bodies of 'while' to a separate line)Roberto Ierusalimschy2015-12-091-5/+9
|
* macro 'incr_top' replaced by function 'luaD_inctop'. (It is not usedRoberto Ierusalimschy2015-11-021-3/+3
| | | | in critical time pathes, can save a few bytes without the macro)
* function prepares vararg only if it really uses them (chunksRoberto Ierusalimschy2015-10-281-3/+4
| | | | are always declared vararg but seldom uses them)
* detailsRoberto Ierusalimschy2014-12-271-4/+4
|
* removed unneeded barrier ('from' must be white)Roberto Ierusalimschy2014-11-271-2/+2
|
* added include for 'lprefix.h', for stuff that must be added beforeRoberto Ierusalimschy2014-11-021-4/+6
| | | | any other header file
* `name' in comments changed to 'name'Roberto Ierusalimschy2014-10-251-31/+31
|
* macros 'LUA_QL'/'LUA_QL' deprecatedRoberto Ierusalimschy2014-10-171-7/+7
|
* 'iswhite' and related macros now can work directly on any objectRoberto Ierusalimschy2014-07-211-4/+4
| | | | (no need to convert to 'GCObject')
* type 'TString' refers directly to the structure inside the unionRoberto Ierusalimschy2014-07-181-4/+4
| | | | (union used only for size purposes)
* added check for conversion 'obj2gco' (and corrections for smallRoberto Ierusalimschy2014-07-181-4/+4
| | | | problems detected by this check)
* more precision between closure types ('LClosure' x 'CClosure')Roberto Ierusalimschy2014-06-191-5/+5
|
* first implementation of '<<', '>>', and '~' (bitwise not)Roberto Ierusalimschy2013-12-301-7/+11
|
* first implementation of bitwise operators '&' (band), '|' (bor),Roberto Ierusalimschy2013-12-181-7/+11
| | | | and '~' (bxor)
* new order for binary operations (grouping them by type of result)Roberto Ierusalimschy2013-12-161-9/+11
|
* bug (GC can collect long identifier during parser) + change (usingRoberto Ierusalimschy2013-08-301-28/+17
| | | | a single constant table for all functions in a chunk)