aboutsummaryrefslogtreecommitdiff
path: root/testes/locals.lua (unfollow)
Commit message (Collapse)AuthorFilesLines
2021-02-05New macro 'completestate'Roberto Ierusalimschy4-7/+11
2021-02-05Forbid changing numerical types through compiler optionsRoberto Ierusalimschy1-41/+42
'luaconf.h' always defines options LUA_32BITS, LUA_C89_NUMBERS, LUA_INT_TYPE, and LUA_FLOAT_TYPE (using 0/1 for the first two), to avoid they being set through compiler options. (It is too easy to forget these options when compiling other software that interoperates with Lua.)
2021-02-05Fixed some bugs around stack reallocationRoberto Ierusalimschy4-1/+6
Long time without using HARDSTACKTESTS...
2021-02-02Optimization/simplification of 'getbaseline'Roberto Ierusalimschy3-24/+19
By producing absolute line information at regular intervals, a simple division can compute the correct entry for a given instruction.
2021-01-28Optimizations for line hookRoberto Ierusalimschy4-33/+47
The function 'changedline' tries harder to avoid calling 'luaG_getfuncline' plus small changes in the use of 'L->oldpc'.
2021-01-26Small improvements in hooksRoberto Ierusalimschy2-9/+30
- 'L->top' is set once in 'luaD_hook', instead of being set in 'luaD_hookcall' and 'rethook'; - resume discard arguments when returning after an yield inside a hook (arguments may interfere with the coroutine stack); - yield inside a hook asserts it has no arguments.
2021-01-25Janitorial workRoberto Ierusalimschy4-26/+45
Comments, code details, identation.
2021-01-21Correct order of return hooks vs. close metamethodsRoberto Ierusalimschy2-16/+85
The return hook should be called only after closing variables (which are still part of the function). C functions were calling the hook before the metamethods.
2021-01-19Simpler handling of errors when creating tbc variablesRoberto Ierusalimschy6-35/+25
New field 'lua_State.ptbc' keeps to-be-closed variable until its upvalue is created, so that it can be closed in case of a memory-allocation error.
2021-01-18Allow yields in '__close' metamethods ater errorsRoberto Ierusalimschy3-71/+126
Completes commit b07fc10e91a. '__close' metamethods can yield even when they are being called due to an error. '__close' metamethods from C functions are still not allowed to yield.
2021-01-14Corrected documentation for 'table.sort'Roberto Ierusalimschy1-8/+8
The sort function must define a (strict) weak order for a correct sorting. A partial order is not enough.
2021-01-13Allow yields inside '__close' metamethodsRoberto Ierusalimschy7-18/+114
Initial implementation to allow yields inside '__close' metamethods. This current version still does not allow a '__close' metamethod to yield when called due to an error. '__close' metamethods from C functions also are not allowed to yield.
2021-01-11New API function 'lua_closeslot'Roberto Ierusalimschy6-29/+66
Closing a to-be-closed variable with 'lua_settop' is too restrictive, as it erases all slots above the variable. Moreover, it adds side effects to 'lua_settop', which should be a fairly basic function.
2020-12-30Handles '__close' errors in coroutines in "coroutine style"Roberto Ierusalimschy2-22/+85
Errors in '__close' metamethods in coroutines are handled by the same logic that handles other errors, through 'recover'.
2020-12-29Do not insert nil values into tablesRoberto Ierusalimschy1-0/+2
2020-12-29Better error messages for calling non-callable objectsRoberto Ierusalimschy6-11/+52
When available, use the calling code to find a suitable name for what was being called; this is particularly useful for errors of non-callable metamethods. This commit also improved the debug information for order metamethods.
2020-12-29No need to recheck close method before calling itRoberto Ierusalimschy2-27/+63
A to-be-closed variable is constant and it must have a close metamethod when it is created. A program has to go out of its way (e.g., by changing the variable's metamethod) to invalidate that check. So, it is not worth to test that again. If the program tampers with the metamethod, Lua will raise a regular error when attempting to call it.
2020-12-28Reset thread before panickingRoberto Ierusalimschy3-14/+15
Before panicking, it is simpler to reset the thread instead of closing its variables and adjust the top manually.
2020-12-28Cleaner handling of errors in '__close' metamethodsRoberto Ierusalimschy7-75/+80
Instead of protecting each individual metamethod call, protect the entire call to 'luaF_close'.
2020-12-22Report last error in closing methodsRoberto Ierusalimschy5-101/+35
When there are multiple errors around closing methods, report the last error instead of the original.
2020-12-21Upvalues removed from 'openupval' before being closedRoberto Ierusalimschy3-26/+31
Undo commit c220b0a5d0: '__close' is not called again in case of errors. (Upvalue is removed from the list before the call.) The common error that justified that change was C stack overflows, which are much rarer with the stackless implementation.
2020-12-18'coroutine.close'/'lua_resetthread' report original errorsRoberto Ierusalimschy5-15/+40
Besides errors in closing methods, 'coroutine.close' and 'lua_resetthread' also consider the original error that stopped the thread, if any.
2020-12-16Cleaner handling of floats in pack/unpackRoberto Ierusalimschy1-29/+41
2020-12-16Cleaner definition for macro 'ttisclosure'Roberto Ierusalimschy1-1/+2
2020-12-08Review of asserts in 'ltests.c'Roberto Ierusalimschy1-56/+70
The module 'ltests.c' must work correctly with asserts off, too.
2020-12-07Details (do not affect regular code)Roberto Ierusalimschy4-3/+31
* Avoids multiple definitions of 'lua_assert' in test file. * Smaller C-stack limit in test mode. * Note in the manual about the use of false * Extra test for constant reuse.
2020-12-04Changes in the API of 'luaH_set' and related functionsRoberto Ierusalimschy6-40/+58
Functions to set values in a table (luaH_set, luaH_newkey, etc.) receive the new value, instead of returning a slot where to put the value.
2020-12-03Added test cases for error messages about goto/labelRoberto Ierusalimschy1-0/+21
2020-12-03n Windows, 'popen' accepts "[rw][bt]?" as valid modesRoberto Ierusalimschy1-6/+12
Added the modifiers 'b' and 't' to valid modes for 'popen' in Windows.
2020-12-03Avoid "bad programming habits" in the reference systemRoberto Ierusalimschy1-6/+18
References were using both 0 indices and nils as values in arrays. Both do not fit in the concept of a sequence, which is the kind of use that guides all Lua optimizations.
2020-12-03'lua_assert' moved from 'lualib.h' to 'lauxlib.h'Roberto Ierusalimschy2-6/+12
The macro is useful also in 'lauxlib.c', which does not include 'lualib.h'. Also, the definition was corrected to be "on" when LUAI_ASSERT is defined.
2020-12-02DetailsRoberto Ierusalimschy5-32/+32
Names in the parser and other details that do not change actual code.
2020-11-26Changed access to global table in the registryRoberto Ierusalimschy2-14/+20
The global table is always in the array part of the registry; we can use this fact to make its access slightly more efficient.
2020-11-24Avoid using 'signal' when 'sigaction' is availableRoberto Ierusalimschy1-3/+23
The semantics of 'signal' varies a lot among different implementations; 'sigaction' ensures a more consistent behavior.
2020-11-13Optimization for 'n^2'v5.4.2Roberto Ierusalimschy1-1/+2
Squares are much more common than other exponentiations, and 'n*n' is much more efficient than 'pow'.
2020-11-11Compiler optimization back to '-O2'Roberto Ierusalimschy1-10/+0
Undo commit 6a10f03ff. Compiler performance is important, too.
2020-11-11Removed optimization for «if ... then goto»Roberto Ierusalimschy2-66/+6
That optimization was too complex and caused some weird traces when debugging. The more common case «if ... then break» was kept.
2020-11-08Bug when growing a stackRoberto Ierusalimschy3-4/+4
When a stack grows, its extra area can be in use, and it becomes part of the common area. So, the extra area must be kept correct all the times. (Bug introduced by commit 5aa36e894f5.)
2020-11-03'luaL_newstate' should not allocate extra memoryRoberto Ierusalimschy3-26/+50
The allocation of a userdata for the state of the warn system can cause a panic if it fails; 'luaL_ref' also can fail. This commit re-implements the warn system so that it does not need an explicit state. Instead, the system uses different functions to represent the different states.
2020-10-30DetailsRoberto Ierusalimschy4-18/+30
- small corrections in the manual - ldo.c: 'docall' -> 'ccall' ('docall' already used in 'lua.c') - comments
2020-10-26_PROMPT can have non-string valuesRoberto Ierusalimschy2-6/+37
'get_prompt' uses 'luaL_tolstring' to convert _PROMPT or _PROMPT2 value to a string. That conversion may invoke a '__tostring' metamethod.
2020-10-22CommentsRoberto Ierusalimschy3-26/+34
2020-10-19Fixed wrong trace of vararg functionsRoberto Ierusalimschy2-20/+35
Trace of vararg functions was skipping an instruction when returning from a call. (Bug introduced by commit 5d8ce05b3.)
2020-10-19Fixed compiler option -DHARDSTACKTESTS to commit 5aa36e8Roberto Ierusalimschy1-1/+1
2020-10-14Fixed bug of keys removed from tables vs 'next'Roberto Ierusalimschy4-27/+67
Fixed the bug that a key removed from a table might not be found again by 'next'. (This is needed to allow keys to be removed during a traversal.) This bug was introduced in commit 73ec04fc.
2020-10-12New release number (5.4.2)Roberto Ierusalimschy1-1/+1
2020-10-12'lua_upvalueid' returns NULL on invalid upvalue indexRoberto Ierusalimschy4-15/+33
2020-10-12Hash always use all characters in a long stringRoberto Ierusalimschy4-20/+6
Hashes for long strings are computed only when they are used as keys in a table, not a too common case. And, in that case, it is to easy to force collisions changing only the characters which are not part of the hash.
2020-10-12DetailsRoberto Ierusalimschy4-14/+45
- After converting a generic GCObject to a specific type ('gco2*'), avoid using the original GCObject (to reduce aliasing). - Small corrections in comments in 'lopcodes.h' - Added tests about who calls __close metamethods
2020-10-12'recover' finish of 'luaD_pcall' should follow the originalRoberto Ierusalimschy2-7/+25