Roberto Ierusalimschy
413a393e62
Stack indices changed to union's
That will allow to change pointers to offsets while reallocating
the stack.
2 years ago
Roberto Ierusalimschy
e500892e18
Optimization/simplification of 'getbaseline'
By producing absolute line information at regular intervals, a simple
division can compute the correct entry for a given instruction.
4 years ago
Roberto Ierusalimschy
949187b049
Optimizations for line hook
The function 'changedline' tries harder to avoid calling
'luaG_getfuncline' plus small changes in the use of 'L->oldpc'.
4 years ago
Roberto Ierusalimschy
4bd10b6fe8
Better error messages for calling non-callable objects
When available, use the calling code to find a suitable name for what
was being called; this is particularly useful for errors of non-callable
metamethods. This commit also improved the debug information for
order metamethods.
4 years ago
Roberto Ierusalimschy
a2195644d8
Fixed bug: invalid 'oldpc' when returning to a function
The field 'L->oldpc' is not always updated when control returns to a
function; an invalid value can seg. fault when computing 'changedline'.
(One example is an error in a finalizer; control can return to
'luaV_execute' without executing 'luaD_poscall'.) Instead of trying to
fix all possible corner cases, it seems safer to be resilient to invalid
values for 'oldpc'. Valid but wrong values at most cause an extra call
to a line hook.
4 years ago
Roberto Ierusalimschy
6d04537ea6
A to-be-closed variable must have a closable value (or be nil)
It is an error for a to-be-closed variable to have a non-closable
non-nil value when it is being closed. This situation does not seem to
be useful and often hints to an error. (Particularly in the C API, it is
easy to change a to-be-closed index by mistake.)
6 years ago
Roberto Ierusalimschy
e073cbc2e5
Better error messages for invalid operands in numeric 'for'
"Better" and similar to error messages for invalid function arguments.
*old message: 'for' limit must be a number
*new message: bad 'for' limit (number expected, got table)
6 years ago
Roberto Ierusalimschy
f99509581e
Removed extra information from RCS keyword strings
Version numbers and dates (mostly wrong) from RCS keyword strings
removed from all source files; only the file name are kept.
6 years ago
Roberto Ierusalimschy
6f2b8e21c4
added 'const' to 'Proto*' when possible
7 years ago
Roberto Ierusalimschy
e64e20ac81
minimizing the code ran by 'vmfetch' + no more 'vra'
(the code is simpler without 'vra' and conversion is a no-op)
7 years ago
Roberto Ierusalimschy
e2b15aa21d
janitor work on casts
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
6142e663e4
reuse of 'addinfo' by lexical errors
10 years ago
Roberto Ierusalimschy
0cf3b6495a
'ci_func' don't need to be exported
10 years ago
Roberto Ierusalimschy
ad20689feb
better error message for bitwise operators (they are not arithmetic...)
10 years ago
Roberto Ierusalimschy
fed236ca7f
detail (unknown lines are marked as -1, not 0)
11 years ago
Roberto Ierusalimschy
f2043b7a58
correct error message for conversion errors from float to int
12 years ago
Roberto Ierusalimschy
9b9becf384
added 'const' to parameters of 'luaG_concaterror'
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
217e67cb22
new type 'l_noret' for function that do not return
13 years ago
Roberto Ierusalimschy
3b44821334
stricter control (using tag variants) over closure kinds (Lua x C)
14 years ago
Roberto Ierusalimschy
2258ec6bc9
'getline' renamed to 'getfuncline' (to avoid problems with POSIX)
16 years ago
Roberto Ierusalimschy
d7bc346d7a
no more code checking
16 years ago
Roberto Ierusalimschy
8718fda9b2
added LUAI_FUNC to functions not in the API
20 years ago
Roberto Ierusalimschy
e8d4fe7236
new macro `lua_threadyield' + lock stuff in `luaconf.h' + details
21 years ago
Roberto Ierusalimschy
47fc57a252
`TObject' renamed to `TValue' + other name changes and better assertions
for incremental garbage collection
21 years ago
Roberto Ierusalimschy
fa26d294ae
new way to control `pc' of running functions
22 years ago
Roberto Ierusalimschy
43013b39cc
new representation for hooks (to allow asynchronous calls to sethook)
22 years ago
Roberto Ierusalimschy
6c283b2f4f
new simetric format for ABC instructions, to avoid exchanging operands
for `commutative' operators
23 years ago
Roberto Ierusalimschy
8e4ac679ff
use a linear count for count hook
23 years ago
Roberto Ierusalimschy
9998082839
external messages add their own extra information
23 years ago
Roberto Ierusalimschy
2e38c6ae5a
`luadebug.h' content now is included in `lua.h'
23 years ago
Roberto Ierusalimschy
a2fa48a570
new (old?) error handling scheme
23 years ago
Roberto Ierusalimschy
0417a4bb0b
new implementation for tailcalls and error handling
23 years ago
Roberto Ierusalimschy
44752fc9ce
hook count is quadratic
23 years ago
Roberto Ierusalimschy
39b2d58c39
new interface for debug hooks
23 years ago
Roberto Ierusalimschy
922f36a05b
details
23 years ago
Roberto Ierusalimschy
1dbe708aa8
new protocol for error handling
23 years ago
Roberto Ierusalimschy
b7a0503c1d
new format for error messages
23 years ago
Roberto Ierusalimschy
9a0f0dcc77
precompiler may create functions without `lineinfo'
23 years ago
Roberto Ierusalimschy
6c7334a9ac
line trace uses `savedpc' to save last `pc' seen
23 years ago
Roberto Ierusalimschy
801aaf37b1
simpler implementation for line information
23 years ago
Roberto Ierusalimschy
938092489b
erroneous objects may not live in the stack
23 years ago
Roberto Ierusalimschy
72659a0605
no more explicit support for wide-chars; too much troble...
23 years ago
Roberto Ierusalimschy
2a4afb97c8
new module lopcodes.c for tables describing opcodes
24 years ago
Roberto Ierusalimschy
0a1b1acdd3
details about opcode parameters
24 years ago
Roberto Ierusalimschy
65c289b046
details
24 years ago
Roberto Ierusalimschy
762d059a13
new implementation for the Virtual Machine
24 years ago
Roberto Ierusalimschy
39b7978329
first (big) step to support wide chars
24 years ago
Roberto Ierusalimschy
b3da4ee907
checking consistency of jumps.
24 years ago