Roberto Ierusalimschy
c5482468fd
baby steps to remove 'CallInfo': keeping 'L->func' correct
7 years ago
Roberto Ierusalimschy
ad5dcdcf0f
detail: in 'isinstack', check against the whole stack instead
of against the stack frame
7 years ago
Roberto Ierusalimschy
de9128d09d
do not mess up the debt when the collector is not running
7 years ago
Roberto Ierusalimschy
1d8920dd7f
some cleaning in GC parameters
7 years ago
Roberto Ierusalimschy
911f1e3e7f
raw operation should not convert strings to numbers
7 years ago
Roberto Ierusalimschy
a1ef58b3a5
eplicit 1-bit opcode operand 'k'
7 years ago
Roberto Ierusalimschy
283e7455ff
detail
7 years ago
Roberto Ierusalimschy
8fbe9e3470
new opcodes with immediate integer operand for all arithmetic operations
7 years ago
Roberto Ierusalimschy
9ed9f40f1e
avoid warning about 'const'
7 years ago
Roberto Ierusalimschy
940472c75c
opcode size increased to 7 bits
7 years ago
Roberto Ierusalimschy
f3b3d9b5c2
string constants (Kstr) must fit into 'B' register
7 years ago
Roberto Ierusalimschy
7f9a32ad85
new function 'printcode'
7 years ago
Roberto Ierusalimschy
bc1b0733b8
avoid the use of bit 'Bk' ('B' will lose this bit soon)
7 years ago
Roberto Ierusalimschy
722bdbe17d
no more 'getBMode'-'getCMode' (imprecise + we will need more space
for op mode) + better control of op modes
7 years ago
Roberto Ierusalimschy
1b10033583
new function 'luaT_trybiniTM'
to handle tag methods for instructions with immediate integer arguments
7 years ago
Roberto Ierusalimschy
00e728af88
binary operators use R instead of RK
faster + nobody uses RK(B), so B can be smaller (freeing one bit
for more opcodes, soon)
7 years ago
Roberto Ierusalimschy
13256a4173
detail
put explicit all cases for a switch of an enumeration
7 years ago
Roberto Ierusalimschy
abb17cf19b
new opcode OP_LOADF (load immediate float)
7 years ago
Roberto Ierusalimschy
e0c0e2ee14
comments (documentation about instruction formats)
7 years ago
Roberto Ierusalimschy
022e4427cf
detail (keep OP_LOADK and OP_LOADKX together)
7 years ago
Roberto Ierusalimschy
80d9b09f35
jumps do not close upvalues (to be faster and simpler);
explicit instruction to close upvalues; command 'break' not
handled like a 'goto' (to optimize removal of uneeded 'close'
instructions)
7 years ago
Roberto Ierusalimschy
029d269f4d
bug: dead keys with nil values can stay in weak tables
7 years ago
Roberto Ierusalimschy
ac65bab25f
jumps in 'for' loops don't need to be signed
7 years ago
Roberto Ierusalimschy
f185c0132e
comment in code fragment
7 years ago
Roberto Ierusalimschy
b77f792b23
comment
7 years ago
Roberto Ierusalimschy
4053eae9eb
bug: Lua does not check GC when creating error messages
7 years ago
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)
7 years ago
Roberto Ierusalimschy
11769b203f
new version (5.4)
7 years ago
Roberto Ierusalimschy
b1daa069ba
bug: Lua does not check GC when creating error messages
7 years ago
Roberto Ierusalimschy
4dff277255
coercion string->number in arithmetic operations moved to string
library
7 years ago
Roberto Ierusalimschy
07db10813c
'OP_VARARG' has the vararg parameter as an operand
7 years ago
Roberto Ierusalimschy
f96497397a
new type 'StackValue' for stack elements
(we may want to put extra info there in the future)
7 years ago
Roberto Ierusalimschy
5a1c8d8ef3
new constant 'LUA_GNAME' for the name of the global table "_G"
7 years ago
Roberto Ierusalimschy
124bfd2081
dumping ints and size_ts compacted
7 years ago
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