aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * Threads are created like other objectsRoberto Ierusalimschy2022-11-013-12/+16
| | | | | | | | | | Using a version of 'luaC_newobj' that allows offsets (extra space before the object itself).
* | Tables have a 'lastfree' information only when neededRoberto Ierusalimschy2022-11-017-24/+84
|/ | | | | Only tables with some minimum number of entries in their hash part have a 'lastfree' field, kept in a header before the node vector.
* Stack reallocation done with a single reallocRoberto Ierusalimschy2022-10-312-22/+52
| | | | | | | To avoid the need of both the old and the new stack addresses valid at the same time, to correct the pointers to the stack, these pointers are changed to offsets before the reallocation and then changed back to pointers after the reallocation.
* Stack indices changed to union'sRoberto Ierusalimschy2022-10-2919-370/+384
| | | | | That will allow to change pointers to offsets while reallocating the stack.
* DetailsRoberto Ierusalimschy2022-10-261-2/+7
| | | | Added comments in the makefile about other useful '-fsanitize' options.
* Bug: stack overflow with nesting of coroutine.closeRoberto Ierusalimschy2022-10-256-6/+38
|
* Removed test function 'luaH_isdummy'Roberto Ierusalimschy2022-10-212-3/+0
| | | | It was not being used anywhere.
* Option '-l g=mod' added to the manualRoberto Ierusalimschy2022-10-191-11/+12
| | | | Plus some other improvements in the manual.
* DetailsRoberto Ierusalimschy2022-10-192-7/+7
| | | | Some cast operations rewritten to use respective macros.
* Portability issue in a test for 'string.format'Roberto Ierusalimschy2022-10-191-2/+7
|
* Negation in constant folding of '>>' may overflowRoberto Ierusalimschy2022-09-234-4/+19
|
* Small simplification in overflow check in 'getfield'Roberto Ierusalimschy2022-09-232-3/+10
| | | | | Subtracting a small non-negative int from a non-negative int cannot overflow, and adding a non-negative int to INT_MIN cannot overflow.
* Bug: 'utf8.codes' accepts spurious continuation bytesRoberto Ierusalimschy2022-09-232-12/+27
|
* New test for table rehashRoberto Ierusalimschy2022-09-161-9/+29
|
* Note in the manual about using '...' as an expressionRoberto Ierusalimschy2022-09-081-5/+16
|
* Corrected error message in 'table.remove'Roberto Ierusalimschy2022-09-071-1/+1
|
* Changed the growth rate of string buffersRoberto Ierusalimschy2022-09-062-6/+7
| | | | | | | | The growth rate of string buffers was reduced from 2 to 1.5 (3/2). As string buffers start larger (256~1024 bytes), they don't need to grow that fast. Moreover, a lower rate allows multiplicative growth up to larger sizes (3/2 of the maximum). (After that, the growth becomes linear, which is mostly useless.)
* Bug: 'break' may not properly close variable in a 'for' loopRoberto Ierusalimschy2022-08-242-8/+28
| | | | | | | Function 'leaveblock' was generating "break" label before removing variables from the closing block. If 'createlabel' created a 'close' instruction (which it did when matching a goto/break that exited the scope of an upvalue), that instruction would use the wrong level.
* Simpler handling of Byte Order Mark (BOM)Roberto Ierusalimschy2022-08-232-26/+56
|
* Bug: set correct pause when (re)entering gen. collection.Roberto Ierusalimschy2022-08-231-32/+31
|
* Better documentation for 'multires' expressionsRoberto Ierusalimschy2022-08-193-75/+120
| | | | | | Manual has a new section explaining multires expressions, lists of expressions, and adjustments. This commit also corrects some comments in the code.
* More checks and documentation for uses of EXTRA_STACKRoberto Ierusalimschy2022-05-265-13/+47
|
* Bug: 'lua_settop' may use an invalid pointer to stackRoberto Ierusalimschy2022-05-255-12/+34
|
* 'luaV_concat' can use invalidated pointer to stackRoberto Ierusalimschy2022-05-231-3/+3
| | | | Bug introduced in commit 42d40581.
* 'lua_checkstack' doesn't need to check stack overflowRoberto Ierusalimschy2022-05-235-26/+17
| | | | | | 'luaD_growstack' already checks that. This commit also fixes an internal bug in 'luaD_growstack': a large 'n' could cause an arithmetic overflow when computing 'needed'.
* Save stack space while handling errorsRoberto Ierusalimschy2022-05-202-3/+8
| | | | | | | | | | Because error handling (luaG_errormsg) uses slots from EXTRA_STACK, and some errors can recur (e.g., string overflow while creating an error message in 'luaG_runerror', or a C-stack overflow before calling the message handler), the code should use stack slots with parsimony. This commit fixes the bug "Lua-stack overflow when C stack overflows while handling an error".
* Details (identation and typos)Roberto Ierusalimschy2022-05-102-3/+4
|
* Factoring out common parts of 'codearith' and 'codebitwise'Roberto Ierusalimschy2022-05-061-25/+33
|
* Bug: Wrong code generation in bitwise operationsRoberto Ierusalimschy2022-04-253-6/+42
|
* New release number (5.4.5)Roberto Ierusalimschy2022-04-071-2/+2
|
* DetailsRoberto Ierusalimschy2022-04-014-6/+17
| | | | | Comments + manual + identation + asserts about stack limits that were not allowing the use of the full stack
* Avoid computing invalid addressesRoberto Ierusalimschy2022-02-181-32/+89
| | | | | | luaV_execute should compute 'ra' only when the instruction uses it. Computing an illegal address is undefined behavior even if the address is never dereferenced.
* Bug: Lua can generate wrong code when _ENV is <const>Roberto Ierusalimschy2022-02-152-0/+11
|
* Bug: lua.c assumes that argv has at least one elementRoberto Ierusalimschy2022-02-071-12/+23
|
* Explanation of borders in the manualv5.4.4Roberto Ierusalimschy2022-01-131-10/+12
| | | | | | The explanation includes the limit case of maxinteger being a border. It also avoids the term "natural", which might include large floats with natural values.
* DetailRoberto Ierusalimschy2022-01-033-8/+8
| | | | Warnings with clang when using long double for Lua floats.
* New year (2022)Roberto Ierusalimschy2022-01-022-3/+3
|
* Bug: finalizer calling exit can corrupt finalization orderRoberto Ierusalimschy2021-12-223-5/+34
| | | | | 'os.exit' can call lua_close again, separating new finalizers created after all previous finalizers were already separated.
* DetailsRoberto Ierusalimschy2021-12-212-2/+2
| | | | correction in macro for hard tests + type in comment
* Bug: finalizers can be called with an invalid stackRoberto Ierusalimschy2021-12-151-1/+1
| | | | | The call to 'checkstackGC' can run finalizers, which will find an inconsistent CallInfo, as 'ci' is half updated at the point of call.
* Fix debug information about finalizersRoberto Ierusalimschy2021-12-145-27/+35
| | | | | | The flag CIST_FIN does not mark a finalizer, but the function that was running when the finalizer was called. (So, the function did not call the finalizer, but it looks that way in the stack.)
* Bug: GC is not reentrantRoberto Ierusalimschy2021-12-139-27/+57
| | | | As the GC is not reentrant, finalizers should not be able to invoke it.
* Bug: Lua stack still active when closing a stateRoberto Ierusalimschy2021-12-101-0/+1
|
* Main 'mainposition' replaced by 'mainpositionTV'Roberto Ierusalimschy2021-11-251-19/+16
| | | | | Handle values in table keys as the special cases they are, and not the other way around.
* Wrong assert in 'collectvalidlines'Roberto Ierusalimschy2021-11-252-2/+2
|
* Corrected bug in 'luaD_tryfuncTM'Roberto Ierusalimschy2021-11-162-2/+3
| | | | | | The pointer to the metamethod can be invalidated by a finalizer that can run during a GC in 'checkstackGCp'. (This commit also fixes a detail in the manual.) Bug introduced in commit 91673a8ec.
* Avoid OP_VARARGPREP for active linesRoberto Ierusalimschy2021-11-102-1/+51
| | | | | when building the table 'activelines' for a vararg function, this first instruction does not make the first line active.
* Bug: Wrong status in coroutine during resetRoberto Ierusalimschy2021-11-083-5/+47
| | | | | | | | | When closing variables during 'coroutine.close' or 'lua_resetthread', the status of a coroutine must be set to LUA_OK; a coroutine should not run with any other status. (See assertion in 'lua_callk'.) After the reset, the status should be kept as normal, as any error was already reported.
* Bug: C stack overflow with coroutinesRoberto Ierusalimschy2021-11-032-2/+18
| | | | | | 'coroutine.resume' did not increment counter of C calls when continuing execution after a protected error (that is, while running 'precover').
* More uniform implementation for tail callsRoberto Ierusalimschy2021-10-293-44/+58
| | | | | | | | | | | '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).