Roberto Ierusalimschy
|
e2b15aa21d
|
janitor work on casts
|
2018-01-28 13:13:26 -02:00 |
|
Roberto Ierusalimschy
|
89110986d7
|
bug in tailcall of vararg functions
(when adjusting missing parameters)
|
2018-01-28 11:39:52 -02:00 |
|
Roberto Ierusalimschy
|
53979dfe0d
|
calling a vararg function needs to check GC
(because it creates a new table)
|
2018-01-28 10:08:04 -02:00 |
|
Roberto Ierusalimschy
|
6710a2b0ef
|
detail (comment)
|
2018-01-28 10:07:53 -02:00 |
|
Roberto Ierusalimschy
|
5bd8d388de
|
OP_CONCAT does not move its result (to simplify its execution)
|
2018-01-27 14:56:33 -02:00 |
|
Roberto Ierusalimschy
|
28f215ecf8
|
comments
|
2018-01-18 14:24:31 -02:00 |
|
Roberto Ierusalimschy
|
d2fb34ac88
|
'OP_TAILCALL' calling C functions finishes the call and returns
(instead of waiting for following 'OP_RETURN')
|
2018-01-14 15:27:50 -02:00 |
|
Roberto Ierusalimschy
|
ab0a851db4
|
'luaD_tryfuncTM' can ensure it does not change the stack
|
2018-01-10 17:19:27 -02:00 |
|
Roberto Ierusalimschy
|
728ff94595
|
error handler in protected calls must be a function
|
2018-01-10 10:02:35 -02:00 |
|
Roberto Ierusalimschy
|
ad960095bf
|
avoid jumping into a variable scope (C++ does not allow that)
|
2018-01-09 12:23:40 -02:00 |
|
Roberto Ierusalimschy
|
33e3774f44
|
keep more opcode arguments byte-aligned
|
2018-01-09 09:24:12 -02:00 |
|
Roberto Ierusalimschy
|
a9295a2b8e
|
typos in comments
|
2017-12-30 18:46:18 -02:00 |
|
Roberto Ierusalimschy
|
c6fedc92f8
|
new command 'print' (to print literal strings) in mini-language
|
2017-12-29 13:59:37 -02:00 |
|
Roberto Ierusalimschy
|
68af7cc81a
|
another try with table resize.
(Old version was leaving some elements unanchored while allocating
new memory)
|
2017-12-29 13:58:23 -02:00 |
|
Roberto Ierusalimschy
|
28323aeaa6
|
by-one error when filling missing arguments in a tail call
|
2017-12-29 13:44:51 -02:00 |
|
Roberto Ierusalimschy
|
cf7eff45f3
|
keep control of stack top in Lua functions concentrated in 'luaV_execute'
|
2017-12-28 13:42:57 -02:00 |
|
Roberto Ierusalimschy
|
8691612f01
|
when calling a hook, cannot decrease 'ci->top' (to preserve stack
size if the stack is reallocated)
|
2017-12-28 12:17:09 -02:00 |
|
Roberto Ierusalimschy
|
f99f3c42ff
|
comment
|
2017-12-28 09:51:00 -02:00 |
|
Roberto Ierusalimschy
|
f360e7778b
|
assert cannot use instruction after the last
|
2017-12-22 14:43:59 -02:00 |
|
Roberto Ierusalimschy
|
4676f6599e
|
new macros 'isOT'/'isIT'
(plus exchanged parameters of OP_VARARG to make it similar to other
'isOT' instructions)
|
2017-12-22 12:16:46 -02:00 |
|
Roberto Ierusalimschy
|
1d5b885437
|
when running Lua code, there is no need to keep 'L->top' "correct";
set it only when needed.
|
2017-12-20 12:58:05 -02:00 |
|
Roberto Ierusalimschy
|
4dc0be950a
|
new macro 'isLuacode' (to distinguish regular Lua code from
hooks, where C code can run inside a Lua function).
|
2017-12-19 14:40:17 -02:00 |
|
Roberto Ierusalimschy
|
3153a41e33
|
no need to save 'pc' in case of allocation errors
(allocation errors do not call message handlers)
|
2017-12-19 14:18:04 -02:00 |
|
Roberto Ierusalimschy
|
d388c165ef
|
new opcodes 'FORLOOP1'/'FORPREP1' for "basic for" (integer variable
with increment of 1)
|
2017-12-18 15:53:50 -02:00 |
|
Roberto Ierusalimschy
|
ab07005568
|
new auxiliary function 'luaK_isKint' + removal of 'luaK_needclose',
which was not being used anywhere.
|
2017-12-18 13:44:44 -02:00 |
|
Roberto Ierusalimschy
|
7024f49c42
|
default now is compiling without compatibility options + smaller
stack size in debug mode (clang uses still more stack space when
debugging).
|
2017-12-18 11:01:49 -02:00 |
|
Roberto Ierusalimschy
|
2f6f6abeba
|
'rehash' -> 'tablerehash'
(to avoid name colisions when compiling Lua as a single file)
|
2017-12-18 11:00:57 -02:00 |
|
Roberto Ierusalimschy
|
3064edead2
|
details (cleaning uses of 'exp1')
|
2017-12-18 10:33:54 -02:00 |
|
Roberto Ierusalimschy
|
f8c1c1469a
|
some cleaning on signed opcode parameters
|
2017-12-15 16:53:48 -02:00 |
|
Roberto Ierusalimschy
|
4b6928e7f5
|
(1 << 31) with signed integer has undefined behavior in C
|
2017-12-15 16:35:22 -02:00 |
|
Roberto Ierusalimschy
|
b3f924bc69
|
'Proto->numparams' does not include vararg parameter
(one less subtraction when calling functions...)
|
2017-12-15 11:07:10 -02:00 |
|
Roberto Ierusalimschy
|
e001d5aea6
|
'VRELOCABLE' -> 'VRELOC'
|
2017-12-14 12:24:02 -02:00 |
|
Roberto Ierusalimschy
|
e752d84ed8
|
bug: memory-allocation error when resizing a table can leave it
in an inconsistent state.
|
2017-12-13 16:35:03 -02:00 |
|
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.)
|
2017-12-13 16:32:09 -02:00 |
|
Roberto Ierusalimschy
|
36cf8f3a3c
|
Code should not change the stack level after the initialization of a
string buffer.
|
2017-12-13 10:51:42 -02:00 |
|
Roberto Ierusalimschy
|
725c15a4ca
|
when shrinking stack, always shrinks the CI list.
(Stack overflow is not corelated to CI overflow anymore.)
|
2017-12-12 09:57:30 -02:00 |
|
Roberto Ierusalimschy
|
b077b20206
|
back to reallocation when resizing the string table.
(Not a good idea to explicitly allocate new memory when shrinking
something.)
|
2017-12-12 09:52:35 -02:00 |
|
Roberto Ierusalimschy
|
3cf340f676
|
allows memory-allocation errors when shrinking blocks
|
2017-12-11 16:55:31 -02:00 |
|
Roberto Ierusalimschy
|
7ad20af2cf
|
more freedom in handling memory-allocation errors (not all allocations
automatically raise an error), which allows fixing a bug when resizing
a table.
|
2017-12-11 16:53:53 -02:00 |
|
Roberto Ierusalimschy
|
bfb88e99e9
|
'luaD_growstack' cannot raise any errors when 'raiseerror' is
false (+ some comments)
|
2017-12-11 10:43:40 -02:00 |
|
Roberto Ierusalimschy
|
c5ebed7399
|
'luaM_shrinkvector' raises an error if it cannot shrink the block
(several parts of Lua use array size in protos as proxies for
number of valid elements)
|
2017-12-11 10:27:48 -02:00 |
|
Roberto Ierusalimschy
|
e663a24ab0
|
more freedom in handling memory-allocation errors (not all allocations
automatically raise an error), which allows fixing a bug when resizing
a table.
|
2017-12-08 15:28:25 -02:00 |
|
Roberto Ierusalimschy
|
40f823ec90
|
new C instruction "rawcheckstack" (to test failing in 'lua_checkstack')
|
2017-12-08 13:19:13 -02:00 |
|
Roberto Ierusalimschy
|
7622373033
|
using explicit tests for allocation overflow whenever possible
|
2017-12-07 16:59:52 -02:00 |
|
Roberto Ierusalimschy
|
46bc7f2bf7
|
detail (comment)
|
2017-12-07 16:53:33 -02:00 |
|
Roberto Ierusalimschy
|
cc01d46247
|
new test function 'T.allocount' to restrict number of allocations
before a memory-allocation error
|
2017-12-07 16:51:39 -02:00 |
|
Roberto Ierusalimschy
|
9fa1baf6de
|
opcodes for order and shift can use several metamethods,
so it is better to use a generic description + metamethod names
in some error messages shown without '__' prefix
|
2017-12-07 13:44:10 -02:00 |
|
Roberto Ierusalimschy
|
49dfaf7447
|
avoid using one function for different tasks (malloc, free, etc.)
|
2017-12-06 16:36:31 -02:00 |
|
Roberto Ierusalimschy
|
348fa1ca56
|
bug: 'lua_pushcclosure' should not call the garbage collector when
'n' is zero.
|
2017-12-06 16:20:28 -02:00 |
|
Roberto Ierusalimschy
|
ae11e37e53
|
bug: 'lua_pushcclosure' should not call the GC when 'n' is zero
|
2017-12-06 16:08:03 -02:00 |
|