Roberto Ierusalimschy
|
4804bbd9bb
|
include first standard header files
(Some broken compiler has problems with 'signal.h' being included
without a definition for 'size_t'.)
|
2017-05-24 18:11:19 -03:00 |
|
Roberto Ierusalimschy
|
be0d951be8
|
bug: cannot reuse a dying upvalue
|
2017-05-24 15:54:54 -03:00 |
|
Roberto Ierusalimschy
|
a9dbc2d641
|
assert removed in 'luaO_arith'
(nobody calls it with L==NULL)
|
2017-05-24 10:47:11 -03:00 |
|
Roberto Ierusalimschy
|
c25380c28d
|
details (using proper version of 'setobj')
|
2017-05-23 09:50:11 -03:00 |
|
Roberto Ierusalimschy
|
03094da80c
|
detail (extra closing brackets)
|
2017-05-22 09:55:16 -03:00 |
|
Roberto Ierusalimschy
|
01c96ad12e
|
handling of inf, -inf, and NaN by string.format'%q'
|
2017-05-19 13:29:40 -03:00 |
|
Roberto Ierusalimschy
|
1bdc328c75
|
bug: Lua crashes when building sequences with more than 2^30 elements.
bug: Table length computation overflows for sequences larger than
2^31 elements..
|
2017-05-19 09:58:40 -03:00 |
|
Roberto Ierusalimschy
|
e3d52da144
|
BUG: in 'computesizes', 'twotoi' overflows when a sequence has
more than 2^30 elements.
|
2017-05-19 09:57:10 -03:00 |
|
Roberto Ierusalimschy
|
e39ee2cc58
|
'luaH_getn' must return 'lua_Unsigned' (or 'lua_Integer'), to
allow the boundary-search algorithm to use 'maxinteger' when
it cannot find a good upper bound.
|
2017-05-19 09:48:15 -03:00 |
|
Roberto Ierusalimschy
|
84910e04e2
|
better implementation for 'hash_search', without using 'size_t'
(simpler to implement and to explain)
|
2017-05-19 09:47:00 -03:00 |
|
Roberto Ierusalimschy
|
de74289049
|
table field names for dedicated opcodes can be restricted to
small strings for slightly faster access
|
2017-05-18 16:44:19 -03:00 |
|
Roberto Ierusalimschy
|
92b3deaffa
|
details in OP_CALL + comments
|
2017-05-18 16:34:39 -03:00 |
|
Roberto Ierusalimschy
|
49f7aab62a
|
'lua_rawlen' returns 'lua_Unsigned' instead of 'size_t'. (Real
length of strings and userdata are limited by Lua integers,
but table length is hard to compute limiting it to 'size_t'.)
|
2017-05-18 09:34:58 -03:00 |
|
Roberto Ierusalimschy
|
3d879fbc5d
|
reimplementation of 'luaH_getn', trying to handle numeric limits
properly.
|
2017-05-16 16:07:08 -03:00 |
|
Roberto Ierusalimschy
|
6d95de83c6
|
no more field 'base' in CallInfo (base is always equal to 'func + 1',
with old/new vararg implementation)
|
2017-05-13 10:54:47 -03:00 |
|
Roberto Ierusalimschy
|
5c8770f896
|
back to old-style vararg system (with vararg table collecting extra
arguments)
|
2017-05-13 10:04:33 -03:00 |
|
Roberto Ierusalimschy
|
7647d5d13d
|
revamp of fast track for table access (table set uses the same
macros as table get + new macro for integer keys)
|
2017-05-11 15:57:46 -03:00 |
|
Roberto Ierusalimschy
|
7184f6343a
|
more integer fast tracks (for OP_LT, OP_LE, OP_SETTABLE, and OP_GETTABLE)
|
2017-05-10 14:32:19 -03:00 |
|
Roberto Ierusalimschy
|
b1b7790f7c
|
detail ('1' -> '1u' in unsigned operation)
|
2017-05-09 11:39:46 -03:00 |
|
Roberto Ierusalimschy
|
ab5a650029
|
details (direct access to 'Ck' bit in instructions)
|
2017-05-08 13:08:01 -03:00 |
|
Roberto Ierusalimschy
|
fb9de1b4d7
|
detail ('luaT_callbinTM' does not need to be extern)
|
2017-05-08 12:57:23 -03:00 |
|
Roberto Ierusalimschy
|
e8757a73e6
|
'luaV_execute' keeps local copy of program counter and hook mask,
to avoid excessive access to globals.
|
2017-05-05 14:16:11 -03:00 |
|
Roberto Ierusalimschy
|
4ce8d2047c
|
bug: Wrong code for a goto followed by a label inside an 'if'
|
2017-05-05 12:55:36 -03:00 |
|
Roberto Ierusalimschy
|
2376eb6347
|
barrier for prototype's cache (with new gray list 'protogray' to keep
prototypes to have their caches visited again) + constant 'MAXMISS'
|
2017-05-04 10:32:01 -03:00 |
|
Roberto Ierusalimschy
|
8634b2a011
|
added 'cachemiss' field to prototype to avoid wasting time checking
hits that fail too often
|
2017-04-30 17:43:26 -03:00 |
|
Roberto Ierusalimschy
|
5ecb31003f
|
bug: cannot "skip" labels after if-goto before the jump over the
'then' part
|
2017-04-29 15:09:17 -03:00 |
|
Roberto Ierusalimschy
|
a454e884e0
|
details in 'findsetreg'
|
2017-04-29 12:28:38 -03:00 |
|
Roberto Ierusalimschy
|
502a1d1108
|
new opcodes for table access with constant keys (strings and integers)
|
2017-04-28 17:57:45 -03:00 |
|
Roberto Ierusalimschy
|
173e41b2eb
|
new opcode OP_ADDI (for immediate integer operand) (Experimental)
|
2017-04-26 14:46:52 -03:00 |
|
Roberto Ierusalimschy
|
a3f9c1a77a
|
detail (using unsigned comparison in range check for LOADI)
|
2017-04-25 17:01:14 -03:00 |
|
Roberto Ierusalimschy
|
6dbae1b5d9
|
registers in a VINDEXED expression must be freed in order
|
2017-04-25 15:28:25 -03:00 |
|
Roberto Ierusalimschy
|
cb3d5dce30
|
opcodes 'OP_GETTABUP'/'OP_SETTABUP' operate only with string keys,
so they can use fast-track table access
|
2017-04-24 17:26:39 -03:00 |
|
Roberto Ierusalimschy
|
2caecf1b3e
|
type 'L_Umaxalign' replaced by macro 'LUAI_MAXALIGN', which is also added
to the auxlib buffer
|
2017-04-24 15:06:12 -03:00 |
|
Roberto Ierusalimschy
|
f399e6705f
|
ensures that "collectgarbage'step'" in generational mode does a
minor collection
|
2017-04-24 14:52:18 -03:00 |
|
Roberto Ierusalimschy
|
69371c4b84
|
'KGC_NORMAL' -> 'KGC_INC' + emergency GC signalled by flag (instead
of mode)
|
2017-04-24 13:59:26 -03:00 |
|
Roberto Ierusalimschy
|
6a98aa0bb0
|
new opcode LOADI (for loading immediate integers)
|
2017-04-20 16:53:55 -03:00 |
|
Roberto Ierusalimschy
|
c354211744
|
small bug in generational control
|
2017-04-20 15:24:33 -03:00 |
|
Roberto Ierusalimschy
|
f748b4bb40
|
macros to define default parameters for generational collection
|
2017-04-20 15:22:44 -03:00 |
|
Roberto Ierusalimschy
|
7ae180f8e8
|
corrected some checks about colors of old objects + new test function
'gcage'
|
2017-04-19 15:46:47 -03:00 |
|
Roberto Ierusalimschy
|
c7bdc0e0e8
|
first version of control for the generational collector
|
2017-04-19 14:02:50 -03:00 |
|
Roberto Ierusalimschy
|
a45945b6d5
|
new macro 'lua_pointer2str' to encapsulate use of 'l_sprintf' inside
the kernel
|
2017-04-19 13:34:35 -03:00 |
|
Roberto Ierusalimschy
|
9e1f1b1f62
|
detail in usage message for '-l' option
|
2017-04-19 09:49:17 -03:00 |
|
Roberto Ierusalimschy
|
4679294796
|
memory check adapted to generational mode
|
2017-04-18 16:42:12 -03:00 |
|
Roberto Ierusalimschy
|
f74b87c3c2
|
removed initialization of 'GCestimate' (it is initialized during
a GC cycle, when it start counting)
|
2017-04-12 15:56:25 -03:00 |
|
Roberto Ierusalimschy
|
16001acb15
|
small corrections + removal of debugging functions 'count' and
'printgray'.
|
2017-04-12 15:01:40 -03:00 |
|
Roberto Ierusalimschy
|
0c8a7e071b
|
'mainthread' lives in 'allgc' list, like everybody else
|
2017-04-11 16:00:27 -03:00 |
|
Roberto Ierusalimschy
|
a3d36fe283
|
Upvalues collected like everything else (with mark-sweep) instead
of reference count (simpler and better for generational mode)
|
2017-04-11 15:41:09 -03:00 |
|
Roberto Ierusalimschy
|
9569ad6b0d
|
Comments for generational collector
|
2017-04-10 10:33:04 -03:00 |
|
Roberto Ierusalimschy
|
2331e1beec
|
small changes in 'luaC_upvalbarrier'
|
2017-04-06 10:08:56 -03:00 |
|
Roberto Ierusalimschy
|
e4287da3a6
|
generational collector (still not complete)
|
2017-04-05 13:50:51 -03:00 |
|
Roberto Ierusalimschy
|
1a1b2f3d7f
|
added 'return' to calls to 'luaL_error' (to signal to the compiler
that the function cannot continue past that call)
|
2017-03-14 09:40:44 -03:00 |
|
Roberto Ierusalimschy
|
f5f3df3bd1
|
generational collection: new attempt (still incomplete)
|
2017-02-23 18:07:34 -03:00 |
|
Roberto Ierusalimschy
|
e6c1e6005a
|
comments about gray lists
|
2017-02-15 16:52:13 -02:00 |
|
Roberto Ierusalimschy
|
d266d40dea
|
error when calling close method without arguments (e.g.,
|io.stdin.close()|)
|
2017-02-09 12:50:05 -02:00 |
|
Roberto Ierusalimschy
|
e354c6355e
|
small updates
|
2017-01-31 19:17:47 -02:00 |
|
Roberto Ierusalimschy
|
94c1b3a8ee
|
Handling of LUA_PATH/LUA_CPATH moved back to 'package' library
to avoid incompatibilites with previous releases
|
2017-01-12 15:14:26 -02:00 |
|
Roberto Ierusalimschy
|
08199ade4a
|
release 5.3.4 (year 2017)
|
2016-12-22 13:51:20 -02:00 |
|
Roberto Ierusalimschy
|
2a235312f0
|
detail (removing spaces at end of lines)
|
2016-12-22 11:08:50 -02:00 |
|
Roberto Ierusalimschy
|
9903dd52a3
|
Using LUAI_UAC* types more consistently on vararg calls
|
2016-12-20 16:37:00 -02:00 |
|
Roberto Ierusalimschy
|
24f6e236a3
|
'moveresults' and 'luaD_poscall' moved up in the file
|
2016-12-13 13:52:21 -02:00 |
|
Roberto Ierusalimschy
|
9f594ca6f5
|
LUA_PATHSUFFIX -> LUA_VERSUFFIX + LUA_VERSUFFIX used in the
definition of LUA_INITVARVERSION, too.
|
2016-12-13 13:50:58 -02:00 |
|
Roberto Ierusalimschy
|
4df4560bf5
|
detail (wrong comment)
|
2016-12-06 12:54:31 -02:00 |
|
Roberto Ierusalimschy
|
b2aa2ba046
|
using constants for "_LOADED" and "PRELOAD"
|
2016-12-04 18:17:24 -02:00 |
|
Roberto Ierusalimschy
|
beec5af201
|
'luaL_tolstring' uses metatable's "__name" when available
|
2016-12-04 18:09:45 -02:00 |
|
Roberto Ierusalimschy
|
7b1fba69b7
|
using 'lastfree == NULL' to signal that table is using the dummy
node for its hash part + new macro 'allocsizenode'
|
2016-11-07 10:38:35 -02:00 |
|
Roberto Ierusalimschy
|
697593d8d5
|
bug: When a coroutine tries to resume a non-suspended coroutine,
it can do some mess (and break C assertions) before detecting the error.
|
2016-10-19 10:34:27 -02:00 |
|
Roberto Ierusalimschy
|
e2dc807c6e
|
check whether function is finalizer when finding a name for it +
comments + some instructions can call functions in unespected ways
(e.g., finalizers)
|
2016-10-19 10:32:10 -02:00 |
|
Roberto Ierusalimschy
|
138d00176c
|
new flag in 'CallInfo.callstatus' to tell whether function is running
as a finalizer
|
2016-10-19 10:31:42 -02:00 |
|
Roberto Ierusalimschy
|
8edbf57fb8
|
detail (ANSI C does not accept empty arguments to macros)
|
2016-09-20 13:37:45 -03:00 |
|
Roberto Ierusalimschy
|
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")
|
2016-09-08 13:36:26 -03:00 |
|
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 |
|