Roberto Ierusalimschy
|
9a5d6aedb7
|
trying to optimize a little 'luaD_poscall'
|
2015-11-13 11:24:26 -02:00 |
Roberto Ierusalimschy
|
e61ee8a036
|
in 'luaD_call', use two functions instead of one with fixed boolean
argument + stack error handling in 'luaD_call' moved to a separated
function
|
2015-11-02 16:48:49 -02:00 |
Roberto Ierusalimschy
|
8c1fb91802
|
macro 'incr_top' replaced by function 'luaD_inctop'. (It is not used
in critical time pathes, can save a few bytes without the macro)
|
2015-11-02 14:09:30 -02:00 |
Roberto Ierusalimschy
|
c5363a1b58
|
in 'luaD_precall', in vararg functions, complete missing parameters
only after moving them to final place (avoids checking the stack
again)
|
2015-11-02 12:06:01 -02:00 |
Roberto Ierusalimschy
|
ffd0d1232d
|
using more "conventional" loops in 'luaD_poscall' (probably a little
more efficient?)
|
2015-11-02 09:48:59 -02:00 |
Roberto Ierusalimschy
|
6707ce6349
|
function prepares vararg only if it really uses them (chunks
are always declared vararg but seldom uses them)
|
2015-10-28 15:28:40 -02:00 |
Roberto Ierusalimschy
|
ae515a346c
|
comments for luaD_precall/luaD_poscall
|
2015-10-28 10:25:36 -02:00 |
Roberto Ierusalimschy
|
3cdf1d676b
|
details (avoid 'case' inside block + avoid using one variable for
two roles)
|
2015-10-28 10:06:45 -02:00 |
Roberto Ierusalimschy
|
5bdee4f810
|
small changes to allow 'precall' to spend time preserving 'func'
only when needed (that is, when stack actually changes)
|
2015-10-21 16:40:47 -02:00 |
Roberto Ierusalimschy
|
41964648ee
|
long strings are created directly in final position when possible
(instead of using an auxiliar buffer to first create the string
and then allocate the final string and copy result there)
|
2015-09-08 12:41:05 -03:00 |
Roberto Ierusalimschy
|
dcad08b76d
|
details (use original type when saving variable's value)
|
2015-06-18 11:19:52 -03:00 |
Roberto Ierusalimschy
|
d39bb51faa
|
bug: interpreter cannot pop activation frame before calling return
hook (as it may want to access local variables active by the end
of the function)
|
2015-05-22 14:48:19 -03:00 |
Roberto Ierusalimschy
|
484bf14a6b
|
calls to 'luaC_checkGC' in luaD_precall moved near to 'luaD_checkstack'
(which is what can need memory)
|
2015-03-30 13:05:23 -03:00 |
Roberto Ierusalimschy
|
a30c66f0fc
|
macro 'luai_apicheck'/'api_check' back with a 'lua_State' parameter
(some people use it)
|
2015-03-06 16:49:50 -03:00 |
Roberto Ierusalimschy
|
9a38c08011
|
no need to ensure any stack space for panic function + some changes
in 'tryfuncTM' (small simplification)
|
2014-11-11 15:13:39 -02:00 |
Roberto Ierusalimschy
|
bfa0898312
|
bug: memory error in panic mode does not push error message on
the stack + stack check in tryfuncTM + comments
|
2014-11-10 15:42:04 -02:00 |
Roberto Ierusalimschy
|
e75c0148c3
|
comments (references to "ANSI C" changed to "ISO C", which is the
international name
|
2014-11-02 17:33:33 -02:00 |
Roberto Ierusalimschy
|
28fdbcf393
|
added include for 'lprefix.h', for stuff that must be added before
any other header file
|
2014-11-02 17:19:04 -02:00 |
Roberto Ierusalimschy
|
bdf566a8a3
|
`name' in comments changed to 'name'
|
2014-10-25 09:50:46 -02:00 |
Roberto Ierusalimschy
|
f97c64d7bf
|
macros 'LUA_QL'/'LUA_QL' deprecated
|
2014-10-17 13:28:21 -03:00 |
Roberto Ierusalimschy
|
85fc9ecd5f
|
detail ('G(L)' -> 'g')
|
2014-10-08 09:20:26 -03:00 |
Roberto Ierusalimschy
|
2a21f6c894
|
'lua_Kcontext' -> 'lua_KContext'
|
2014-10-07 15:29:13 -03:00 |
Roberto Ierusalimschy
|
2be88d5084
|
'lua_Ctx' -> 'lua_Kcontext'
|
2014-08-01 14:33:08 -03:00 |
Roberto Ierusalimschy
|
1aa4f69b51
|
new type 'lua_Ctx' for continuation-function contexts (to allow type
to be configurable)
|
2014-07-17 10:53:37 -03:00 |
Roberto Ierusalimschy
|
5bbb4a06a6
|
removed unused parameter Ä'L' in macro 'api_check' and company
|
2014-07-15 18:26:50 -03:00 |
Roberto Ierusalimschy
|
b9dcf9974d
|
detail (typos in comments)
|
2014-06-30 16:48:08 -03:00 |
Roberto Ierusalimschy
|
89b56e7d84
|
more precision between closure types ('LClosure' x 'CClosure')
|
2014-06-19 15:27:20 -03:00 |
Roberto Ierusalimschy
|
fa3113ffbf
|
cleaner way to handle bit CIST_OAH (with auxiliar macros)
|
2014-06-12 16:07:30 -03:00 |
Roberto Ierusalimschy
|
d94bb6c273
|
janitor work on 'lua_resume' and related code
|
2014-06-11 13:01:55 -03:00 |
Roberto Ierusalimschy
|
88a9e51f34
|
bit-field CIST_YIELDED removed (it was never consulted)
|
2014-06-10 16:18:50 -03:00 |
Roberto Ierusalimschy
|
542b6cfc02
|
no need for field 'status' in structure 'CallInfo' (after removal
of 'lua_getctx') + field 'old_allowhook' can be packed into a single
bit
|
2014-06-10 15:51:21 -03:00 |
Roberto Ierusalimschy
|
6f6fd96e3b
|
new type lua_KFunction + no more 'lua_getctx'
|
2014-06-10 14:41:38 -03:00 |
Roberto Ierusalimschy
|
35a6aad0d7
|
added comments
|
2014-06-09 13:32:18 -03:00 |
Roberto Ierusalimschy
|
1bd70a8e40
|
new function 'lua_isyieldable' (and 'coroutine.isyieldable')
|
2014-05-08 10:52:20 -03:00 |
Roberto Ierusalimschy
|
da4811238a
|
details (typos in comments)
|
2014-03-21 10:52:33 -03:00 |
Roberto Ierusalimschy
|
c6c41e85b2
|
more uniformity for defining system-dependent features
|
2014-02-26 12:27:56 -03:00 |
Roberto Ierusalimschy
|
ffa96d988d
|
field 'op' renamed to 'open'
|
2014-02-15 11:12:01 -02:00 |
Roberto Ierusalimschy
|
7a8eb83b4a
|
bug: attempting to resume the running coroutine makes it unyieldable
|
2013-11-08 16:16:33 -02:00 |
Roberto Ierusalimschy
|
4c6dfc342b
|
CallInfo lists shrinks together with their associated stacks
|
2013-09-17 12:40:06 -03:00 |
Roberto Ierusalimschy
|
af35c7f398
|
upvalues collected by reference count
|
2013-08-27 15:53:35 -03:00 |
Roberto Ierusalimschy
|
fa3b126a23
|
BUG: stack overflow in vararg functions with many fixed
parameters called with few arguments
|
2013-04-19 18:05:04 -03:00 |
Roberto Ierusalimschy
|
b157f3546e
|
BUG: 'pcall' may not restore previous error function when
inside coroutines
|
2012-10-01 11:05:04 -03:00 |
Roberto Ierusalimschy
|
2dc91ca5ee
|
checks garbage collector every time it calls a function (as the
stack can grow and so allocates more memory)
|
2012-08-28 15:30:45 -03:00 |
Roberto Ierusalimschy
|
b926472312
|
change in error message
|
2012-06-29 16:23:33 -03:00 |
Roberto Ierusalimschy
|
cc2a60ecb7
|
bugs in yields inside debug hooks
|
2012-06-08 12:14:04 -03:00 |
Roberto Ierusalimschy
|
3cadc37f47
|
no more 'Proto' objects on the stack. Protos are anchored on outer
Protos or on a Closure, which must be created before the Proto.
|
2012-05-08 10:53:33 -03:00 |
Roberto Ierusalimschy
|
a94ce68e0a
|
bug: wrong handling of 'nCcalls' in coroutines
|
2012-04-26 17:41:18 -03:00 |
Roberto Ierusalimschy
|
3617e04e97
|
'lua_load' has an extra argument 'mode'
|
2011-11-29 13:55:08 -02:00 |
Roberto Ierusalimschy
|
217e67cb22
|
new type 'l_noret' for function that do not return
|
2011-10-07 17:45:19 -03:00 |
Roberto Ierusalimschy
|
ec431ce5db
|
comment
|
2011-09-12 17:33:03 -03:00 |
Roberto Ierusalimschy
|
3dc5475e23
|
'nCcalls' should be local to each thread, as each thread may have its
own C stack (with LuaThreads or something similar)
|
2011-08-23 14:24:34 -03:00 |
Roberto Ierusalimschy
|
f180822fa6
|
back to internal table for 'ctype', no more locale manipulation
|
2011-06-28 12:42:04 -03:00 |
Roberto Ierusalimschy
|
136f8e148d
|
added cast to void to calls to 'setlocale' (to easy redefining it as
a constant)
|
2011-06-20 13:36:03 -03:00 |
Roberto Ierusalimschy
|
cb4950a6d8
|
parser must work with C locale, but external locale must be preserved
|
2011-06-18 14:08:58 -03:00 |
Roberto Ierusalimschy
|
3b44821334
|
stricter control (using tag variants) over closure kinds (Lua x C)
|
2011-06-02 16:31:40 -03:00 |
Roberto Ierusalimschy
|
3f04a9f2c0
|
code is simpler without 'goto' here
|
2011-05-30 13:36:38 -03:00 |
Roberto Ierusalimschy
|
7482e8f914
|
no need of lookahead in Zio
|
2011-02-23 10:13:10 -03:00 |
Roberto Ierusalimschy
|
f079749287
|
some reorganization of dynamic data structures used by the parser
|
2011-02-07 15:14:50 -02:00 |
Roberto Ierusalimschy
|
7cc0e63d8a
|
first implementation of 'goto'
|
2011-02-04 15:34:43 -02:00 |
Roberto Ierusalimschy
|
4590a89b32
|
corrected warnings from different compilers (mostly casts and small
details)
|
2010-10-25 17:01:37 -02:00 |
Roberto Ierusalimschy
|
ffff9a49da
|
'nresults' in CallInfo now refers to number of results that the current
function returns (and not what it expects from a call)
|
2010-09-30 14:21:31 -03:00 |
Roberto Ierusalimschy
|
545f43065f
|
'luaF_newLclosure' gets prototype of new closure as argument
|
2010-06-04 10:06:15 -03:00 |
Roberto Ierusalimschy
|
237f755dca
|
typos in comments
|
2010-05-05 15:49:56 -03:00 |
Roberto Ierusalimschy
|
53f9499f7f
|
"light C function" is a better name than "C-function pointer"
|
2010-04-18 10:22:48 -03:00 |
Roberto Ierusalimschy
|
e7ffb1b501
|
macro LUA_USE_LONGJMP allows choosing longjmp when compiling Lua as
C++ code
|
2010-04-18 09:41:35 -03:00 |
Roberto Ierusalimschy
|
7dfa4cd655
|
first implementation of light C functions
|
2010-04-14 12:13:48 -03:00 |
Roberto Ierusalimschy
|
055104f5b6
|
keep memory-error message in the global state, so that its use
does not depend on Lua internalizing strings to avoid a string
creation on memory errors
|
2010-04-08 14:16:46 -03:00 |
Roberto Ierusalimschy
|
064e406f67
|
no more fenvs!
|
2010-03-26 17:58:11 -03:00 |
Roberto Ierusalimschy
|
4c54cd3a10
|
when yielding, original 'func' value must be kept and restored so
that 'poscall' puts results in the right slot.
|
2010-02-09 09:56:29 -02:00 |
Roberto Ierusalimschy
|
0c7de97d47
|
correct error message when yielding from outside a coroutine
|
2010-01-13 14:17:32 -02:00 |
Roberto Ierusalimschy
|
f84b575cfa
|
no more pseudoindex LUA_GLOBALSINDEX; global table now accessible
through registry
|
2009-12-22 13:32:50 -02:00 |
Roberto Ierusalimschy
|
e0f9d1c8f5
|
removed export of function only for coco
|
2009-12-17 10:28:57 -02:00 |
Roberto Ierusalimschy
|
de6fc75d63
|
several configuration options that do not change often moved out of
luaconf.h and into more internal files
|
2009-12-17 10:26:09 -02:00 |
Roberto Ierusalimschy
|
2bb19ccf08
|
reordering of some functions + cleaner way to code lua_resume/resume +
small bug in lua_resume (in case of calling errors lua_resume should
remove only new arguments from the stack and push error message).
|
2009-12-10 16:20:07 -02:00 |
Roberto Ierusalimschy
|
2643da67c6
|
error messages from 'lua_resume' must be generated in protected mode,
to avoid raising memory errors
|
2009-12-08 16:59:24 -02:00 |
Roberto Ierusalimschy
|
3e41afcec5
|
extra api checks for number of returns of C functions and for lua_yield
|
2009-11-27 13:37:59 -02:00 |
Roberto Ierusalimschy
|
b0f2b288a6
|
new scheme for debug info about tail calls: no more 'fake' stack entries,
but stack entry knows whether it was tail called
|
2009-11-25 13:27:51 -02:00 |
Roberto Ierusalimschy
|
2d5931ebc8
|
ensure that reader function cannot yield during parsing
|
2009-11-17 14:46:44 -02:00 |
Roberto Ierusalimschy
|
35fa276099
|
parser/scanner keep GC running
|
2009-11-17 14:33:38 -02:00 |
Roberto Ierusalimschy
|
5bc91c6405
|
no more one environment per thread: all threads share a single global
environment
|
2009-10-23 17:12:19 -02:00 |
Roberto Ierusalimschy
|
916587508c
|
parser keeps list of active local variables in a single dynamic array,
therefore saving C stack space
|
2009-10-11 17:02:19 -03:00 |
Roberto Ierusalimschy
|
5938212748
|
information about upvalues (where they come from) kept in Proto structure,
instead of sequence of pseudo-opcodes after OP_CLOSURE
|
2009-09-28 13:32:50 -03:00 |
Roberto Ierusalimschy
|
0e45ffb8e4
|
first implementation of 'lua_yieldk' (yield with continuation)
|
2009-09-14 11:30:39 -03:00 |
Roberto Ierusalimschy
|
f76f4cb79d
|
new way to control stack overflow, controling only total size of the stack
|
2009-07-15 14:26:14 -03:00 |
Roberto Ierusalimschy
|
9423e22aa3
|
no more L->base + ci->base only for Lua functions (C functions may use
'func')
|
2009-06-01 16:09:26 -03:00 |
Roberto Ierusalimschy
|
019ebcb85f
|
errors in finalizers are propagated with code LUA_ERRGCMM (ERRor in
__gc MetaMethod)
|
2009-05-21 17:06:11 -03:00 |
Roberto Ierusalimschy
|
e091a254df
|
new way to GC stacks: the entire stack must be correct all the times;
the 'dead' part of a stack (after the top) must have only nil's, so
that 'top' may go up without cleaning the stack.
|
2009-04-28 16:04:36 -03:00 |
Roberto Ierusalimschy
|
e5249b9fb5
|
'exit' changed to 'abort' in case of panic (+ some extra comments)
'abort' seems more in line with panic ("abnormal termination")
|
2009-04-26 18:55:35 -03:00 |
Roberto Ierusalimschy
|
d3037d97ec
|
several small improvements based on 'ci' being fixed now (including
erasing savedpc from lua_State)
|
2009-04-17 19:00:01 -03:00 |
Roberto Ierusalimschy
|
4f88418170
|
'CallInfo' stack implemented as double-linked list instead of an array
|
2009-04-17 11:28:06 -03:00 |
Roberto Ierusalimschy
|
311e9f3ceb
|
'nresults' is saved in CallInfo from the caller, not the called
|
2009-04-15 13:53:39 -03:00 |
Roberto Ierusalimschy
|
70a63fa5ad
|
first implementation of yieldable 'pcall'
|
2009-04-08 15:04:33 -03:00 |
Roberto Ierusalimschy
|
3dbf305408
|
no more support for old-style varargs
|
2009-03-26 09:57:01 -03:00 |
Roberto Ierusalimschy
|
6d0ae11c57
|
'context' added to suspendable calls
|
2009-03-23 11:26:12 -03:00 |
Roberto Ierusalimschy
|
ba484b9eb1
|
yielding across lua_call (first version)
|
2009-03-10 14:14:37 -03:00 |
Roberto Ierusalimschy
|
1817dfc301
|
initial separation, in CallInfo, of what is relevant only to Lua
functions or only to C functions
|
2009-03-04 10:32:29 -03:00 |
Roberto Ierusalimschy
|
910310d3ba
|
if thread has no error handling, try main thread handler before panicking
|
2009-03-03 15:51:24 -03:00 |
Roberto Ierusalimschy
|
2b579b4b83
|
panic mode does not reset stack (so that panic function can gather
debug information from it)
|
2009-02-18 11:52:03 -03:00 |
Roberto Ierusalimschy
|
b472098493
|
concat TM can yield
|
2008-11-06 10:43:51 -02:00 |
Roberto Ierusalimschy
|
84b3daebbd
|
generic for coded as two dedicated instructions to simplify resumption
|
2008-10-30 13:39:30 -02:00 |