Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Removed internal cache for closures | Roberto Ierusalimschy | 2018-11-01 | 1 | -1/+1 | |
| | | | | | | | | | | | | | | | | | | | The mechanism of "caching the last closure created for a prototype to try to reuse it the next time a closure for that prototype is created" was removed. There are several reasons: - It is hard to find a natural example where this cache has a measurable impact on performance. - Programmers already perceive closure creation as something slow, so they tend to avoid it inside hot paths. (Any case where the cache could reuse a closure can be rewritten predefining the closure in some variable and using that variable.) - The implementation was somewhat complex, due to a bad interaction with the generational collector. (Typically, new closures are new, while prototypes are old. So, the cache breaks the invariant that old objects should not point to new ones.) | |||||
* | First "complete" implementation of to-be-closed variables | Roberto Ierusalimschy | 2018-10-17 | 1 | -2/+2 | |
| | | | | | | | Still missing: - handling of memory errors when creating upvalue (must run closing method all the same) - interaction with coroutines | |||||
* | 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 need to check whether libraries and host use the same kernel; | Roberto Ierusalimschy | 2018-06-18 | 1 | -6/+5 | |
| | | | | Lua should work correctly with several copies of the kernel | |||||
* | new field 'nilvalue' in struct 'global_State' to avoid the use of | Roberto Ierusalimschy | 2018-06-15 | 1 | -1/+2 | |
| | | | | addresses of static variables | |||||
* | no more 'luaO_nilobject' to avoid comparison of global variable addresses | Roberto Ierusalimschy | 2018-06-01 | 1 | -3/+2 | |
| | | | | (now uses static variables) | |||||
* | macro 'luai_makeseed' now controls the whole process of making the seed | Roberto Ierusalimschy | 2018-05-29 | 1 | -17/+17 | |
| | ||||||
* | 'gcemergency' should be zero before any memory allocation | Roberto Ierusalimschy | 2018-02-05 | 1 | -2/+2 | |
| | ||||||
* | janitor work on casts | Roberto Ierusalimschy | 2018-01-28 | 1 | -3/+3 | |
| | ||||||
* | new macro 'isLuacode' (to distinguish regular Lua code from | Roberto Ierusalimschy | 2017-12-19 | 1 | -2/+2 | |
| | | | | hooks, where C code can run inside a Lua function). | |||||
* | no more 'stackless' implementation; 'luaV_execute' calls itself | Roberto Ierusalimschy | 2017-11-23 | 1 | -2/+26 | |
| | | | | | 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 | -1/+2 | |
| | | | | to update its copy of 'base' when the stack is reallocated) | |||||
* | back to 'CallInfo' (no gains with its removal) | Roberto Ierusalimschy | 2017-11-07 | 1 | -8/+55 | |
| | ||||||
* | no more 'CallInfo' structure | Roberto Ierusalimschy | 2017-11-04 | 1 | -53/+4 | |
| | ||||||
* | more fields moved out of 'CallInfo' | Roberto Ierusalimschy | 2017-11-03 | 1 | -3/+3 | |
| | ||||||
* | baby steps to remove 'CallInfo': keeping 'L->func' correct | Roberto Ierusalimschy | 2017-10-31 | 1 | -3/+6 | |
| | ||||||
* | some cleaning in GC parameters | Roberto Ierusalimschy | 2017-10-11 | 1 | -3/+5 | |
| | ||||||
* | 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) | |||||
* | revamping the incremental collector | Roberto Ierusalimschy | 2017-05-26 | 1 | -10/+2 | |
| | | | | | | 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 | -2/+2 | |
| | | | | prototypes to have their caches visited again) + constant 'MAXMISS' | |||||
* | 'KGC_NORMAL' -> 'KGC_INC' + emergency GC signalled by flag (instead | Roberto Ierusalimschy | 2017-04-24 | 1 | -2/+3 | |
| | | | | of mode) | |||||
* | removed initialization of 'GCestimate' (it is initialized during | Roberto Ierusalimschy | 2017-04-12 | 1 | -2/+1 | |
| | | | | a GC cycle, when it start counting) | |||||
* | 'mainthread' lives in 'allgc' list, like everybody else | Roberto Ierusalimschy | 2017-04-11 | 1 | -3/+4 | |
| | ||||||
* | generational collector (still not complete) | Roberto Ierusalimschy | 2017-04-05 | 1 | -2/+3 | |
| | ||||||
* | generational collection: new attempt (still incomplete) | Roberto Ierusalimschy | 2017-02-23 | 1 | -1/+2 | |
| | ||||||
* | removed field 'n' from 'CallInfo' (not being used right now) | Roberto Ierusalimschy | 2015-11-13 | 1 | -14/+11 | |
| | ||||||
* | added counters for total and individual CallInfo entries (to allow | Roberto Ierusalimschy | 2015-11-02 | 1 | -8/+16 | |
| | | | | better syncronization between CallInfo size and stack size) | |||||
* | macro 'addbuff' was using external variable name, instead of using | Roberto Ierusalimschy | 2015-10-20 | 1 | -2/+2 | |
| | | | | its parameter name inside the macro. | |||||
* | long strings are created directly in final position when possible | Roberto Ierusalimschy | 2015-09-08 | 1 | -3/+1 | |
| | | | | | (instead of using an auxiliar buffer to first create the string and then allocate the final string and copy result there) | |||||
* | avoid overflows (detected with 'clang -ftrapv') | Roberto Ierusalimschy | 2015-07-13 | 1 | -3/+7 | |
| | ||||||
* | new cache for interning strings | Roberto Ierusalimschy | 2015-03-04 | 1 | -8/+2 | |
| | ||||||
* | comments (references to "ANSI C" changed to "ISO C", which is the | Roberto Ierusalimschy | 2014-11-02 | 1 | -4/+3 | |
| | | | | international name | |||||
* | added include for 'lprefix.h', for stuff that must be added before | Roberto Ierusalimschy | 2014-11-02 | 1 | -4/+6 | |
| | | | | any other header file | |||||
* | extra space for new threads is initialized with a copy of the main | Roberto Ierusalimschy | 2014-07-24 | 1 | -3/+4 | |
| | | | | thread, not of the creator thread. | |||||
* | better support for extra user space associated with a Lua state | Roberto Ierusalimschy | 2014-07-24 | 1 | -4/+5 | |
| | ||||||
* | type 'TString' refers directly to the structure inside the union | Roberto Ierusalimschy | 2014-07-18 | 1 | -2/+2 | |
| | | | | (union used only for size purposes) | |||||
* | added check for conversion 'obj2gco' (and corrections for small | Roberto Ierusalimschy | 2014-07-18 | 1 | -2/+2 | |
| | | | | problems detected by this check) | |||||
* | no need to keep threads in a different GC list, now that there is the | Roberto Ierusalimschy | 2014-02-18 | 1 | -4/+4 | |
| | | | | 'twups' list | |||||
* | new list 'twups' to allow traversal of upvalues from dead threads | Roberto Ierusalimschy | 2014-02-18 | 1 | -1/+3 | |
| | | | | (+ fixed some problems with cycles involving those upvalues) | |||||
* | better control for number of finalizers called at each GC cycle | Roberto Ierusalimschy | 2014-02-13 | 1 | -6/+7 | |
| | | | | (increases progressively) | |||||
* | no more local collection | Roberto Ierusalimschy | 2014-02-13 | 1 | -14/+4 | |
| | ||||||
* | keep a single list of objects to be finalized (with local and non-local | Roberto Ierusalimschy | 2014-02-11 | 1 | -2/+2 | |
| | | | | objects), to ensure finalization order | |||||
* | bug: should call 'luai_userstateclose' only when 'luai_userstateopen' | Roberto Ierusalimschy | 2013-11-08 | 1 | -6/+8 | |
| | | | | has been called before | |||||
* | CallInfo lists shrinks together with their associated stacks | Roberto Ierusalimschy | 2013-09-17 | 1 | -1/+20 | |
| | ||||||
* | GC local pause configurable | Roberto Ierusalimschy | 2013-09-13 | 1 | -1/+6 | |
| | ||||||
* | threads are kept in a separated GC list, linked after the main thread | Roberto Ierusalimschy | 2013-09-11 | 1 | -14/+6 | |
| | ||||||
* | 'luaC_newobj' does not handle special cases; only special case | Roberto Ierusalimschy | 2013-09-11 | 1 | -7/+11 | |
| | | | | now is threads, which do not use 'luaC_newobj' anymore. | |||||
* | back to open hashing for the string table (but with a different | Roberto Ierusalimschy | 2013-09-05 | 1 | -2/+2 | |
| | | | | | 'hnext' field, to strings are still collected like all other objects) | |||||
* | local collection now calls finalizers | Roberto Ierusalimschy | 2013-09-03 | 1 | -4/+2 | |
| | ||||||
* | new GC state to sweep 'localgc' list + small changes in sweep control | Roberto Ierusalimschy | 2013-08-30 | 1 | -2/+2 | |
| |