Roberto Ierusalimschy
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'.)
2016-09-05 16:06:34 -03:00
Roberto Ierusalimschy
aeb4c6fff1
comments + removed unused variable
2016-09-05 15:53:02 -03:00
Roberto Ierusalimschy
3b91b07fd9
detail (macro 'l_checkmode' reimplemented as function)
2016-09-01 13:14:56 -03:00
Roberto Ierusalimschy
349badabc1
wrong test in '#if' for floating-point type
2016-08-22 14:21:12 -03:00
Roberto Ierusalimschy
e4a9e6fcca
do not eliminate varargs from functions that do not use varargs
...
(confuses the debug lib and gains very little in performance)
2016-08-01 16:51:24 -03:00
Roberto Ierusalimschy
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.
2016-07-29 14:12:44 -03:00
Roberto Ierusalimschy
d55fd3455b
redefine MAXINDEXRK (for debugging, to force most values to
...
go through registers)
2016-07-19 14:13:00 -03:00
Roberto Ierusalimschy
0d1c6f4188
MAXINDEXRK can be redefined (for debugging, to force most values to
...
go through registers)
2016-07-19 14:12:21 -03:00
Roberto Ierusalimschy
fc6b32bcaa
bug: Lua can generate wrong code in functions with too many constants
2016-07-19 14:12:07 -03:00
Roberto Ierusalimschy
de96e26afc
bug: 'checkoption' could read past end of string + 'os.date' can
...
handle embedded zeros
2016-07-18 14:58:58 -03:00
Roberto Ierusalimschy
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)
2016-07-18 14:55:59 -03:00
Roberto Ierusalimschy
788109a3de
new bug: Checking a format for 'os.date' may read pass the format string
2016-07-15 14:24:09 -03:00
Roberto Ierusalimschy
09c9fa36ea
small corrections for C++ compliance
2016-06-27 10:15:08 -03:00
Roberto Ierusalimschy
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.)
2016-06-22 12:48:25 -03:00
Roberto Ierusalimschy
fac00ca023
bug: expression list with four or more expressions in
...
a 'for' loop can crash the interpreter.
2016-06-21 14:22:34 -03:00
Roberto Ierusalimschy
6487fb11fc
all 'static' variables should be 'const'
2016-06-20 16:12:46 -03:00
Roberto Ierusalimschy
644799537f
allow more bits in 'callstatus' (use no extra space due to alignments)
2016-06-16 10:36:09 -03:00
Roberto Ierusalimschy
aa66ca76ce
'lua_pushglobaltable' returns 'void'
2016-05-30 12:53:28 -03:00
Roberto Ierusalimschy
707b0ba6e2
'string.format("%q")' writes 'math.mininteger' in hexa, to ensure
...
it is read back as an integer
2016-05-20 11:13:21 -03:00
Roberto Ierusalimschy
10b0b09555
do not convert decimal constants with overflow to integers.
...
(Therefore, they will be converted as floats)
2016-05-20 11:07:48 -03:00
Roberto Ierusalimschy
4d5ab9baa6
'string.pack("cn")' does not accept strings longer than 'n'
2016-05-18 15:19:51 -03:00
Roberto Ierusalimschy
b65252b39b
'singlevaraux' returns result only in 'var->k'
2016-05-13 16:10:16 -03:00
Roberto Ierusalimschy
fbd8614bdb
comment (FALLTHROUGH)
2016-05-13 16:09:46 -03:00
Roberto Ierusalimschy
f3b52a6061
'io.read("n")' accepts both a dot and the locale point as its
...
radix character + 'MAXRN' -> 'L_MAXLENNUM' + small detail in
'test2'
2016-05-02 11:03:19 -03:00
Roberto Ierusalimschy
0232fbffbe
now that 'luaO_str2num' always accepts a dot as a radix character,
...
the lexer does not need to bother with this issue.
2016-05-02 11:02:12 -03:00
Roberto Ierusalimschy
ed110f66c5
'luaO_str2num' (and, therefore, 'lua_stringtonumber', 'number',
...
and coercions) accepts both the locale point and a dot as its
radix character
2016-05-02 11:00:32 -03:00
Roberto Ierusalimschy
22093f9c6e
'string.format("%q", number)' ensures a dot as decimal point
2016-05-02 10:58:01 -03:00
Roberto Ierusalimschy
792ffaccf2
detail (macro should "use" all its arguments)
2016-05-01 17:06:09 -03:00
Roberto Ierusalimschy
57cdb60429
no more time limits to pattern matching (at least for now)
2016-04-22 13:36:30 -03:00
Roberto Ierusalimschy
89c09c8e40
match time limit defined by variable 'string.pattlimit'
2016-04-19 09:34:08 -03:00
Roberto Ierusalimschy
48baa5e89c
'os.time(t)' normalizes 't' fields
2016-04-18 10:06:55 -03:00
Roberto Ierusalimschy
fdd7209688
error handling in 'wrap' does not coerce numbers into string messages
2016-04-11 16:19:55 -03:00
Roberto Ierusalimschy
82a8e06524
details ('error' does not coerce numbers to strings + comments)
2016-04-11 16:18:40 -03:00
Roberto Ierusalimschy
c258870c59
diff for last bug was against wrong version
2016-04-11 12:34:21 -03:00
Roberto Ierusalimschy
e8e39a277f
'string.format"%q"' now works for all basic types (nil, boolean,
...
numbers, and strings)
2016-04-08 18:15:02 -03:00
Roberto Ierusalimschy
fff7d42a69
LUA_PACKPADBYTE -> LUAL_PACKPADBYTE (it is an internal library
...
name, not something to be usually configured)
2016-04-07 12:40:07 -03:00
Roberto Ierusalimschy
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")
2016-03-31 16:07:42 -03:00
Roberto Ierusalimschy
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.
2016-03-31 16:02:03 -03:00
Roberto Ierusalimschy
d77a7a8c26
detail (comment)
2016-03-31 16:01:21 -03:00
Roberto Ierusalimschy
e747491b96
comments
2016-03-23 15:08:26 -03:00
Roberto Ierusalimschy
acff3ad88d
bug: 'gmatch' iterator fails when called from a coroutine different
...
from the one that created it
2016-03-23 14:12:17 -03:00
Roberto Ierusalimschy
e7b2e01d43
bug: label between local definitions can mix-up their initializations
2016-03-07 16:25:39 -03:00
Roberto Ierusalimschy
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')
2016-02-29 11:27:14 -03:00
Roberto Ierusalimschy
7777b412de
When available, use metafield '__name' in error messages
2016-02-26 16:20:15 -03:00
Roberto Ierusalimschy
c3e9b14d24
'\0' is a control character, no need to check it explicitly
2016-02-25 16:42:55 -03:00
Roberto Ierusalimschy
7d6b78ee79
in 'table.move', destination table can be source table even if
...
given as an explicit extra argument
2016-02-25 16:41:54 -03:00
Roberto Ierusalimschy
5f3ad5731e
simpler yet definition for 'checkoption'
2016-02-09 10:16:11 -02:00
Roberto Ierusalimschy
494e9ba0f4
simpler code for 'checkoption' + added conversion specifiers specific
...
to Windows
2016-02-08 12:42:46 -02:00
Roberto Ierusalimschy
f79b4568ae
details (removed silly use of 'luaL_opt' + better error messages
...
in cases of "table expected")
2016-02-08 10:55:19 -02:00
Roberto Ierusalimschy
fd51651684
new macro 'vmfetch' to help changing code to computed goto's (macro
...
abstracts the code to run before each instruction)
2016-02-05 17:59:14 -02:00
Roberto Ierusalimschy
994374c4df
new release number + new year
2016-01-13 15:55:19 -02:00
Roberto Ierusalimschy
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)
2016-01-08 13:33:09 -02:00
Roberto Ierusalimschy
9945253d57
details (comments + text of error messages)
2016-01-06 11:43:05 -02:00
Roberto Ierusalimschy
1f259be52a
'getcode' -> 'getinstruction'
2016-01-05 14:22:37 -02:00
Roberto Ierusalimschy
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)
2016-01-05 14:07:21 -02:00
Roberto Ierusalimschy
a272fa66f0
bug: Metatable may access its own dealocated field when
...
it has a self reference in __newindex + some refactoring
2016-01-04 14:44:50 -02:00
Roberto Ierusalimschy
b12b635a90
more refactoring
2016-01-04 11:40:57 -02:00
Roberto Ierusalimschy
7cd7c2e0a1
Metatable may access its own dealocated field when
...
it has a self reference in __newindex.
2016-01-04 11:35:56 -02:00
Roberto Ierusalimschy
07cf8415e3
more comments + reordeing of union inside 'expdesc' to allow
...
static initialization of a VKINT value
2015-12-30 16:16:13 -02:00
Roberto Ierusalimschy
c0836dda74
avoid empty macro arguments (invalid in C89)
2015-12-21 11:02:14 -02:00
Roberto Ierusalimschy
384d1b47b0
comments (*lots* of them) + asserts
2015-12-18 11:53:36 -02:00
Roberto Ierusalimschy
19770b03a9
comments. (More explanation about kinds of expressions.)
2015-12-17 13:44:50 -02:00
Roberto Ierusalimschy
a01eba657e
reordering of some functions + 'code_label' renamed to 'code_loadbool'
2015-12-17 13:02:44 -02:00
Roberto Ierusalimschy
b7446ea88d
detail ('while' -> 'for') in 'luaK_patchclose'
2015-12-17 12:52:53 -02:00
Roberto Ierusalimschy
a051b3323e
comments (about hooks vs signals)
2015-12-16 14:40:07 -02:00
Roberto Ierusalimschy
c4e01c568a
make 'hook' volatile (as it may be changed in signal handling)
2015-12-16 14:39:38 -02:00
Roberto Ierusalimschy
bda090b961
comments + small code changes around stack usage when 'luaL_checkstack'
...
raises an error (and needs the stack to create the error message...)
2015-12-14 09:59:27 -02:00
Roberto Ierusalimschy
e383941652
in 'table.sort': 'typedef' for type of indices + removed stack check
...
(recursion is in the C stack, not in the Lua stack!)
2015-12-14 09:57:38 -02:00
Roberto Ierusalimschy
656b3cea1b
using 'sig_atomic_t' for 'hookmask' (as it can be changed inside
...
a signal)
2015-12-14 09:54:49 -02:00
Roberto Ierusalimschy
2d1d57bc18
comments
2015-12-14 09:53:27 -02:00
Roberto Ierusalimschy
03412af06e
detail (removed fixed argument to function 'callallpendingfinalizers')
2015-12-10 16:12:30 -02:00
Roberto Ierusalimschy
542dbd4c65
detail (moving bodies of 'while' to a separate line)
2015-12-09 13:21:28 -02:00
Roberto Ierusalimschy
c25d59a6bd
format "%s" in 'string.format' accepts embedded zeros when it
...
has no modifiers
2015-11-25 14:28:17 -02:00
Roberto Ierusalimschy
5936eb16d8
randomness in 'table.sort' used only when needed (big imbalance in
...
partition result) + small refactoring
2015-11-25 10:48:57 -02:00
Roberto Ierusalimschy
7dc3ca7b8e
handling 'clock_t' and 'time_t' correctly in ISO C point of view
2015-11-24 14:54:32 -02:00
Roberto Ierusalimschy
71344b5cac
easy the way to accept other modifiers for 'mode' in 'io.open'
2015-11-23 09:36:11 -02:00
Roberto Ierusalimschy
f230898ad6
tiny code refactoring in 'luaS_hash'
2015-11-23 09:32:51 -02:00
Roberto Ierusalimschy
3feb702df8
ensure argument to 'string.format("%s")' does not contain zeros
2015-11-23 09:31:21 -02:00
Roberto Ierusalimschy
c5112f7b15
details (comments)
2015-11-23 09:30:45 -02:00
Roberto Ierusalimschy
c231a5e2b6
using unsigned int (instead of int) in 'table.sort' to avoid overflows
...
(when computing the pivot and in original table size)
2015-11-23 09:17:31 -02:00
Roberto Ierusalimschy
dc9ac5b8c2
details (merging declarations with initialization)
2015-11-23 09:09:27 -02:00
Roberto Ierusalimschy
146508b28e
randomness in pivot for 'table.sort' done by a macro (easier to change)
2015-11-20 10:30:20 -02:00
Roberto Ierusalimschy
d103312661
details (typos in comments)
2015-11-19 17:16:22 -02:00
Roberto Ierusalimschy
2e8f8a18e4
detail
2015-11-17 14:00:28 -02:00
Roberto Ierusalimschy
f5b0459aba
details
2015-11-13 15:19:46 -02:00
Roberto Ierusalimschy
d682b3c9ec
added separator for bugs in 5.3.1
2015-11-13 15:19:07 -02:00
Roberto Ierusalimschy
fc085aa627
new release number (5.3.2)
2015-11-13 15:18:42 -02:00
Roberto Ierusalimschy
9a5d6aedb7
trying to optimize a little 'luaD_poscall'
2015-11-13 11:24:26 -02:00
Roberto Ierusalimschy
89e3a84344
removed field 'n' from 'CallInfo' (not being used right now)
2015-11-13 10:16:51 -02:00
Roberto Ierusalimschy
04587b6256
macro with empty argument can be seen as macro with no argument; better
...
to avoid that
2015-11-12 16:08:58 -02:00
Roberto Ierusalimschy
bde03eeb48
in 'table.sort': tighter checks for invalid order function +
...
"random" pivot for larger intervals (to avoid attacks with
bad data)
2015-11-12 16:07:25 -02:00
Roberto Ierusalimschy
330d426ffd
avoid the use of deprecated functions 'luaL_checkunsigned'/
...
'lua_pushunsigned'
2015-11-11 17:08:09 -02:00
Roberto Ierusalimschy
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
2015-11-06 14:07:14 -02:00
Roberto Ierusalimschy
5100bc8aa1
no need for a special case to get long strings (not that common)
2015-11-03 16:35:21 -02:00
Roberto Ierusalimschy
ebb2afa54b
allow 'set' macros to be used when 'L' is not available (as it was
...
needed only for assertions)
2015-11-03 16:33:10 -02:00
Roberto Ierusalimschy
7485512384
added comment and assert about dead keys
2015-11-03 16:10:44 -02:00
Roberto Ierusalimschy
46de77b219
bug: despite its name, 'luaH_getstr' did not work for strings in
...
general, but only for short strings
2015-11-03 13:47:30 -02:00
Roberto Ierusalimschy
d356183402
new function 'luaS_hashlongstr'
2015-11-03 13:36:01 -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
ff1289a361
in 'luaD_call', use two functions instead of one with fixed boolean
...
argument
2015-11-02 16:48:07 -02:00