Roberto Ierusalimschy
0682fe8169
some simplifications/optimizations in returns from Lua functions
7 years ago
Roberto Ierusalimschy
b1379936cf
vararg back to '...' (but with another implementation)
new implementation should have zero overhead for non-vararg functions
7 years ago
Roberto Ierusalimschy
318a9a5859
new opcode 'PREPVARARG'
(avoids test for vararg function in all function calls)
7 years ago
Roberto Ierusalimschy
89110986d7
bug in tailcall of vararg functions
(when adjusting missing parameters)
7 years ago
Roberto Ierusalimschy
53979dfe0d
calling a vararg function needs to check GC
(because it creates a new table)
7 years ago
Roberto Ierusalimschy
cf7eff45f3
keep control of stack top in Lua functions concentrated in 'luaV_execute'
7 years ago
Roberto Ierusalimschy
1d5b885437
when running Lua code, there is no need to keep 'L->top' "correct";
set it only when needed.
7 years ago
Roberto Ierusalimschy
4dc0be950a
new macro 'isLuacode' (to distinguish regular Lua code from
hooks, where C code can run inside a Lua function).
7 years ago
Roberto Ierusalimschy
b3f924bc69
'Proto->numparams' does not include vararg parameter
(one less subtraction when calling functions...)
7 years ago
Roberto Ierusalimschy
86431a2f1c
new opcodes BANDK/BORK/BXORK. (They do not use immediate operands
because, too often, masks in bitwise operations are integers larger
than one byte.)
7 years ago
Roberto Ierusalimschy
ac78b914b6
warnings from Visual Studio /W3
7 years ago
Roberto Ierusalimschy
093c16b67b
new opcodes 'OP_LTI' and 'OP_LEI'
7 years ago
Roberto Ierusalimschy
73abfde2ef
small simplifications around 'luaT_callorderTM'
7 years ago
Roberto Ierusalimschy
26679ea35b
new function 'luaV_flttointeger' to convert floats to integers (without
string coercions) + string operands to bitwise operations handled
by string metamethods
7 years ago
Roberto Ierusalimschy
ad0704e40c
back to 'CallInfo' (no gains with its removal)
7 years ago
Roberto Ierusalimschy
54eb35a8aa
more fields moved out of 'CallInfo'
7 years ago
Roberto Ierusalimschy
9ed9f40f1e
avoid warning about 'const'
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
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
f96497397a
new type 'StackValue' for stack elements
(we may want to put extra info there in the future)
7 years ago
Roberto Ierusalimschy
5c8770f896
back to old-style vararg system (with vararg table collecting extra
arguments)
8 years ago
Roberto Ierusalimschy
fb9de1b4d7
detail ('luaT_callbinTM' does not need to be extern)
8 years ago
Roberto Ierusalimschy
a3d36fe283
Upvalues collected like everything else (with mark-sweep) instead
of reference count (simpler and better for generational mode)
8 years ago
Roberto Ierusalimschy
2a235312f0
detail (removing spaces at end of lines)
8 years ago
Roberto Ierusalimschy
7777b412de
When available, use metafield '__name' in error messages
9 years ago
Roberto Ierusalimschy
46de77b219
bug: despite its name, 'luaH_getstr' did not work for strings in
general, but only for short strings
9 years ago
Roberto Ierusalimschy
ff1289a361
in 'luaD_call', use two functions instead of one with fixed boolean
argument
9 years ago
Roberto Ierusalimschy
3a91274547
details (avoid 'lint' warnings)
10 years ago
Roberto Ierusalimschy
5fbd40dbe5
'x//y' extended to floats
10 years ago
Roberto Ierusalimschy
779381fe9e
detail (comment)
10 years ago
Roberto Ierusalimschy
ad20689feb
better error message for bitwise operators (they are not arithmetic...)
10 years ago
Roberto Ierusalimschy
28fdbcf393
added include for 'lprefix.h', for stuff that must be added before
any other header file
10 years ago
Roberto Ierusalimschy
ca41b43f53
type 'TString' refers directly to the structure inside the union
(union used only for size purposes)
10 years ago
Roberto Ierusalimschy
56137d58ff
added check for conversion 'obj2gco' (and corrections for small
problems detected by this check)
10 years ago
Roberto Ierusalimschy
1a3656e56e
more relaxed rules for __eq metamethod (more similar to other
operators)
11 years ago
Roberto Ierusalimschy
218f358461
errors like 1e100 << "2" were giving wrong messages
11 years ago
Roberto Ierusalimschy
1ea2d20f74
first implementation of '<<', '>>', and '~' (bitwise not)
11 years ago
Roberto Ierusalimschy
c0edab0f6d
first implementation of bitwise operators '&' (band), '|' (bor),
and '~' (bxor)
11 years ago
Roberto Ierusalimschy
a948054a19
new order for binary operations (grouping them by type of result)
11 years ago
Roberto Ierusalimschy
af35c7f398
upvalues collected by reference count
11 years ago
Roberto Ierusalimschy
0df6635711
"fixed" objects kept in a separated list (instead of being kept in
'allgc' list with a bit marking them)
11 years ago
Roberto Ierusalimschy
f2043b7a58
correct error message for conversion errors from float to int
12 years ago
Roberto Ierusalimschy
b4be507578
new function 'luaT_trybinTM'
12 years ago
Roberto Ierusalimschy
a2f5c28a80
new operation '//' (integer division)
12 years ago
Roberto Ierusalimschy
9600c60df3
functions 'get_equalTM' and 'call_orderTM' moved to other files
to make 'lvm.c' smaller
12 years ago
Roberto Ierusalimschy
32bf6c9b27
functions 'traceexec', 'callTM', and 'call_binTM' moved to other
files to make 'lvm.c' a little smaller
12 years ago
Roberto Ierusalimschy
8f8665fffa
'ttypenv' -> 'ttnov'
12 years ago
Roberto Ierusalimschy
3b44821334
stricter control (using tag variants) over closure kinds (Lua x C)
14 years ago
Roberto Ierusalimschy
98816d0ce5
small problems with 'luaone.c'
14 years ago
Roberto Ierusalimschy
7dfa4cd655
first implementation of light C functions
15 years ago