Roberto Ierusalimschy
029d269f4d
bug: dead keys with nil values can stay in weak tables
2017-08-31 13:14:41 -03:00
Roberto Ierusalimschy
ac65bab25f
jumps in 'for' loops don't need to be signed
2017-08-14 15:33:14 -03:00
Roberto Ierusalimschy
f185c0132e
comment in code fragment
2017-08-12 10:12:42 -03:00
Roberto Ierusalimschy
b77f792b23
comment
2017-08-12 10:12:21 -03:00
Roberto Ierusalimschy
4053eae9eb
bug: Lua does not check GC when creating error messages
2017-07-27 10:55:38 -03:00
Roberto Ierusalimschy
6d998055c8
no more reference 'memerrmsg' + new reference to "n"
...
(both can be retrieved by 'luaS_newliteral' without creating anything,
because they are fixed, but "n" deserves fast access while 'memerrmsg'
does not)
2017-07-27 10:50:16 -03:00
Roberto Ierusalimschy
11769b203f
new version (5.4)
2017-07-27 10:36:54 -03:00
Roberto Ierusalimschy
b1daa069ba
bug: Lua does not check GC when creating error messages
2017-07-10 14:35:12 -03:00
Roberto Ierusalimschy
4dff277255
coercion string->number in arithmetic operations moved to string
...
library
2017-07-07 13:34:32 -03:00
Roberto Ierusalimschy
07db10813c
'OP_VARARG' has the vararg parameter as an operand
2017-06-29 12:38:41 -03:00
Roberto Ierusalimschy
f96497397a
new type 'StackValue' for stack elements
...
(we may want to put extra info there in the future)
2017-06-29 12:06:44 -03:00
Roberto Ierusalimschy
5a1c8d8ef3
new constant 'LUA_GNAME' for the name of the global table "_G"
2017-06-27 15:32:49 -03:00
Roberto Ierusalimschy
124bfd2081
dumping ints and size_ts compacted
2017-06-27 11:21:12 -03:00
Roberto Ierusalimschy
b42430fd3a
'lineinfo' in prototypes saved as differences instead of absolute
...
values, so that the array can use bytes instead of ints, reducing
its size. (A new array 'abslineinfo' is used when line differences
do not fit in a byte.)
2017-06-27 08:35:31 -03:00
Roberto Ierusalimschy
60a7492d24
new type 'ls_byte' for signed bytes
2017-06-27 08:35:01 -03:00
Roberto Ierusalimschy
73ec04fcf3
no more 'DEADKEY'. Table traversals do not need to consider dead keys;
...
if the key is dead, it cannot be given to 'next'. Instead, we now
use a 'table' tag without the collectable bit, which makes it
a unique tag good enough to reserve space.
2017-06-12 11:21:44 -03:00
Roberto Ierusalimschy
d13a3fb070
detail
...
(removed empty spaces at the end of lines)
2017-06-09 16:16:41 -03:00
Roberto Ierusalimschy
b6f87491af
in hash nodes, keys are stored in separate pieces to avoid wasting
...
space with alignments
2017-06-09 13:48:44 -03:00
Roberto Ierusalimschy
4bb30f461b
when assigning to a 'TValue', better assign only exact fields,
...
to allow us to put stuff after the 'TValuefields' if needed
2017-06-01 17:24:05 -03:00
Roberto Ierusalimschy
dad85e4131
macro 'setobj2t' may not be an expression
2017-06-01 17:23:27 -03:00
Roberto Ierusalimschy
b029e7ea20
macro 'luaV_fastget' may need protection ({}) to be used inside
...
'if's
2017-06-01 17:22:33 -03:00
Roberto Ierusalimschy
4bc33d64de
avoid overflows in computation of step size
2017-06-01 16:16:34 -03:00
Roberto Ierusalimschy
8821746841
updated GC states in function 'T.gcstate'
2017-05-31 15:54:58 -03:00
Roberto Ierusalimschy
72d82a296c
revamping the incremental collector
...
Some simplifications (not counting bytes, couting only slots visited;
no more 'gcfinnum'); more GC parameters; using vararg in 'lua_gc' to
set parameters in different GC modes
2017-05-26 16:14:29 -03:00
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