7fe1a4cff3
cleaner and more correct code for 'luaD_shrinkstack' (the old test "inuse <= LUAI_MAXSTACK" for stack overflow is not correct, as the real maximum usable size is "LUAI_MAXSTACK - EXTRA_STACK")
Roberto Ierusalimschy2016-09-08 13:36:26 -03:00
dbb6f11e8e
bug (with compat on): 'ipairs' can work with any type that provides an __index; so, 'pairsmeta' should not check for tables. ('pairs' already checks for tables through 'next'.)
Roberto Ierusalimschy2016-09-05 16:06:34 -03:00
e4a9e6fcca
do not eliminate varargs from functions that do not use varargs (confuses the debug lib and gains very little in performance)
Roberto Ierusalimschy2016-08-01 16:51:24 -03:00
9de2bb0d62
bug: When a coroutine tries to resume a non-suspended coroutine, it coud do some mess (and break C assertions) before detecting the error. Now it tests for those errors before anything else.
Roberto Ierusalimschy2016-07-29 14:12:44 -03:00
d55fd3455b
redefine MAXINDEXRK (for debugging, to force most values to go through registers)
Roberto Ierusalimschy2016-07-19 14:13:00 -03:00
0d1c6f4188
MAXINDEXRK can be redefined (for debugging, to force most values to go through registers)
Roberto Ierusalimschy2016-07-19 14:12:21 -03:00
fc6b32bcaa
bug: Lua can generate wrong code in functions with too many constants
Roberto Ierusalimschy2016-07-19 14:12:07 -03:00
de96e26afc
bug: 'checkoption' could read past end of string + 'os.date' can handle embedded zeros
Roberto Ierusalimschy2016-07-18 14:58:58 -03:00
de3fd8ab83
Handling of LUA_PATH/LUA_CPATH moved from package library to stand alone interpreter (so that 'lua.c' concentrates all handling of environment variables)
Roberto Ierusalimschy2016-07-18 14:55:59 -03:00
788109a3de
new bug: Checking a format for 'os.date' may read pass the format string
Roberto Ierusalimschy2016-07-15 14:24:09 -03:00
dcb2998aa6
bug: expression list with four or more expressions in a 'for' loop can crash the interpreter. ('adjust_assign' must remove extra expresssions from its registers.)
Roberto Ierusalimschy2016-06-22 12:48:25 -03:00
fac00ca023
bug: expression list with four or more expressions in a 'for' loop can crash the interpreter.
Roberto Ierusalimschy2016-06-21 14:22:34 -03:00
707b0ba6e2
'string.format("%q")' writes 'math.mininteger' in hexa, to ensure it is read back as an integer
Roberto Ierusalimschy2016-05-20 11:13:21 -03:00
10b0b09555
do not convert decimal constants with overflow to integers. (Therefore, they will be converted as floats)
Roberto Ierusalimschy2016-05-20 11:07:48 -03:00
f3b52a6061
'io.read("n")' accepts both a dot and the locale point as its radix character + 'MAXRN' -> 'L_MAXLENNUM' + small detail in 'test2'
Roberto Ierusalimschy2016-05-02 11:03:19 -03:00
0232fbffbe
now that 'luaO_str2num' always accepts a dot as a radix character, the lexer does not need to bother with this issue.
Roberto Ierusalimschy2016-05-02 11:02:12 -03:00
ed110f66c5
'luaO_str2num' (and, therefore, 'lua_stringtonumber', 'number', and coercions) accepts both the locale point and a dot as its radix character
Roberto Ierusalimschy2016-05-02 11:00:32 -03:00
e8e39a277f
'string.format"%q"' now works for all basic types (nil, boolean, numbers, and strings)
Roberto Ierusalimschy2016-04-08 18:15:02 -03:00
fff7d42a69
LUA_PACKPADBYTE -> LUAL_PACKPADBYTE (it is an internal library name, not something to be usually configured)
Roberto Ierusalimschy2016-04-07 12:40:07 -03:00
783aa8a9da
new way to avoid infinite loops in empty matches: "Python rule" ("Empty matches for the pattern are replaced only when not adjacent to a previous match")
Roberto Ierusalimschy2016-03-31 16:07:42 -03:00
8d4feb504f
do not try to ensure that 'sweepgc' points to a live object when entering sweep phase ('entersweep'); that may be too expensive to be done still inside the atomic step. Walking one single object more often than not will work.
Roberto Ierusalimschy2016-03-31 16:02:03 -03:00
acff3ad88d
bug: 'gmatch' iterator fails when called from a coroutine different from the one that created it
Roberto Ierusalimschy2016-03-23 14:12:17 -03:00
e7b2e01d43
bug: label between local definitions can mix-up their initializations
Roberto Ierusalimschy2016-03-07 16:25:39 -03:00
03ca6385dc
call 'checkGC' *after* creating new objects (this is how 'execute' does it) (It increases the changes that 'allgc' start with a non-white object, which helps 'entersweep')
Roberto Ierusalimschy2016-02-29 11:27:14 -03:00
7d6b78ee79
in 'table.move', destination table can be source table even if given as an explicit extra argument
Roberto Ierusalimschy2016-02-25 16:41:54 -03:00
494e9ba0f4
simpler code for 'checkoption' + added conversion specifiers specific to Windows
Roberto Ierusalimschy2016-02-08 12:42:46 -02:00
f79b4568ae
details (removed silly use of 'luaL_opt' + better error messages in cases of "table expected")
Roberto Ierusalimschy2016-02-08 10:55:19 -02:00
fd51651684
new macro 'vmfetch' to help changing code to computed goto's (macro abstracts the code to run before each instruction)
Roberto Ierusalimschy2016-02-05 17:59:14 -02:00
62f6652d53
no more extra space in 'luaL_checkstack'. (It was already useless for the first call, and function works ok without that space anyway (just error message misses the 'msg' component)
Roberto Ierusalimschy2016-01-08 13:33:09 -02:00
1a44e82200
'luaV_fastget' only treats the real fast case (table with a non-nil value at given key, so that it does not need to check metamethods)
Roberto Ierusalimschy2016-01-05 14:07:21 -02:00
a272fa66f0
bug: Metatable may access its own dealocated field when it has a self reference in __newindex + some refactoring
Roberto Ierusalimschy2016-01-04 14:44:50 -02:00
7cd7c2e0a1
Metatable may access its own dealocated field when it has a self reference in __newindex.
Roberto Ierusalimschy2016-01-04 11:35:56 -02:00
07cf8415e3
more comments + reordeing of union inside 'expdesc' to allow static initialization of a VKINT value
Roberto Ierusalimschy2015-12-30 16:16:13 -02:00
bda090b961
comments + small code changes around stack usage when 'luaL_checkstack' raises an error (and needs the stack to create the error message...)
Roberto Ierusalimschy2015-12-14 09:59:27 -02:00
e383941652
in 'table.sort': 'typedef' for type of indices + removed stack check (recursion is in the C stack, not in the Lua stack!)
Roberto Ierusalimschy2015-12-14 09:57:38 -02:00
656b3cea1b
using 'sig_atomic_t' for 'hookmask' (as it can be changed inside a signal)
Roberto Ierusalimschy2015-12-14 09:54:49 -02:00
c25d59a6bd
format "%s" in 'string.format' accepts embedded zeros when it has no modifiers
Roberto Ierusalimschy2015-11-25 14:28:17 -02:00
5936eb16d8
randomness in 'table.sort' used only when needed (big imbalance in partition result) + small refactoring
Roberto Ierusalimschy2015-11-25 10:48:57 -02:00
c231a5e2b6
using unsigned int (instead of int) in 'table.sort' to avoid overflows (when computing the pivot and in original table size)
Roberto Ierusalimschy2015-11-23 09:17:31 -02:00
04587b6256
macro with empty argument can be seen as macro with no argument; better to avoid that
Roberto Ierusalimschy2015-11-12 16:08:58 -02:00
bde03eeb48
in 'table.sort': tighter checks for invalid order function + "random" pivot for larger intervals (to avoid attacks with bad data)
Roberto Ierusalimschy2015-11-12 16:07:25 -02:00
330d426ffd
avoid the use of deprecated functions 'luaL_checkunsigned'/ 'lua_pushunsigned'
Roberto Ierusalimschy2015-11-11 17:08:09 -02:00
02340375be
janitor work on 'table.sort': added comments, partition code moved to a separated function, code conventions updated, etc. No changes at all in the logic/algorithm
Roberto Ierusalimschy2015-11-06 14:07:14 -02:00
ebb2afa54b
allow 'set' macros to be used when 'L' is not available (as it was needed only for assertions)
Roberto Ierusalimschy2015-11-03 16:33:10 -02:00
46de77b219
bug: despite its name, 'luaH_getstr' did not work for strings in general, but only for short strings
Roberto Ierusalimschy2015-11-03 13:47:30 -02:00
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
Roberto Ierusalimschy2015-11-02 16:48:49 -02:00