55dc7fb240
bug: stack must be cleared until its end (including extra size) + control of stack size moved to 'ldo.c'
Roberto Ierusalimschy
2009-07-16 13:26:09 -03:00
11d7ba79f2
tail calls do not need to move whole new frame down, only its slice up to last parameter (the rest has not been used yet)
Roberto Ierusalimschy
2009-07-15 15:38:16 -03:00
bd5fa9cc8f
new macro 'getproto'
Roberto Ierusalimschy
2009-07-15 15:37:19 -03:00
a5f68589c0
avoid using 'UNUSED' (not defined outside the kernel)
Roberto Ierusalimschy
2009-07-15 14:49:48 -03:00
28419c4383
'luaL_tolstring' uses 'lua_tolstring' instead of 'lua_tostring' and 'lua_objlen'
Roberto Ierusalimschy
2009-07-15 14:47:34 -03:00
5bff2aaf47
calls with LUA_MULTRET may leave no free slots in the stack
Roberto Ierusalimschy
2009-07-15 14:35:20 -03:00
f76f4cb79d
new way to control stack overflow, controling only total size of the stack
Roberto Ierusalimschy
2009-07-15 14:26:14 -03:00
abb85fc059
new definition for 'luaD_checkstack' to avoid possible overflows
Roberto Ierusalimschy
2009-07-08 13:06:51 -03:00
aabe3ddbf4
errors in 'resume' should be all protected
Roberto Ierusalimschy
2009-07-08 13:06:07 -03:00
0c258c8492
smart use of varargs may create functions that return too many arguments and overflow the stack of C functions.
Roberto Ierusalimschy
2009-07-02 16:57:34 -03:00
d57c9cdefc
BUG: 'luaV_settable' may invalidate a reference to a table and try to reuse it.
Roberto Ierusalimschy
2009-07-01 18:10:33 -03:00
afb3f7e754
bug: 'luaV_settable' may invalidate a reference to a table and try to reuse it.
Roberto Ierusalimschy
2009-07-01 17:31:25 -03:00
88564c3aec
Standard library for bitwise operations
Roberto Ierusalimschy
2009-07-01 13:17:08 -03:00
3abe3da9fb
new module 'lbitlib.c' for bitwise operations
Roberto Ierusalimschy
2009-07-01 13:16:40 -03:00
eb8499c8e0
use of LUAI_UINT32 replaced by 'unsigned LUA_INT32' (one less definition needed)
Roberto Ierusalimschy
2009-07-01 13:14:15 -03:00
02504d86d3
l_version may be local to 'lua_version'
Roberto Ierusalimschy
2009-06-19 11:21:23 -03:00
4a818f068a
'checkversion' implemented in the auxiliary library
Roberto Ierusalimschy
2009-06-18 15:59:58 -03:00
1d6ebce296
new function 'lua_version' (so that 'checkversion' can be implemented in the auxiliary library)
Roberto Ierusalimschy
2009-06-18 15:59:18 -03:00
bc3e02a1b7
default paths have dot option as the last one (to improve security)
Roberto Ierusalimschy
2009-06-18 15:19:36 -03:00
f4eed60ca9
better treatment of integer formats in string.format
Roberto Ierusalimschy
2009-06-18 13:51:03 -03:00
c1de1fdac6
small optimization in 'lua_arith' (avoids overhead in the common case of both arguments being numbers)
Roberto Ierusalimschy
2009-06-18 13:36:40 -03:00
a36c8e1718
new macro 'changenvalue'
Roberto Ierusalimschy
2009-06-18 13:36:40 -03:00
d7872dcf91
small optimization (reorder of BinOpr enum to unify some cases in switches)
Roberto Ierusalimschy
2009-06-18 13:35:05 -03:00
14115170bc
lua_objlen should not work for numbers (according to the manual)
Roberto Ierusalimschy
2009-06-17 15:38:54 -03:00
ec52149485
'lua_lessthan' replaced by more generic 'lua_compare'
Roberto Ierusalimschy
2009-06-17 14:53:50 -03:00
6980cb1aa7
new functions 'lua_arith' and 'lua_compare'
Roberto Ierusalimschy
2009-06-17 14:53:14 -03:00
59a59fafc6
exports luaV_arith to be used by lua_arith
Roberto Ierusalimschy
2009-06-17 14:51:07 -03:00
2bdd194f43
exports luaV_arith to be used by lua_arith + uses 'luaO_arith' to perform basic arith. operations
Roberto Ierusalimschy
2009-06-17 14:50:09 -03:00
6a024df440
new function 'luaO_arith' to perform basic arithmetic operations
Roberto Ierusalimschy
2009-06-17 14:48:34 -03:00
77fd93188e
'lessequal' renamed 'luaV_lessequal' and exported to be used by 'lua_compare'
Roberto Ierusalimschy
2009-06-17 13:17:14 -03:00
a21c89ddc8
new API function 'lua_mainthread'
Roberto Ierusalimschy
2009-06-15 16:51:31 -03:00
49b88b1c39
patch for wrong code generation for some particular boolean expressions
Roberto Ierusalimschy
2009-06-15 11:12:59 -03:00
3db5f60547
BUG: "(((1 or false) and true) or false)" gives wrong result
Roberto Ierusalimschy
2009-06-15 10:52:08 -03:00
2258ec6bc9
'getline' renamed to 'getfuncline' (to avoid problems with POSIX)
Roberto Ierusalimschy
2009-06-10 13:57:53 -03:00
2598138ece
new function 'luaK_codek' (detail)
Roberto Ierusalimschy
2009-06-10 13:52:03 -03:00
4a67e48611
new macro 'condmovestack' instead of 'condhardstacktests'
Roberto Ierusalimschy
2009-06-08 16:35:59 -03:00
5cdec7d124
added "\n" at the end of 'package.config' (so that the string is a sequence of complete lines)
Roberto Ierusalimschy
2009-06-04 16:34:24 -03:00
9423e22aa3
no more L->base + ci->base only for Lua functions (C functions may use 'func')
Roberto Ierusalimschy
2009-06-01 16:09:26 -03:00
57f8414de1
small bug in 'luaV_concat' (L->top was left incorrect in some cases)
Roberto Ierusalimschy
2009-05-27 14:11:27 -03:00
139d562861
type of 'luai_ctype_' array changed to unsigned (safer for bitwise operations)
Roberto Ierusalimschy
2009-05-27 13:51:15 -03:00
eea6d10866
details (use ci->base instead of L->base when possible)
Roberto Ierusalimschy
2009-05-22 12:19:54 -03:00
019ebcb85f
errors in finalizers are propagated with code LUA_ERRGCMM (ERRor in __gc MetaMethod)
Roberto Ierusalimschy
2009-05-21 17:06:11 -03:00
889284ebd0
hexadecimal escape sequences in strings + better error messages for bad decimal escape sequences
Roberto Ierusalimschy
2009-05-18 14:28:04 -03:00
6956331093
new macro 'zungetc'
Roberto Ierusalimschy
2009-05-18 14:26:25 -03:00
92479f1a8b
new property 'lisupper' (needed to compute values for hexa digits)
Roberto Ierusalimschy
2009-05-18 14:15:14 -03:00
e67dc3a227
'symbexec' merged with 'getobjname' (as only use for symbolic execution now is to find a "good" name for an object)
Roberto Ierusalimschy
2009-05-04 15:26:21 -03:00
d7bc346d7a
no more code checking
Roberto Ierusalimschy
2009-04-30 14:42:21 -03:00
673c456cba
resize string hash table only when new size is smaller than current one
Roberto Ierusalimschy
2009-04-29 14:09:41 -03:00
ea44570883
hash table for strings is rehashed in place
Roberto Ierusalimschy
2009-04-29 14:09:41 -03:00
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.
Roberto Ierusalimschy
2009-04-28 16:04:36 -03:00
58c3aa8b5f
malicious zero-length string in binary code may segfault Lua + wrong code generation for some particular boolean expressions
Roberto Ierusalimschy
2009-04-27 17:11:11 -03:00
e5249b9fb5
'exit' changed to 'abort' in case of panic (+ some extra comments) 'abort' seems more in line with panic ("abnormal termination")
Roberto Ierusalimschy
2009-04-26 18:55:35 -03:00
d3037d97ec
several small improvements based on 'ci' being fixed now (including erasing savedpc from lua_State)
Roberto Ierusalimschy
2009-04-17 19:00:01 -03:00
c6b442bd36
'luaM_freearray' does not need array type as argument
Roberto Ierusalimschy
2009-04-17 11:40:13 -03:00
4f88418170
'CallInfo' stack implemented as double-linked list instead of an array
Roberto Ierusalimschy
2009-04-17 11:28:06 -03:00
311e9f3ceb
'nresults' is saved in CallInfo from the caller, not the called
Roberto Ierusalimschy
2009-04-15 13:53:39 -03:00
8775f25830
new function 'T.makeCfunc' (for later use)
Roberto Ierusalimschy
2009-04-14 16:10:17 -03:00
70a63fa5ad
first implementation of yieldable 'pcall'
Roberto Ierusalimschy
2009-04-08 15:04:33 -03:00
f9d015523e
better notes about some opcodes (comments only)
Roberto Ierusalimschy
2009-03-09 12:27:56 -03:00
1817dfc301
initial separation, in CallInfo, of what is relevant only to Lua functions or only to C functions
Roberto Ierusalimschy
2009-03-04 10:32:29 -03:00
7837e34e56
new states have a reasonable panic function + testC may run code on different threads + rename of some testC operations ('rawcall'->'call', 'call'->'pcall')
Roberto Ierusalimschy
2009-03-03 15:52:36 -03:00
910310d3ba
if thread has no error handling, try main thread handler before panicking
Roberto Ierusalimschy
2009-03-03 15:51:24 -03:00
b403317325
error functions search global space for a name for a function when no other name is available
Roberto Ierusalimschy
2009-02-27 15:18:19 -03:00
9bf05e7364
code section 'Traceback' moved to the beginning of the file
Roberto Ierusalimschy
2009-02-27 15:17:13 -03:00
e39e758a73
closing a "popen" file returns the process exit status
Roberto Ierusalimschy
2009-02-20 10:50:27 -03:00
5438d77221
global array of ctypes renamed to 'luai_ctype_' (extern names must use a "lua" prefix...)
Roberto Ierusalimschy
2009-02-20 10:11:15 -03:00
6905ae900b
Lua now uses "homemade" lctype (instead of ctype.h from ANSI C)
Roberto Ierusalimschy
2009-02-19 14:33:51 -03:00
ada82930fd
"homemade" version of ctype.h
Roberto Ierusalimschy
2009-02-19 14:18:25 -03:00
f36e319658
'fputs' changed to 'luai_writestring' + use of 'lua_checkversion'
Roberto Ierusalimschy
2009-02-19 14:15:35 -03:00
d2ebdc045b
new macro 'lua_checkversion' to check whether core and application are compatible
Roberto Ierusalimschy
2009-02-18 14:20:56 -03:00
81ede6bfce
using light userdata to represent "remote" states
Roberto Ierusalimschy
2009-02-18 11:52:51 -03:00
2b579b4b83
panic mode does not reset stack (so that panic function can gather debug information from it)
Roberto Ierusalimschy
2009-02-18 11:52:03 -03:00
a1d0e1a11a
'log10' is deprecated now
Roberto Ierusalimschy
2009-02-18 10:17:10 -03:00