aboutsummaryrefslogtreecommitdiff
path: root/ltm.h (unfollow)
Commit message (Collapse)AuthorFilesLines
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
2020-10-12No more field 'lua_State.stacksize'Roberto Ierusalimschy6-26/+29
The stack size is derived from 'stack_last', when needed. Moreover, the handling of stack sizes is more consistent, always excluding the extra space except when allocating/deallocating the array.
2020-10-12Avoid shrinking stacks to oftenRoberto Ierusalimschy2-17/+87
Shrink a stack only when the final stack size can be at most 2/3 the previous size with half of its entries empty. This commit also improves the clarity of 'luaD_growstack'.
2020-10-12No need for 'volatile' in string.pack/unpackRoberto Ierusalimschy1-10/+7
Type punning an address to 'char *' should be always safe.
2020-10-12Avoid GCs when testing stack overflowRoberto Ierusalimschy1-6/+14
A GC step may invoke some finalizer, which may error and emit a warning due to stack overflfow.
2020-10-12Correct handling of 'luaV_execute' invocationsRoberto Ierusalimschy5-32/+37
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.)
2020-10-12Revision of stackless implementationRoberto Ierusalimschy12-283/+127
- more organized handling of 'nCcalls' - comments - deprecation of 'setcstacklimit'
2020-10-12Back to a stackless implementationRoberto Ierusalimschy11-95/+72
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.
2020-09-30Wrong cast in 'str_unpack'Roberto Ierusalimschy1-1/+1