aboutsummaryrefslogtreecommitdiff
path: root/testes (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Wrong error message when using "_ENV" fieldsRoberto Ierusalimschy10 days1-0/+3
| | | | | The string "_ENV" is erroneously identified as a variable _ENV, so that results from a field is classified as a global.
* Missing GC barrier in 'luaV_finishset'Roberto Ierusalimschy10 days1-0/+15
|
* Use after free in 'luaV_finishset'Roberto Ierusalimschy11 days1-1/+12
| | | | | | If a metatable is a weak table, its __newindex field could be collected by an emergency collection while being used in 'luaV_finishset'. (This bug has similarities with bug 5.3.2-1, fixed in commit a272fa66.)
* 'luaD_seterrorobj' should not raise errorsRoberto Ierusalimschy12 days1-2/+2
| | | | | | This function can be called unprotected, so it should not raise any kind of errors. (It could raise a memory-allocation error when creating a message).
* Removed copyright notice from 'testes/all.lua'Roberto Ierusalimschy12 days32-60/+33
| | | | All test files refer to the main copyright notice in 'lua.h'.
* New test file 'memerr.lua'Roberto Ierusalimschy12 days4-243/+268
| | | | | | Tests for memory-allocation errors moved from 'api.lua' to this new file, as 'api.lua' was already too big. (Besides, these tests have nothing to do with the API.)
* Checks for type 'int' added to binary headerRoberto Ierusalimschy14 days1-17/+30
| | | | | The structure 'AbsLineInfo' is hard-dumped into binary chunks, and it comprises two 'int' fields.
* Error object cannot be nilRoberto Ierusalimschy2025-02-281-3/+3
| | | | | Lua will change a nil as error object to a string message, so that it never reports an error with nil as the error object.
* '__close' gets no error object if there is no errorRoberto Ierusalimschy2025-02-281-8/+36
| | | | | Instead of receiving nil as a second argument, __close metamethods are called with just one argument when there are no errors.
* 'lua_State.nci' must be an integerRoberto Ierusalimschy2025-02-261-0/+12
| | | | | | Lua can easily overflow an unsigned short counting nested calls. (The limit to this value is the maximum stack size, LUAI_MAXSTACK, which is currently 1e6.)
* DetailsRoberto Ierusalimschy2025-02-263-4/+28
| | | | | Comments, small changes in the manual, an extra test for errors in error handling, small changes in tests.
* CallInfo bit CIST_CLSRET broken in twoRoberto Ierusalimschy2025-01-281-6/+31
| | | | | | | | | Since commit f407b3c4a, it was being used for two distinct (and incompatible) meanings: A: Function has TBC variables (now bit CIST_TBC) B: Interpreter is closing TBC variables (original bit CIST_CLSRET) B implies A, but A does not imply B.
* Parameters for 'lua_createtable' back to intRoberto Ierusalimschy2025-01-211-2/+4
| | | | Tables don't accept sizes larger than int.
* fixing 'lua_status' in panic.Roberto Ierusalimschy2025-01-161-0/+19
| | | | | 'luaD_throw' may call 'luaE_resetthread', which returns an error code but clears 'L->status'; so, 'luaD_throw' should set that status again.
* DetailsRoberto Ierusalimschy2025-01-161-4/+3
| | | | New year (2024->2025), typos in comments
* Fixed conversion warnings from clangRoberto Ierusalimschy2025-01-141-1/+1
| | | | | Plus some other details. (Option '-Wuninitialized' was removed from the makefile because it is already enabled by -Wall.)
* Another way to compile goto'sRoberto Ierusalimschy2025-01-103-13/+37
| | | | | | | | | | | | The compilation of a goto or a label just create an entry and generate boilerplate code for the gotos. As we don't know yet whether it needs a CLOSE, we code a jump followed by a CLOSE, which is then dead code. When a block ends (and then we know for sure whether there are variables that need to be closed), we check the goto's against the labels of that block. When closing a goto against a label, if it needs a CLOSE, the compiler swaps the order of the jump and the CLOSE, making the CLOSE active.
* OP_SELF restricted to constant short stringsRoberto Ierusalimschy2024-12-111-1/+2
| | | | | | Optimize this opcode for the common case. For long names or method calls after too many constants, operation can be coded as a move followed by 'gettable'.
* New way to keep hints for table lengthRoberto Ierusalimschy2024-11-291-15/+14
| | | | | | | | | | Instead of using 'alimit' for keeping the size of the array and at the same time being a hint for '#t', a table now keeps these two values separate. The Table structure has a field 'asize' with the size of the array, while the length hint is kept in the array itself. That way, tables with no array part waste no space with that field. Moreover, the space for the hint may have zero cost for small arrays, if the array of tags plus the hint still fits in a single word.
* Change to macro 'LUAI_TRY'Roberto Ierusalimschy2024-11-251-0/+1
| | | | The call to 'f' is done by the macro, to give it more flexibility.
* Debug information about extra arguments from __callRoberto Ierusalimschy2024-11-193-0/+39
| | | | | | 'debug.getinfo' can return number of extra arguments added to a call by a chain of __call metavalues. That information is being used to improve error messages about errors in these extra arguments.
* Counter for length of chains of __call metamethodsRoberto Ierusalimschy2024-11-161-3/+20
| | | | | This counter will allow (in a later commit) error messages to correct argument numbers in functions called through __call metamethods.
* Add extra size when resizing tables with deleted keysRoberto Ierusalimschy2024-11-141-1/+61
| | | | | | | | Without this extra space, sequences of insertions/deletions (and some other uses) can have unpexpected low performances. See the added tests for an example, and *Mathematical Models to Analyze Lua Hybrid Tables and Why They Need a Fix* (Martínez, Nicaud, Rotondo; arXiv:2208.13602v2) for detais.
* New rule for size of array partRoberto Ierusalimschy2024-11-131-18/+54
| | | | | | | | Array part needs 1/3 of its elements filled, instead of 1/2. Array entries use ~1/3 the memory of hash entries, so this new rule still ensures that array parts do not use more memory than keeping the values in the hash, while allowing more uses of the array part, which is more efficient than the hash.
* Table rehash can resize only the hash partRoberto Ierusalimschy2024-10-281-3/+22
| | | | | | | If there are no integer keys outside the array part, there is no reason to resize it, saving the time to count its elements. Moreover, assignments to non-integer keys will not collapse a table created with 'table.create'.
* Better support in 'ltests' for tracing the GCRoberto Ierusalimschy2024-10-212-4/+4
|
* Local declaration in the REPL generates a warningRoberto Ierusalimschy2024-09-271-0/+9
|
* A return can have at most 254 valuesRoberto Ierusalimschy2024-08-191-0/+11
|
* Bug: wrong code gen. for indices with comparisonsRoberto Ierusalimschy2024-08-171-0/+8
| | | | | | | In function 'luaK_exp2val', used to generate code for indices: Macro 'hasjumps' does not consider the case when the whole expression is a "jump" (a test). In all other of its uses, the surrounding code ensures that the expression cannot be VJMP.
* Floats formatted with "correct" precisionRoberto Ierusalimschy2024-08-021-3/+103
| | | | | | Conversion float->string ensures that, for any float f, tonumber(tostring(f)) == f, but still avoiding noise like 1.1 converting to "1.1000000000000001".
* '-Wconversion' extended to all options of Lua numbersRoberto Ierusalimschy2024-07-271-1/+1
|
* Using CIST_CLSRET instead of trick with 'nresults'Roberto Ierusalimschy2024-07-191-0/+17
| | | | | The callstatus flag CIST_CLSRET is used in all tests for the presence of variables to be closed in C functions.
* Removed compatibility with "= exp" in the REPLRoberto Ierusalimschy2024-07-051-1/+1
|
* Fixed bug in 'multiline'Roberto Ierusalimschy2024-07-051-0/+5
| | | | | | 'incomplete' was popping error message that should be used in case there is no more lines to complete the input, that is, 'pushline' returns NULL, due to end of file.
* lua.c loads 'readline' dynamicallyRoberto Ierusalimschy2024-07-041-9/+7
| | | | | | | (See comments in luaconf.h.) This change allows easier compilation, as Lua compiles and works even if the package 'readline' is absent from the system. Moreover, non-interactive uses don't load the library, making the stand-alone slightly faster for small loads.
* Flexible limit for use of registers by constructorsRoberto Ierusalimschy2024-06-271-0/+11
| | | | | | | | Instead of a fixed limit of 50 registers (which, in a bad worst case, can limit the nesting of constructors to 5 levels), the compiler computes an individual limit for each constructor based on how many registers are available when it runs. This limit then controls the frequency of SETLIST instructions.
* Clearer code for controlling maximum registersRoberto Ierusalimschy2024-06-261-0/+15
| | | | Plus, added a test to check that limit.
* Removed 'int' size limit for string.repRoberto Ierusalimschy2024-06-211-4/+3
|
* Removed 'int' size limit for pack/unpackRoberto Ierusalimschy2024-06-211-9/+10
|
* GC test was not restarting collector after pauseRoberto Ierusalimschy2024-06-181-1/+2
|
* Bug: luaL_traceback may need more than 5 stack slotsRoberto Ierusalimschy2024-06-121-1/+14
|
* Bug: Active-lines for stripped vararg functionsRoberto Ierusalimschy2024-06-041-0/+9
| | | | | Lua seg. faults when asked to create the 'activelines' table for a vararg function with no debug information.
* utf8.offset returns also final position of characterRoberto Ierusalimschy2024-05-271-17/+27
| | | | | 'utf8.offset' returns two values: the initial and the final position of the given character.
* DetailsRoberto Ierusalimschy2024-05-081-1/+2
| | | | | Corrections in comments and manual. Added note in the manual about local variables in the REPL.
* Fixed dangling 'StkId' in 'luaV_finishget'Roberto Ierusalimschy2024-03-291-0/+9
| | | | Bug introduced in 05932567.
* DetailsRoberto Ierusalimschy2024-03-131-2/+2
| | | | | | - 'unsigned int' -> 'unsigned' - Some explicit casts to avoid warnings - Test avoids printing the value of 'fail' (which may not be nil)
* API asserts for illegal pops of to-be-closed variablesRoberto Ierusalimschy2024-03-111-1/+2
|
* New interface to function 'luaL_openselectedlibs'Roberto Ierusalimschy2024-02-152-6/+6
| | | | | Instead of preloading all non-loaded libraries, there is another mask to select which libraries to preload.
* Better handling of size limit when resizing a tableRoberto Ierusalimschy2024-02-071-12/+17
| | | | | | | | Avoid silent conversions from int to unsigned int when calling 'luaH_resize'; avoid silent conversions from lua_Integer to int in 'table.create'; MAXASIZE corrected for the new implementation of arrays; 'luaH_resize' checks explicitly whether new size respects MAXASIZE. (Even constructors were bypassing that check.)
* DetailsRoberto Ierusalimschy2024-01-291-0/+2
|