Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Fixed bug with to-be-closed variables in base C level | Roberto Ierusalimschy | 2019-04-26 | 1 | -0/+2 |
| | | | | | | | | To-be-closed variables in C use 'ci.nresults' to code that there is a variable to be closed in that function. The intialization of the base C level (the one "running" when calling API functions outside any Lua call) did not initialize 'ci.nresults', creating (correct) warnings in valgrind. | ||||
* | LUAI_MAXCCALLS renamed LUAI_MAXCSTACK | Roberto Ierusalimschy | 2019-03-25 | 1 | -8/+8 |
| | | | | | | | The limit LUAI_MAXCCALLS was renamed LUAI_MAXCSTACK, which better represents its meaning. Moreover, its definition was moved to 'luaconf.h', given its importance now that Lua does not use a "stackless" implementation. | ||||
* | Changes in the warning system | Roberto Ierusalimschy | 2019-03-14 | 1 | -2/+2 |
| | | | | | | | | - The warning functions get an extra parameter that tells whether message is to be continued (instead of using end-of-lines as a signal). - The user data for the warning function is a regular value, instead of a writable slot inside the Lua state. | ||||
* | After a "bad collections", avoid switching back back to generational | Roberto Ierusalimschy | 2019-01-30 | 1 | -1/+3 |
| | | | | | | | After a major bad collection (one that collects too few objects), next collection will be major again. In that case, avoid switching back to generational mode (as it will have to switch again to incremental to do next major collection). | ||||
* | No more LUA_ERRGCMM errors | Roberto Ierusalimschy | 2019-01-01 | 1 | -0/+7 |
| | | | | | Errors in finalizers (__gc metamethods) are never propagated. Instead, they generate a warning. | ||||
* | Added a warning system to Lua | Roberto Ierusalimschy | 2018-12-28 | 1 | -0/+2 |
| | | | | | The warning system is just a way for Lua to emit warnings, messages to the programmer that do not interfere with the running program. | ||||
* | Changes in the control of C-stack overflow | Roberto Ierusalimschy | 2018-12-27 | 1 | -16/+33 |
| | | | | | | | | | | * unification of the 'nny' and 'nCcalls' counters; * external C functions ('lua_CFunction') count more "slots" in the C stack (to allow for their possible use of buffers) * added a new test script specific for C-stack overflows. (Most of those tests were already present, but concentrating them in a single script easies the task of checking whether 'LUAI_MAXCCALLS' is adequate in a system.) | ||||
* | New functions 'lua_resetthread' and 'coroutine.kill' | Roberto Ierusalimschy | 2018-12-13 | 1 | -2/+25 |
| | | | | | | New functions to reset/kill a thread/coroutine, mainly (only?) to close any pending to-be-closed variable. ('lua_resetthread' also allows a thread to be reused...) | ||||
* | 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 |