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.)
7 years ago
Roberto Ierusalimschy
60a7492d24
new type 'ls_byte' for signed bytes
7 years ago
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.
8 years ago
Roberto Ierusalimschy
d13a3fb070
detail
(removed empty spaces at the end of lines)
8 years ago
Roberto Ierusalimschy
b6f87491af
in hash nodes, keys are stored in separate pieces to avoid wasting
space with alignments
8 years ago
Roberto Ierusalimschy
4bb30f461b
when assigning to a 'TValue', better assign only exact fields,
to allow us to put stuff after the 'TValuefields' if needed
8 years ago
Roberto Ierusalimschy
dad85e4131
macro 'setobj2t' may not be an expression
8 years ago
Roberto Ierusalimschy
b029e7ea20
macro 'luaV_fastget' may need protection ({}) to be used inside
'if's
8 years ago
Roberto Ierusalimschy
4bc33d64de
avoid overflows in computation of step size
8 years ago
Roberto Ierusalimschy
8821746841
updated GC states in function 'T.gcstate'
8 years ago
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
8 years ago
Roberto Ierusalimschy
4804bbd9bb
include first standard header files
(Some broken compiler has problems with 'signal.h' being included
without a definition for 'size_t'.)
8 years ago
Roberto Ierusalimschy
be0d951be8
bug: cannot reuse a dying upvalue
8 years ago
Roberto Ierusalimschy
a9dbc2d641
assert removed in 'luaO_arith'
(nobody calls it with L==NULL)
8 years ago
Roberto Ierusalimschy
c25380c28d
details (using proper version of 'setobj')
8 years ago
Roberto Ierusalimschy
03094da80c
detail (extra closing brackets)
8 years ago
Roberto Ierusalimschy
01c96ad12e
handling of inf, -inf, and NaN by string.format'%q'
8 years ago
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..
8 years ago
Roberto Ierusalimschy
e3d52da144
BUG: in 'computesizes', 'twotoi' overflows when a sequence has
more than 2^30 elements.
8 years ago
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.
8 years ago
Roberto Ierusalimschy
84910e04e2
better implementation for 'hash_search', without using 'size_t'
(simpler to implement and to explain)
8 years ago
Roberto Ierusalimschy
de74289049
table field names for dedicated opcodes can be restricted to
small strings for slightly faster access
8 years ago
Roberto Ierusalimschy
92b3deaffa
details in OP_CALL + comments
8 years ago
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'.)
8 years ago
Roberto Ierusalimschy
3d879fbc5d
reimplementation of 'luaH_getn', trying to handle numeric limits
properly.
8 years ago
Roberto Ierusalimschy
6d95de83c6
no more field 'base' in CallInfo (base is always equal to 'func + 1',
with old/new vararg implementation)
8 years ago
Roberto Ierusalimschy
5c8770f896
back to old-style vararg system (with vararg table collecting extra
arguments)
8 years ago
Roberto Ierusalimschy
7647d5d13d
revamp of fast track for table access (table set uses the same
macros as table get + new macro for integer keys)
8 years ago
Roberto Ierusalimschy
7184f6343a
more integer fast tracks (for OP_LT, OP_LE, OP_SETTABLE, and OP_GETTABLE)
8 years ago
Roberto Ierusalimschy
b1b7790f7c
detail ('1' -> '1u' in unsigned operation)
8 years ago
Roberto Ierusalimschy
ab5a650029
details (direct access to 'Ck' bit in instructions)
8 years ago
Roberto Ierusalimschy
fb9de1b4d7
detail ('luaT_callbinTM' does not need to be extern)
8 years ago
Roberto Ierusalimschy
e8757a73e6
'luaV_execute' keeps local copy of program counter and hook mask,
to avoid excessive access to globals.
8 years ago
Roberto Ierusalimschy
4ce8d2047c
bug: Wrong code for a goto followed by a label inside an 'if'
8 years ago
Roberto Ierusalimschy
2376eb6347
barrier for prototype's cache (with new gray list 'protogray' to keep
prototypes to have their caches visited again) + constant 'MAXMISS'
8 years ago
Roberto Ierusalimschy
8634b2a011
added 'cachemiss' field to prototype to avoid wasting time checking
hits that fail too often
8 years ago
Roberto Ierusalimschy
5ecb31003f
bug: cannot "skip" labels after if-goto before the jump over the
'then' part
8 years ago
Roberto Ierusalimschy
a454e884e0
details in 'findsetreg'
8 years ago
Roberto Ierusalimschy
502a1d1108
new opcodes for table access with constant keys (strings and integers)
8 years ago
Roberto Ierusalimschy
173e41b2eb
new opcode OP_ADDI (for immediate integer operand) (Experimental)
8 years ago
Roberto Ierusalimschy
a3f9c1a77a
detail (using unsigned comparison in range check for LOADI)
8 years ago
Roberto Ierusalimschy
6dbae1b5d9
registers in a VINDEXED expression must be freed in order
8 years ago
Roberto Ierusalimschy
cb3d5dce30
opcodes 'OP_GETTABUP'/'OP_SETTABUP' operate only with string keys,
so they can use fast-track table access
8 years ago
Roberto Ierusalimschy
2caecf1b3e
type 'L_Umaxalign' replaced by macro 'LUAI_MAXALIGN', which is also added
to the auxlib buffer
8 years ago
Roberto Ierusalimschy
f399e6705f
ensures that "collectgarbage'step'" in generational mode does a
minor collection
8 years ago
Roberto Ierusalimschy
69371c4b84
'KGC_NORMAL' -> 'KGC_INC' + emergency GC signalled by flag (instead
of mode)
8 years ago
Roberto Ierusalimschy
6a98aa0bb0
new opcode LOADI (for loading immediate integers)
8 years ago
Roberto Ierusalimschy
c354211744
small bug in generational control
8 years ago
Roberto Ierusalimschy
f748b4bb40
macros to define default parameters for generational collection
8 years ago
Roberto Ierusalimschy
7ae180f8e8
corrected some checks about colors of old objects + new test function
'gcage'
8 years ago