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 Ierusalimschy
2016-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 Ierusalimschy
2016-09-05 16:06:34 -03:00
349badabc1
wrong test in '#if' for floating-point type
Roberto Ierusalimschy
2016-08-22 14:21:12 -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 Ierusalimschy
2016-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 Ierusalimschy
2016-07-29 14:12:44 -03:00
d55fd3455b
redefine MAXINDEXRK (for debugging, to force most values to go through registers)
Roberto Ierusalimschy
2016-07-19 14:13:00 -03:00
0d1c6f4188
MAXINDEXRK can be redefined (for debugging, to force most values to go through registers)
Roberto Ierusalimschy
2016-07-19 14:12:21 -03:00
fc6b32bcaa
bug: Lua can generate wrong code in functions with too many constants
Roberto Ierusalimschy
2016-07-19 14:12:07 -03:00
de96e26afc
bug: 'checkoption' could read past end of string + 'os.date' can handle embedded zeros
Roberto Ierusalimschy
2016-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 Ierusalimschy
2016-07-18 14:55:59 -03:00
788109a3de
new bug: Checking a format for 'os.date' may read pass the format string
Roberto Ierusalimschy
2016-07-15 14:24:09 -03:00
09c9fa36ea
small corrections for C++ compliance
Roberto Ierusalimschy
2016-06-27 10:15:08 -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 Ierusalimschy
2016-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 Ierusalimschy
2016-06-21 14:22:34 -03:00
6487fb11fc
all 'static' variables should be 'const'
Roberto Ierusalimschy
2016-06-20 16:12:46 -03:00
644799537f
allow more bits in 'callstatus' (use no extra space due to alignments)
Roberto Ierusalimschy
2016-06-16 10:36:09 -03:00
707b0ba6e2
'string.format("%q")' writes 'math.mininteger' in hexa, to ensure it is read back as an integer
Roberto Ierusalimschy
2016-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 Ierusalimschy
2016-05-20 11:07:48 -03:00
4d5ab9baa6
'string.pack("cn")' does not accept strings longer than 'n'
Roberto Ierusalimschy
2016-05-18 15:19:51 -03:00
b65252b39b
'singlevaraux' returns result only in 'var->k'
Roberto Ierusalimschy
2016-05-13 16:10:16 -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 Ierusalimschy
2016-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 Ierusalimschy
2016-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 Ierusalimschy
2016-05-02 11:00:32 -03:00
22093f9c6e
'string.format("%q", number)' ensures a dot as decimal point
Roberto Ierusalimschy
2016-05-02 10:58:01 -03:00
792ffaccf2
detail (macro should "use" all its arguments)
Roberto Ierusalimschy
2016-05-01 17:06:09 -03:00
57cdb60429
no more time limits to pattern matching (at least for now)
Roberto Ierusalimschy
2016-04-22 13:36:30 -03:00
89c09c8e40
match time limit defined by variable 'string.pattlimit'
Roberto Ierusalimschy
2016-04-19 09:34:08 -03:00
fdd7209688
error handling in 'wrap' does not coerce numbers into string messages
Roberto Ierusalimschy
2016-04-11 16:19:55 -03:00
82a8e06524
details ('error' does not coerce numbers to strings + comments)
Roberto Ierusalimschy
2016-04-11 16:18:40 -03:00
c258870c59
diff for last bug was against wrong version
Roberto Ierusalimschy
2016-04-11 12:34:21 -03:00
e8e39a277f
'string.format"%q"' now works for all basic types (nil, boolean, numbers, and strings)
Roberto Ierusalimschy
2016-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 Ierusalimschy
2016-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 Ierusalimschy
2016-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 Ierusalimschy
2016-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 Ierusalimschy
2016-03-23 14:12:17 -03:00
e7b2e01d43
bug: label between local definitions can mix-up their initializations
Roberto Ierusalimschy
2016-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 Ierusalimschy
2016-02-29 11:27:14 -03:00
7777b412de
When available, use metafield '__name' in error messages
Roberto Ierusalimschy
2016-02-26 16:20:15 -03:00
c3e9b14d24
'\0' is a control character, no need to check it explicitly
Roberto Ierusalimschy
2016-02-25 16:42:55 -03:00
7d6b78ee79
in 'table.move', destination table can be source table even if given as an explicit extra argument
Roberto Ierusalimschy
2016-02-25 16:41:54 -03:00
494e9ba0f4
simpler code for 'checkoption' + added conversion specifiers specific to Windows
Roberto Ierusalimschy
2016-02-08 12:42:46 -02:00
f79b4568ae
details (removed silly use of 'luaL_opt' + better error messages in cases of "table expected")
Roberto Ierusalimschy
2016-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 Ierusalimschy
2016-02-05 17:59:14 -02:00
994374c4df
new release number + new year
Roberto Ierusalimschy
2016-01-13 15:55:19 -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 Ierusalimschy
2016-01-08 13:33:09 -02:00
9945253d57
details (comments + text of error messages)
Roberto Ierusalimschy
2016-01-06 11:43:05 -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 Ierusalimschy
2016-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 Ierusalimschy
2016-01-04 14:44:50 -02:00
b12b635a90
more refactoring
Roberto Ierusalimschy
2016-01-04 11:40:57 -02:00
7cd7c2e0a1
Metatable may access its own dealocated field when it has a self reference in __newindex.
Roberto Ierusalimschy
2016-01-04 11:35:56 -02:00
07cf8415e3
more comments + reordeing of union inside 'expdesc' to allow static initialization of a VKINT value
Roberto Ierusalimschy
2015-12-30 16:16:13 -02:00
c4e01c568a
make 'hook' volatile (as it may be changed in signal handling)
Roberto Ierusalimschy
2015-12-16 14:39:38 -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 Ierusalimschy
2015-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 Ierusalimschy
2015-12-14 09:57:38 -02:00
656b3cea1b
using 'sig_atomic_t' for 'hookmask' (as it can be changed inside a signal)
Roberto Ierusalimschy
2015-12-14 09:54:49 -02:00
03412af06e
detail (removed fixed argument to function 'callallpendingfinalizers')
Roberto Ierusalimschy
2015-12-10 16:12:30 -02:00
542dbd4c65
detail (moving bodies of 'while' to a separate line)
Roberto Ierusalimschy
2015-12-09 13:21:28 -02:00
c25d59a6bd
format "%s" in 'string.format' accepts embedded zeros when it has no modifiers
Roberto Ierusalimschy
2015-11-25 14:28:17 -02:00
5936eb16d8
randomness in 'table.sort' used only when needed (big imbalance in partition result) + small refactoring
Roberto Ierusalimschy
2015-11-25 10:48:57 -02:00
7dc3ca7b8e
handling 'clock_t' and 'time_t' correctly in ISO C point of view
Roberto Ierusalimschy
2015-11-24 14:54:32 -02:00
71344b5cac
easy the way to accept other modifiers for 'mode' in 'io.open'
Roberto Ierusalimschy
2015-11-23 09:36:11 -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 Ierusalimschy
2015-11-23 09:17:31 -02:00
d682b3c9ec
added separator for bugs in 5.3.1
Roberto Ierusalimschy
2015-11-13 15:19:07 -02:00
fc085aa627
new release number (5.3.2)
Roberto Ierusalimschy
2015-11-13 15:18:42 -02:00
9a5d6aedb7
trying to optimize a little 'luaD_poscall'
Roberto Ierusalimschy
2015-11-13 11:24:26 -02:00
89e3a84344
removed field 'n' from 'CallInfo' (not being used right now)
Roberto Ierusalimschy
2015-11-13 10:16:51 -02:00
04587b6256
macro with empty argument can be seen as macro with no argument; better to avoid that
Roberto Ierusalimschy
2015-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 Ierusalimschy
2015-11-12 16:07:25 -02:00
330d426ffd
avoid the use of deprecated functions 'luaL_checkunsigned'/ 'lua_pushunsigned'
Roberto Ierusalimschy
2015-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 Ierusalimschy
2015-11-06 14:07:14 -02:00
5100bc8aa1
no need for a special case to get long strings (not that common)
Roberto Ierusalimschy
2015-11-03 16:35:21 -02:00
ebb2afa54b
allow 'set' macros to be used when 'L' is not available (as it was needed only for assertions)
Roberto Ierusalimschy
2015-11-03 16:33:10 -02:00
7485512384
added comment and assert about dead keys
Roberto Ierusalimschy
2015-11-03 16:10:44 -02:00
46de77b219
bug: despite its name, 'luaH_getstr' did not work for strings in general, but only for short strings
Roberto Ierusalimschy
2015-11-03 13:47:30 -02:00
d356183402
new function 'luaS_hashlongstr'
Roberto Ierusalimschy
2015-11-03 13:36:01 -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 Ierusalimschy
2015-11-02 16:48:49 -02:00