aboutsummaryrefslogtreecommitdiff
path: root/testes (unfollow)
Commit message (Collapse)AuthorFilesLines
2022-09-06Changed the growth rate of string buffersRoberto Ierusalimschy2-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.)
2022-08-24Bug: 'break' may not properly close variable in a 'for' loopRoberto Ierusalimschy2-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.
2022-08-23Simpler handling of Byte Order Mark (BOM)Roberto Ierusalimschy2-26/+56
2022-08-23Bug: set correct pause when (re)entering gen. collection.Roberto Ierusalimschy1-32/+31
2022-08-19Better documentation for 'multires' expressionsRoberto Ierusalimschy3-75/+120
Manual has a new section explaining multires expressions, lists of expressions, and adjustments. This commit also corrects some comments in the code.
2022-05-26More checks and documentation for uses of EXTRA_STACKRoberto Ierusalimschy5-13/+47
2022-05-25Bug: 'lua_settop' may use an invalid pointer to stackRoberto Ierusalimschy5-12/+34
2022-05-23'luaV_concat' can use invalidated pointer to stackRoberto Ierusalimschy1-3/+3
Bug introduced in commit 42d40581.
2022-05-23'lua_checkstack' doesn't need to check stack overflowRoberto Ierusalimschy5-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'.
2022-05-20Save stack space while handling errorsRoberto Ierusalimschy2-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".
2022-05-10Details (identation and typos)Roberto Ierusalimschy2-3/+4
2022-05-06Factoring out common parts of 'codearith' and 'codebitwise'Roberto Ierusalimschy1-25/+33
2022-04-25Bug: Wrong code generation in bitwise operationsRoberto Ierusalimschy3-6/+42
2022-04-07New release number (5.4.5)Roberto Ierusalimschy1-2/+2
2022-04-01DetailsRoberto Ierusalimschy4-6/+17
Comments + manual + identation + asserts about stack limits that were not allowing the use of the full stack
2022-02-18Avoid computing invalid addressesRoberto Ierusalimschy1-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.
2022-02-15Bug: Lua can generate wrong code when _ENV is <const>Roberto Ierusalimschy2-0/+11
2022-02-07Bug: lua.c assumes that argv has at least one elementRoberto Ierusalimschy1-12/+23
2022-01-13Explanation of borders in the manualv5.4.4Roberto Ierusalimschy1-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.
2022-01-03DetailRoberto Ierusalimschy3-8/+8
Warnings with clang when using long double for Lua floats.
2022-01-02New year (2022)Roberto Ierusalimschy2-3/+3
2021-12-22Bug: finalizer calling exit can corrupt finalization orderRoberto Ierusalimschy3-5/+34
'os.exit' can call lua_close again, separating new finalizers created after all previous finalizers were already separated.
2021-12-21DetailsRoberto Ierusalimschy2-2/+2
correction in macro for hard tests + type in comment
2021-12-15Bug: finalizers can be called with an invalid stackRoberto Ierusalimschy1-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.
2021-12-14Fix debug information about finalizersRoberto Ierusalimschy5-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.)
2021-12-13Bug: GC is not reentrantRoberto Ierusalimschy9-27/+57
As the GC is not reentrant, finalizers should not be able to invoke it.
2021-12-10Bug: Lua stack still active when closing a stateRoberto Ierusalimschy1-0/+1
2021-11-25Main 'mainposition' replaced by 'mainpositionTV'Roberto Ierusalimschy1-19/+16
Handle values in table keys as the special cases they are, and not the other way around.
2021-11-25Wrong assert in 'collectvalidlines'Roberto Ierusalimschy2-2/+2
2021-11-16Corrected bug in 'luaD_tryfuncTM'Roberto Ierusalimschy2-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.
2021-11-10Avoid OP_VARARGPREP for active linesRoberto Ierusalimschy2-1/+51
when building the table 'activelines' for a vararg function, this first instruction does not make the first line active.
2021-11-08Bug: Wrong status in coroutine during resetRoberto Ierusalimschy3-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.
2021-11-03Bug: C stack overflow with coroutinesRoberto Ierusalimschy2-2/+18
'coroutine.resume' did not increment counter of C calls when continuing execution after a protected error (that is, while running 'precover').
2021-10-29More uniform implementation for tail callsRoberto Ierusalimschy3-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).
2021-10-18Removed goto's in 'luaD_precall'Roberto Ierusalimschy2-25/+28
(plus a detail in lauxlib.h.)
2021-10-11Avoid taking the address of a 'TValue' fieldRoberto Ierusalimschy2-10/+10
That structure can be packed in the future.
2021-10-11DocumentationRoberto Ierusalimschy4-5/+13
Better explanation about the guaranties of multiple assignment in the manual.
2021-09-22Avoid overflows when incrementing parameters in CRoberto Ierusalimschy6-9/+39
Any C function can receive maxinteger as an integer argument, and therefore cannot increment it without some care (e.g., doing unsigned arithmetic as the core does).
2021-09-15Using 'inline' in some functionsRoberto Ierusalimschy5-15/+32
According to ISO C, "making a function an inline function suggests that calls to the function be as fast as possible." (Not available in C89.)
2021-09-03Revamp of format validation in 'string.format'Roberto Ierusalimschy3-36/+118
When calling 'sprintf', not all conversion specifiers accept all flags; some combinations are undefined behavior.
2021-08-18'luaD_tryfuncTM' checks stack space by itselfRoberto Ierusalimschy3-9/+11
2021-08-18Undo simplification of tail calls (commit 901d760)Roberto Ierusalimschy3-51/+51
Not that simpler and slower.
2021-08-18Detail in 'testes/math.lua'Roberto Ierusalimschy1-0/+1
Added a print with the random seeds used in the tests of 'random'.
2021-08-16Option '-l' can give a name for the global variable.Roberto Ierusalimschy2-15/+27
Sintax for this option now is '-l [globname=]modname'.
2021-08-11Added tests for string reuse by the scannerRoberto Ierusalimschy2-1/+25
2021-08-11Improved documentation for 'lua_getinfo'Roberto Ierusalimschy1-18/+24
2021-07-22Bug: luaL_tolstring may get confused with negative indexRoberto Ierusalimschy3-0/+20
When object has a '__name' metafield, 'luaL_tolstring' used the received index after pushing a string on the stack.
2021-07-22Bug: Negation in 'luaV_shiftr' may overflowRoberto Ierusalimschy2-1/+6
Negation of an unchecked lua_Integer overflows with mininteger.
2021-07-21Correction on documentation of string-buffer operationsRoberto Ierusalimschy1-4/+4
All string-buffer operations can potentially change the stack in unspecified ways; the push/pop documentation in the manual should reflect that.
2021-06-30Simplification in the parameters of 'luaD_precall'Roberto Ierusalimschy3-14/+24
The parameters 'nresults' and 'delta1', in 'luaD_precall', were never meaningful simultaneously. So, they were combined in a single parameter 'retdel'.