aboutsummaryrefslogtreecommitdiff
path: root/testes/coroutine.lua (unfollow)
Commit message (Collapse)AuthorFilesLines
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