Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Several functions turned 'static' | Roberto Ierusalimschy | 2023-05-22 | 1 | -1/+0 |
| | | | | | Several functions that were already being used only inside their own file have been declared as 'static'. | ||||
* | Stack indices changed to union's | Roberto Ierusalimschy | 2022-10-29 | 1 | -3/+4 |
| | | | | | That will allow to change pointers to offsets while reallocating the stack. | ||||
* | More checks and documentation for uses of EXTRA_STACK | Roberto Ierusalimschy | 2022-05-26 | 1 | -0/+7 |
| | |||||
* | Details (identation and typos) | Roberto Ierusalimschy | 2022-05-10 | 1 | -1/+2 |
| | |||||
* | More uniform implementation for tail calls | Roberto Ierusalimschy | 2021-10-29 | 1 | -1/+1 |
| | | | | | | | | | | | 'luaD_pretailcall' mimics 'luaD_precall', handling call metamethods and calling C functions directly. That makes the code in the interpreter loop simpler. This commit also goes back to emulating the tail call in 'luaD_precall' with a goto, as C compilers may not do proper tail calls and the C stack can overflow much sooner than the Lua stack (which grows as the metamethod is added to it). | ||||
* | 'luaD_tryfuncTM' checks stack space by itself | Roberto Ierusalimschy | 2021-08-18 | 1 | -1/+1 |
| | |||||
* | Undo simplification of tail calls (commit 901d760) | Roberto Ierusalimschy | 2021-08-18 | 1 | -13/+2 |
| | | | | Not that simpler and slower. | ||||
* | Simplification in the parameters of 'luaD_precall' | Roberto Ierusalimschy | 2021-06-30 | 1 | -2/+13 |
| | | | | | | The parameters 'nresults' and 'delta1', in 'luaD_precall', were never meaningful simultaneously. So, they were combined in a single parameter 'retdel'. | ||||
* | Simpler implementation for tail calls | Roberto Ierusalimschy | 2021-06-11 | 1 | -2/+2 |
| | | | | | Tail calls handled by 'luaD_precall', like regular calls, to avoid code duplication. | ||||
* | Broadening the use of branch hints | Roberto Ierusalimschy | 2021-02-24 | 1 | -1/+1 |
| | | | | | | More uses of macros 'likely'/'unlikely' (renamed to 'l_likely'/'l_unlikely'), both in range (extended to the libraries) and in scope (extended to hooks, stack growth). | ||||
* | Cleaner handling of errors in '__close' metamethods | Roberto Ierusalimschy | 2020-12-28 | 1 | -0/+1 |
| | | | | | Instead of protecting each individual metamethod call, protect the entire call to 'luaF_close'. | ||||
* | Correct handling of 'luaV_execute' invocations | Roberto Ierusalimschy | 2020-10-12 | 1 | -1/+1 |
| | | | | | | | | | The previous stackless implementations marked all 'luaV_execute' invocations as fresh. However, re-entering 'luaV_execute' when resuming a coroutine should not be a fresh invocation. (It works because 'unroll' called 'luaV_execute' for each call entry, but it was slower than letting 'luaV_execute' finish all non-fresh invocations.) | ||||
* | Back to a stackless implementation | Roberto Ierusalimschy | 2020-10-12 | 1 | -0/+1 |
| | | | | | | | | | | | | | A "with stack" implementation gains too little in performance to be worth all the noise from C-stack overflows. This commit is almost a sketch, to test performance. There are several pending stuff: - review control of C-stack overflow and error messages; - what to do with setcstacklimit; - review comments; - review unroll of Lua calls. | ||||
* | Fixed bugs of stack reallocation x GC | Roberto Ierusalimschy | 2020-07-07 | 1 | -2/+4 |
| | | | | | | | | Macro 'checkstackGC' was doing a GC step after resizing the stack; the GC could shrink the stack and undo the resize. Moreover, macro 'checkstackp' also does a GC step, which could remove the preallocated CallInfo when calling a function. (Its name has been changed to 'checkstackGCp' to emphasize that it calls the GC.) | ||||
* | First "complete" implementation of to-be-closed variables | Roberto Ierusalimschy | 2018-10-17 | 1 | -0/+1 |
| | | | | | | | 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. | ||||
* | in 'luaD_poscall', there is no need to compute 'firstResult' when 'nres==0' | Roberto Ierusalimschy | 2018-05-22 | 1 | -3/+2 |
| | |||||
* | two new fields 'fTransfer'/'nTransfer' in 'lua_Debug' structure | Roberto Ierusalimschy | 2018-02-17 | 1 | -2/+3 |
| | | | | (for information about values being given and returned in function calls) | ||||
* | some simplifications/optimizations in returns from Lua functions | Roberto Ierusalimschy | 2018-02-15 | 1 | -4/+1 |
| | |||||
* | vararg back to '...' (but with another implementation) | Roberto Ierusalimschy | 2018-02-09 | 1 | -1/+9 |
| | | | | new implementation should have zero overhead for non-vararg functions | ||||
* | call hooks for Lua functions called by 'luaV_execute' | Roberto Ierusalimschy | 2018-02-06 | 1 | -1/+2 |
| | |||||
* | 'luaD_tryfuncTM' can ensure it does not change the stack | Roberto Ierusalimschy | 2018-01-10 | 1 | -2/+2 |
| | |||||
* | 'luaD_growstack' cannot raise any errors when 'raiseerror' is | Roberto Ierusalimschy | 2017-12-11 | 1 | -3/+3 |
| | | | | false (+ some comments) | ||||
* | more freedom in handling memory-allocation errors (not all allocations | Roberto Ierusalimschy | 2017-12-08 | 1 | -4/+5 |
| | | | | | automatically raise an error), which allows fixing a bug when resizing a table. | ||||
* | small simplifications in 'luaD_poscall' | Roberto Ierusalimschy | 2017-11-23 | 1 | -2/+2 |
| | |||||
* | no more 'stackless' implementation; 'luaV_execute' calls itself | Roberto Ierusalimschy | 2017-11-23 | 1 | -2/+1 |
| | | | | | recursively to execute function calls. 'unroll' continues all executions suspended by an yield (through a long jump) | ||||
* | more direct implementation for tail calls. | Roberto Ierusalimschy | 2017-11-21 | 1 | -1/+3 |
| | |||||
* | back to 'CallInfo' (no gains with its removal) | Roberto Ierusalimschy | 2017-11-07 | 1 | -2/+3 |
| | |||||
* | no more 'CallInfo' structure | Roberto Ierusalimschy | 2017-11-04 | 1 | -3/+2 |
| | |||||
* | new type 'StackValue' for stack elements | Roberto Ierusalimschy | 2017-06-29 | 1 | -2/+2 |
| | | | | (we may want to put extra info there in the future) | ||||
* | back to old-style vararg system (with vararg table collecting extra | Roberto Ierusalimschy | 2017-05-13 | 1 | -1/+9 |
| | | | | arguments) | ||||
* | avoid empty macro arguments (invalid in C89) | Roberto Ierusalimschy | 2015-12-21 | 1 | -2/+2 |
| | |||||
* | details (comments) | Roberto Ierusalimschy | 2015-11-23 | 1 | -2/+2 |
| | |||||
* | details (typos in comments) | Roberto Ierusalimschy | 2015-11-19 | 1 | -2/+2 |
| | |||||
* | trying to optimize a little 'luaD_poscall' | Roberto Ierusalimschy | 2015-11-13 | 1 | -2/+3 |
| | |||||
* | in 'luaD_call', use two functions instead of one with fixed boolean | Roberto Ierusalimschy | 2015-11-02 | 1 | -3/+3 |
| | | | | argument | ||||
* | macro 'incr_top' replaced by function 'luaD_inctop'. (It is not used | Roberto Ierusalimschy | 2015-11-02 | 1 | -2/+2 |
| | | | | in critical time pathes, can save a few bytes without the macro) | ||||
* | small changes to allow 'precall' to spend time preserving 'func' | Roberto Ierusalimschy | 2015-10-21 | 1 | -3/+14 |
| | | | | only when needed (that is, when stack actually changes) | ||||
* | bug: interpreter cannot pop activation frame before calling return | Roberto Ierusalimschy | 2015-05-22 | 1 | -2/+2 |
| | | | | | hook (as it may want to access local variables active by the end of the function) | ||||
* | `name' in comments changed to 'name' | Roberto Ierusalimschy | 2014-10-25 | 1 | -2/+2 |
| | |||||
* | 'lua_load' has an extra argument 'mode' | Roberto Ierusalimschy | 2011-11-29 | 1 | -2/+3 |
| | |||||
* | new type 'l_noret' for function that do not return | Roberto Ierusalimschy | 2011-10-07 | 1 | -2/+2 |
| | |||||
* | removed export of function only for coco | Roberto Ierusalimschy | 2009-12-17 | 1 | -4/+1 |
| | |||||
* | new scheme for debug info about tail calls: no more 'fake' stack entries, | Roberto Ierusalimschy | 2009-11-25 | 1 | -2/+2 |
| | | | | but stack entry knows whether it was tail called | ||||
* | remove declaration of removed function | Roberto Ierusalimschy | 2009-11-19 | 1 | -2/+1 |
| | |||||
* | new way to control stack overflow, controling only total size of the stack | Roberto Ierusalimschy | 2009-07-15 | 1 | -1/+2 |
| | |||||
* | new definition for 'luaD_checkstack' to avoid possible overflows | Roberto Ierusalimschy | 2009-07-08 | 1 | -4/+3 |
| | |||||
* | new macro 'condmovestack' instead of 'condhardstacktests' | Roberto Ierusalimschy | 2009-06-08 | 1 | -3/+2 |
| | |||||
* | 'CallInfo' stack implemented as double-linked list instead of an array | Roberto Ierusalimschy | 2009-04-17 | 1 | -4/+1 |
| | |||||
* | yielding across lua_call (first version) | Roberto Ierusalimschy | 2009-03-10 | 1 | -2/+3 |
| |