Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Towards "to closed" local variables | Roberto Ierusalimschy | 2018-10-08 | 1 | -1/+3 | |
| | | | | | | | | | | | | 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. | |||||
* | Comments about OLD0/OLD1 ages | Roberto Ierusalimschy | 2018-07-18 | 1 | -24/+30 | |
| | | | | | Improved the comments in file 'lgc.c' explaining the roles of "ages" OLD0 and OLD1 in the generacional collector. | |||||
* | Fixed bug in generational collection of userdata | Roberto Ierusalimschy | 2018-07-13 | 1 | -11/+15 | |
| | | | | | | | | | During generational collection, a userdatum must become gray and go to a gray list after being traversed (like tables), so that 'correctgraylist' can handle it to its next stage. This commit also added minimum tests for the generational collector, including one that would detect this bug. | |||||
* | Generational mode may wait longer after a major collection | Roberto Ierusalimschy | 2018-07-09 | 1 | -8/+25 | |
| | | | | | | | | When Lua is building large long-duration structures, frequent small minor collections just waste time. Trying to avoid this, the collector will do a larger pause after a major collection when it does not collect enough garbage (which is a hint that memory is being used for long-lasting objects). | |||||
* | field 'sizearray' in struct 'Table' changed to 'alimit', which can | Roberto Ierusalimschy | 2018-06-15 | 1 | -6/+9 | |
| | | | | be used as a hint for '#t' | |||||
* | FALLTHROUGH comment must be last "statement" | Roberto Ierusalimschy | 2018-03-16 | 1 | -3/+3 | |
| | | | | (so it does not work when inside a block) | |||||
* | special compact representation for userdata with no user values | Roberto Ierusalimschy | 2018-02-26 | 1 | -3/+16 | |
| | | | | (a common case) | |||||
* | in 'clearbykeys', clear keys of just-removed entries too | Roberto Ierusalimschy | 2018-02-23 | 1 | -3/+3 | |
| | ||||||
* | first version of empty entries in tables | Roberto Ierusalimschy | 2018-02-23 | 1 | -28/+30 | |
| | | | | (so that, in the future, tables can contain regular nil entries) | |||||
* | some reorganization in 'lobject.h' | Roberto Ierusalimschy | 2018-02-22 | 1 | -1/+6 | |
| | | | | (just moving stuff around) | |||||
* | userdata can have multiple user values | Roberto Ierusalimschy | 2018-02-20 | 1 | -16/+17 | |
| | ||||||
* | more generic way to handle 'gclist' | Roberto Ierusalimschy | 2018-02-19 | 1 | -62/+50 | |
| | ||||||
* | small corrections in generational mode | Roberto Ierusalimschy | 2018-02-05 | 1 | -7/+9 | |
| | | | | | (cannot call finalizers in emergency collections + should set everything before calling finalizers) | |||||
* | janitor work on casts | Roberto Ierusalimschy | 2018-01-28 | 1 | -2/+2 | |
| | ||||||
* | keep control of stack top in Lua functions concentrated in 'luaV_execute' | Roberto Ierusalimschy | 2017-12-28 | 1 | -8/+3 | |
| | ||||||
* | when running Lua code, there is no need to keep 'L->top' "correct"; | Roberto Ierusalimschy | 2017-12-20 | 1 | -2/+12 | |
| | | | | set it only when needed. | |||||
* | more freedom in handling memory-allocation errors (not all allocations | Roberto Ierusalimschy | 2017-12-08 | 1 | -8/+3 | |
| | | | | | automatically raise an error), which allows fixing a bug when resizing a table. | |||||
* | 'luaS_resize' can raise memory errors | Roberto Ierusalimschy | 2017-12-01 | 1 | -4/+9 | |
| | ||||||
* | warnings from Visual Studio /W3 | Roberto Ierusalimschy | 2017-11-30 | 1 | -2/+2 | |
| | ||||||
* | detail (typo in comments) | Roberto Ierusalimschy | 2017-11-23 | 1 | -3/+3 | |
| | ||||||
* | back to 'CallInfo' (no gains with its removal) | Roberto Ierusalimschy | 2017-11-07 | 1 | -3/+3 | |
| | ||||||
* | more fields moved out of 'CallInfo' | Roberto Ierusalimschy | 2017-11-03 | 1 | -3/+3 | |
| | ||||||
* | do not mess up the debt when the collector is not running | Roberto Ierusalimschy | 2017-10-31 | 1 | -7/+7 | |
| | ||||||
* | some cleaning in GC parameters | Roberto Ierusalimschy | 2017-10-11 | 1 | -14/+12 | |
| | ||||||
* | bug: dead keys with nil values can stay in weak tables | Roberto Ierusalimschy | 2017-08-31 | 1 | -10/+11 | |
| | ||||||
* | new type 'StackValue' for stack elements | Roberto Ierusalimschy | 2017-06-29 | 1 | -5/+5 | |
| | | | | (we may want to put extra info there in the future) | |||||
* | no more 'DEADKEY'. Table traversals do not need to consider dead keys; | Roberto Ierusalimschy | 2017-06-12 | 1 | -14/+7 | |
| | | | | | | if the key is dead, it cannot be given to 'next'. Instead, we now use a 'table' tag without the collectable bit, which makes it a unique tag good enough to reserve space. | |||||
* | in hash nodes, keys are stored in separate pieces to avoid wasting | Roberto Ierusalimschy | 2017-06-09 | 1 | -19/+23 | |
| | | | | space with alignments | |||||
* | avoid overflows in computation of step size | Roberto Ierusalimschy | 2017-06-01 | 1 | -2/+4 | |
| | ||||||
* | revamping the incremental collector | Roberto Ierusalimschy | 2017-05-26 | 1 | -146/+132 | |
| | | | | | | Some simplifications (not counting bytes, couting only slots visited; no more 'gcfinnum'); more GC parameters; using vararg in 'lua_gc' to set parameters in different GC modes | |||||
* | barrier for prototype's cache (with new gray list 'protogray' to keep | Roberto Ierusalimschy | 2017-05-04 | 1 | -8/+67 | |
| | | | | prototypes to have their caches visited again) + constant 'MAXMISS' | |||||
* | added 'cachemiss' field to prototype to avoid wasting time checking | Roberto Ierusalimschy | 2017-04-30 | 1 | -1/+2 | |
| | | | | hits that fail too often | |||||
* | ensures that "collectgarbage'step'" in generational mode does a | Roberto Ierusalimschy | 2017-04-24 | 1 | -4/+9 | |
| | | | | minor collection | |||||
* | 'KGC_NORMAL' -> 'KGC_INC' + emergency GC signalled by flag (instead | Roberto Ierusalimschy | 2017-04-24 | 1 | -12/+11 | |
| | | | | of mode) | |||||
* | small bug in generational control | Roberto Ierusalimschy | 2017-04-20 | 1 | -5/+6 | |
| | ||||||
* | first version of control for the generational collector | Roberto Ierusalimschy | 2017-04-19 | 1 | -5/+13 | |
| | ||||||
* | small corrections + removal of debugging functions 'count' and | Roberto Ierusalimschy | 2017-04-12 | 1 | -48/+4 | |
| | | | | 'printgray'. | |||||
* | 'mainthread' lives in 'allgc' list, like everybody else | Roberto Ierusalimschy | 2017-04-11 | 1 | -10/+6 | |
| | ||||||
* | Upvalues collected like everything else (with mark-sweep) instead | Roberto Ierusalimschy | 2017-04-11 | 1 | -57/+32 | |
| | | | | of reference count (simpler and better for generational mode) | |||||
* | Comments for generational collector | Roberto Ierusalimschy | 2017-04-10 | 1 | -63/+128 | |
| | ||||||
* | small changes in 'luaC_upvalbarrier' | Roberto Ierusalimschy | 2017-04-06 | 1 | -5/+3 | |
| | ||||||
* | generational collector (still not complete) | Roberto Ierusalimschy | 2017-04-05 | 1 | -83/+276 | |
| | ||||||
* | generational collection: new attempt (still incomplete) | Roberto Ierusalimschy | 2017-02-23 | 1 | -24/+159 | |
| | ||||||
* | detail (removing spaces at end of lines) | Roberto Ierusalimschy | 2016-12-22 | 1 | -2/+2 | |
| | ||||||
* | using 'lastfree == NULL' to signal that table is using the dummy | Roberto Ierusalimschy | 2016-11-07 | 1 | -2/+2 | |
| | | | | node for its hash part + new macro 'allocsizenode' | |||||
* | new flag in 'CallInfo.callstatus' to tell whether function is running | Roberto Ierusalimschy | 2016-10-19 | 1 | -1/+3 | |
| | | | | as a finalizer | |||||
* | do not try to ensure that 'sweepgc' points to a live object | Roberto Ierusalimschy | 2016-03-31 | 1 | -18/+11 | |
| | | | | | | when entering sweep phase ('entersweep'); that may be too expensive to be done still inside the atomic step. Walking one single object more often than not will work. | |||||
* | detail (removed fixed argument to function 'callallpendingfinalizers') | Roberto Ierusalimschy | 2015-12-10 | 1 | -4/+4 | |
| | ||||||
* | added comment and assert about dead keys | Roberto Ierusalimschy | 2015-11-03 | 1 | -3/+8 | |
| | ||||||
* | in 'luaD_call', use two functions instead of one with fixed boolean | Roberto Ierusalimschy | 2015-11-02 | 1 | -2/+2 | |
| | | | | argument |