Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | New kind of expression VKSTR | Roberto Ierusalimschy | 2019-07-17 | 1 | -1/+4 |
| | | | | | | | String literal expressions have their own kind VKSTR, instead of the generic VK. This allows strings to "cross" functions without entering their constant tables (e.g., if they are used only by some nested function). | ||||
* | First implementation of constant propagation | Roberto Ierusalimschy | 2019-07-12 | 1 | -10/+17 |
| | | | | | Local constant variables initialized with compile-time constants are optimized away from the code. | ||||
* | Towards constant propagation | Roberto Ierusalimschy | 2019-07-10 | 1 | -3/+9 |
| | | | | | | | This commit detaches the number of active variables from the number of variables in the stack, during compilation. Soon, compile-time constants will be propagated and therefore will not exist during run time (in the stack). | ||||
* | New implementation for constants | Roberto Ierusalimschy | 2019-07-09 | 1 | -7/+9 |
| | | | | | | | | | VLOCAL expressions keep a reference to their corresponding 'Vardesc', and 'Upvaldesc' (for upvalues) has a field 'ro' (read-only). So, it is easier to check whether a variable is read-only. The decoupling in VLOCAL between 'vidx' ('Vardesc' index) and 'sidx' (stack index) should also help the forthcoming implementation of compile-time constant propagation. | ||||
* | First take on constant propagation | Roberto Ierusalimschy | 2019-07-01 | 1 | -0/+2 |
| | |||||
* | Structure 'Vardesc' does not need a 'name' field | Roberto Ierusalimschy | 2019-06-21 | 1 | -1/+0 |
| | | | | | | Removed the field 'name' from the structure 'Vardesc', as the name of the local variable is already available in the prototype of the function, through the index 'idx'. | ||||
* | First implementation for 'const' variables | Roberto Ierusalimschy | 2019-05-17 | 1 | -4/+9 |
| | | | | | A variable can be declared const, which means it cannot be assigned to, with the syntax 'local <const> name = exp'. | ||||
* | Details | Roberto Ierusalimschy | 2018-11-22 | 1 | -1/+1 |
| | | | | comments and other janitorial work. | ||||
* | Big revamp in the implmentation of labels/gotos | Roberto Ierusalimschy | 2018-10-29 | 1 | -0/+2 |
| | | | | | | | | Added restriction that, when a label is created, there cannot be another label with the same name visible. That allows backward goto's to be resolved when they are read. Backward goto's get a close if they jump out of the scope of some variable; labels get a close only if previous goto to it jumps out of the scope of some upvalue. | ||||
* | Towards "to closed" local variables | Roberto Ierusalimschy | 2018-10-08 | 1 | -0/+1 |
| | | | | | | | | | | | | 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. | ||||
* | 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. | ||||
* | no more nil-in-table | Roberto Ierusalimschy | 2018-04-04 | 1 | -3/+2 |
| | |||||
* | new experimental syntax using reserved word 'undef' | Roberto Ierusalimschy | 2018-03-07 | 1 | -2/+3 |
| | |||||
* | 'VRELOCABLE' -> 'VRELOC' | Roberto Ierusalimschy | 2017-12-14 | 1 | -3/+3 |
| | |||||
* | small peephole optimizations | Roberto Ierusalimschy | 2017-11-30 | 1 | -2/+1 |
| | |||||
* | 'lineinfo' in prototypes saved as differences instead of absolute | Roberto Ierusalimschy | 2017-06-27 | 1 | -1/+4 |
| | | | | | | 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.) | ||||
* | new opcodes for table access with constant keys (strings and integers) | Roberto Ierusalimschy | 2017-04-28 | 1 | -8/+16 |
| | |||||
* | more comments + reordeing of union inside 'expdesc' to allow | Roberto Ierusalimschy | 2015-12-30 | 1 | -13/+16 |
| | | | | static initialization of a VKINT value | ||||
* | comments. (More explanation about kinds of expressions.) | Roberto Ierusalimschy | 2015-12-17 | 1 | -17/+27 |
| | |||||
* | `name' in comments changed to 'name' | Roberto Ierusalimschy | 2014-10-25 | 1 | -8/+8 |
| | |||||
* | more precision between closure types ('LClosure' x 'CClosure') | Roberto Ierusalimschy | 2014-06-19 | 1 | -3/+3 |
| | |||||
* | bug (GC can collect long identifier during parser) + change (using | Roberto Ierusalimschy | 2013-08-30 | 1 | -2/+1 |
| | | | | a single constant table for all functions in a chunk) | ||||
* | first implementation of literal integers (no constant folding yet) | Roberto Ierusalimschy | 2013-04-16 | 1 | -3/+5 |
| | |||||
* | no more 'Proto' objects on the stack. Protos are anchored on outer | Roberto Ierusalimschy | 2012-05-08 | 1 | -3/+3 |
| | | | | Protos or on a Closure, which must be created before the Proto. | ||||
* | reducing even more use of C stack by the parser: struct 'FuncState' | Roberto Ierusalimschy | 2011-07-27 | 1 | -7/+6 |
| | | | | | does not need field 'L' + number of labels/gotos in a chunk may be limited to SHRT_MAX. (Also removed some non-needed 'unsigned's.) | ||||
* | no need of lookahead in Zio | Roberto Ierusalimschy | 2011-02-23 | 1 | -2/+2 |
| | |||||
* | some reorganization of dynamic data structures used by the parser | Roberto Ierusalimschy | 2011-02-07 | 1 | -36/+24 |
| | |||||
* | first implementation of 'goto' | Roberto Ierusalimschy | 2011-02-04 | 1 | -6/+41 |
| | |||||
* | new way to distinguish between indexing tables in registers and | Roberto Ierusalimschy | 2010-07-07 | 1 | -10/+13 |
| | | | | | tables in upvalues (+ fixed small bug when checking conflicts in multiple assignments) | ||||
* | better organization for fields in struct 'expdesc' | Roberto Ierusalimschy | 2010-07-02 | 1 | -4/+8 |
| | |||||
* | first version of _ENV; no more global variables | Roberto Ierusalimschy | 2010-03-12 | 1 | -3/+1 |
| | |||||
* | new instructions to optimize indexing on upvalues | Roberto Ierusalimschy | 2010-02-26 | 1 | -5/+6 |
| | |||||
* | parser keeps list of active local variables in a single dynamic array, | Roberto Ierusalimschy | 2009-10-11 | 1 | -3/+11 |
| | | | | therefore saving C stack space | ||||
* | first implementation of lexical environments | Roberto Ierusalimschy | 2009-09-30 | 1 | -2/+3 |
| | |||||
* | information about upvalues (where they come from) kept in Proto structure, | Roberto Ierusalimschy | 2009-09-28 | 1 | -8/+2 |
| | | | | instead of sequence of pseudo-opcodes after OP_CLOSURE | ||||
* | added structure for local-variable information to allow extra | Roberto Ierusalimschy | 2008-05-08 | 1 | -4/+10 |
| | | | | checkings if needed | ||||
* | 'lparser.h' should not include 'ltable.h' | Roberto Ierusalimschy | 2006-03-09 | 1 | -2/+1 |
| | |||||
* | numeral expressions keep their values in struct 'expdesc' | Roberto Ierusalimschy | 2005-10-03 | 1 | -2/+6 |
| | |||||
* | added LUAI_FUNC to functions not in the API | Roberto Ierusalimschy | 2005-04-25 | 1 | -2/+3 |
| | |||||
* | `luac´ -> `luai' (to avoid confusion with other luac stuff) | Roberto Ierusalimschy | 2005-03-09 | 1 | -3/+3 |
| | |||||
* | `luaconf.h´ exports all its definitions always (so all of them | Roberto Ierusalimschy | 2005-03-08 | 1 | -3/+3 |
| | | | | must have a lua/LUA prefix). | ||||
* | USHRT_MAX may not fit in a (16-bit) int | Roberto Ierusalimschy | 2005-03-07 | 1 | -2/+2 |
| | |||||
* | new way to use `vararg' parameters (with `...') | Roberto Ierusalimschy | 2004-05-31 | 1 | -2/+3 |
| | |||||
* | zio does not keep "source" name (nobody uses it) | Roberto Ierusalimschy | 2003-08-25 | 1 | -2/+2 |
| | |||||
* | more changes to reduce stack usage by the parser | Roberto Ierusalimschy | 2003-07-09 | 1 | -4/+4 |
| | |||||
* | small changes to reduce stack usage by the parser | Roberto Ierusalimschy | 2003-07-09 | 1 | -3/+9 |
| | |||||
* | different variables for number of upvalues and size of upvalue array | Roberto Ierusalimschy | 2003-02-11 | 1 | -2/+1 |
| | | | | (makes code clearer) | ||||
* | new functions to manipulate upvales (get/setupvalue) | Roberto Ierusalimschy | 2002-12-19 | 1 | -1/+2 |
| | |||||
* | use of different buffers for scanner and concatenation | Roberto Ierusalimschy | 2002-10-08 | 1 | -2/+2 |
| | |||||
* | no more `global' declarations | Roberto Ierusalimschy | 2002-05-14 | 1 | -16/+5 |
| |