aboutsummaryrefslogtreecommitdiff
path: root/lstate.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Removed internal cache for closuresRoberto Ierusalimschy2018-11-011-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 variablesRoberto Ierusalimschy2018-10-171-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 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.
* no need to check whether libraries and host use the same kernel;Roberto Ierusalimschy2018-06-181-6/+5
| | | | Lua should work correctly with several copies of the kernel
* new field 'nilvalue' in struct 'global_State' to avoid the use ofRoberto Ierusalimschy2018-06-151-1/+2
| | | | addresses of static variables
* no more 'luaO_nilobject' to avoid comparison of global variable addressesRoberto Ierusalimschy2018-06-011-3/+2
| | | | (now uses static variables)
* macro 'luai_makeseed' now controls the whole process of making the seedRoberto Ierusalimschy2018-05-291-17/+17
|
* 'gcemergency' should be zero before any memory allocationRoberto Ierusalimschy2018-02-051-2/+2
|
* janitor work on castsRoberto Ierusalimschy2018-01-281-3/+3
|
* new macro 'isLuacode' (to distinguish regular Lua code fromRoberto Ierusalimschy2017-12-191-2/+2
| | | | hooks, where C code can run inside a Lua function).
* no more 'stackless' implementation; 'luaV_execute' calls itselfRoberto Ierusalimschy2017-11-231-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 andRoberto Ierusalimschy2017-11-131-1/+2
| | | | to update its copy of 'base' when the stack is reallocated)
* back to 'CallInfo' (no gains with its removal)Roberto Ierusalimschy2017-11-071-8/+55
|
* no more 'CallInfo' structureRoberto Ierusalimschy2017-11-041-53/+4
|
* more fields moved out of 'CallInfo'Roberto Ierusalimschy2017-11-031-3/+3
|
* baby steps to remove 'CallInfo': keeping 'L->func' correctRoberto Ierusalimschy2017-10-311-3/+6
|
* some cleaning in GC parametersRoberto Ierusalimschy2017-10-111-3/+5
|
* new type 'StackValue' for stack elementsRoberto Ierusalimschy2017-06-291-5/+5
| | | | (we may want to put extra info there in the future)
* revamping the incremental collectorRoberto Ierusalimschy2017-05-261-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 keepRoberto Ierusalimschy2017-05-041-2/+2
| | | | prototypes to have their caches visited again) + constant 'MAXMISS'
* 'KGC_NORMAL' -> 'KGC_INC' + emergency GC signalled by flag (insteadRoberto Ierusalimschy2017-04-241-2/+3
| | | | of mode)
* removed initialization of 'GCestimate' (it is initialized duringRoberto Ierusalimschy2017-04-121-2/+1
| | | | a GC cycle, when it start counting)
* 'mainthread' lives in 'allgc' list, like everybody elseRoberto Ierusalimschy2017-04-111-3/+4
|
* generational collector (still not complete)Roberto Ierusalimschy2017-04-051-2/+3
|
* generational collection: new attempt (still incomplete)Roberto Ierusalimschy2017-02-231-1/+2
|
* removed field 'n' from 'CallInfo' (not being used right now)Roberto Ierusalimschy2015-11-131-14/+11
|
* added counters for total and individual CallInfo entries (to allowRoberto Ierusalimschy2015-11-021-8/+16
| | | | better syncronization between CallInfo size and stack size)
* macro 'addbuff' was using external variable name, instead of usingRoberto Ierusalimschy2015-10-201-2/+2
| | | | its parameter name inside the macro.
* long strings are created directly in final position when possibleRoberto Ierusalimschy2015-09-081-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 Ierusalimschy2015-07-131-3/+7
|
* new cache for interning stringsRoberto Ierusalimschy2015-03-041-8/+2
|
* comments (references to "ANSI C" changed to "ISO C", which is theRoberto Ierusalimschy2014-11-021-4/+3
| | | | international name
* added include for 'lprefix.h', for stuff that must be added beforeRoberto Ierusalimschy2014-11-021-4/+6
| | | | any other header file
* extra space for new threads is initialized with a copy of the mainRoberto Ierusalimschy2014-07-241-3/+4
| | | | thread, not of the creator thread.
* better support for extra user space associated with a Lua stateRoberto Ierusalimschy2014-07-241-4/+5
|
* type 'TString' refers directly to the structure inside the unionRoberto Ierusalimschy2014-07-181-2/+2
| | | | (union used only for size purposes)
* added check for conversion 'obj2gco' (and corrections for smallRoberto Ierusalimschy2014-07-181-2/+2
| | | | problems detected by this check)
* no need to keep threads in a different GC list, now that there is theRoberto Ierusalimschy2014-02-181-4/+4
| | | | 'twups' list
* new list 'twups' to allow traversal of upvalues from dead threadsRoberto Ierusalimschy2014-02-181-1/+3
| | | | (+ fixed some problems with cycles involving those upvalues)
* better control for number of finalizers called at each GC cycleRoberto Ierusalimschy2014-02-131-6/+7
| | | | (increases progressively)
* no more local collectionRoberto Ierusalimschy2014-02-131-14/+4
|
* keep a single list of objects to be finalized (with local and non-localRoberto Ierusalimschy2014-02-111-2/+2
| | | | objects), to ensure finalization order
* bug: should call 'luai_userstateclose' only when 'luai_userstateopen'Roberto Ierusalimschy2013-11-081-6/+8
| | | | has been called before
* CallInfo lists shrinks together with their associated stacksRoberto Ierusalimschy2013-09-171-1/+20
|
* GC local pause configurableRoberto Ierusalimschy2013-09-131-1/+6
|
* threads are kept in a separated GC list, linked after the main threadRoberto Ierusalimschy2013-09-111-14/+6
|
* 'luaC_newobj' does not handle special cases; only special caseRoberto Ierusalimschy2013-09-111-7/+11
| | | | now is threads, which do not use 'luaC_newobj' anymore.
* back to open hashing for the string table (but with a differentRoberto Ierusalimschy2013-09-051-2/+2
| | | | | 'hnext' field, to strings are still collected like all other objects)
* local collection now calls finalizersRoberto Ierusalimschy2013-09-031-4/+2
|
* new GC state to sweep 'localgc' list + small changes in sweep controlRoberto Ierusalimschy2013-08-301-2/+2
|