Roberto Ierusalimschy
|
7b0b6b3b39
|
cannot use 'defined' inside a macro +
call to 'luaT_keydef' must be protected
|
2018-03-16 11:21:20 -03:00 |
|
Roberto Ierusalimschy
|
89da4168df
|
avoid functions named 'pack'
(name too common, may collide when doing 'onelua.c')
|
2018-03-16 11:18:18 -03:00 |
|
Roberto Ierusalimschy
|
6b01b6cf6a
|
'lu_int32' may not be 'int'
|
2018-03-12 09:39:03 -03:00 |
|
Roberto Ierusalimschy
|
e3388ebfad
|
more explicit casts when converting an integer to a random float
(to ensure computations are done with all bits)
|
2018-03-11 11:48:09 -03:00 |
|
Roberto Ierusalimschy
|
9e3db70482
|
details (casts between 'lua_Number' and 'double')
|
2018-03-09 16:24:45 -03:00 |
|
Roberto Ierusalimschy
|
dbec41f34c
|
random floats of different sizes get exactly needed number of random bits
(up to 64)
|
2018-03-09 16:23:39 -03:00 |
|
Roberto Ierusalimschy
|
0b3db69e41
|
slight simplification in 'xorshift128plus'
|
2018-03-09 12:05:13 -03:00 |
|
Roberto Ierusalimschy
|
80ae1c1c16
|
fairer projection of random integers into an integer interval
|
2018-03-09 11:56:25 -03:00 |
|
Roberto Ierusalimschy
|
40683b4934
|
added definition for LUA_MAXUNSIGNED
|
2018-03-09 11:56:02 -03:00 |
|
Roberto Ierusalimschy
|
6480e73599
|
details (avoid using non-C89 '//' comment)
|
2018-03-07 13:26:01 -03:00 |
|
Roberto Ierusalimschy
|
4a1612ff9b
|
new experimental syntax using reserved word 'undef'
|
2018-03-07 12:55:38 -03:00 |
|
Roberto Ierusalimschy
|
464658b16a
|
better modularization of the code for the REPL
|
2018-03-06 17:30:17 -03:00 |
|
Roberto Ierusalimschy
|
bdcde45d05
|
updated to use jump tables
|
2018-03-05 11:26:18 -03:00 |
|
Roberto Ierusalimschy
|
8b0434e5e6
|
both 'fTransfer' and 'nTransfer' may not fit in a 'char'
|
2018-03-05 11:15:32 -03:00 |
|
Roberto Ierusalimschy
|
8b0b675149
|
added casts (warnings in VS)
|
2018-03-05 11:15:04 -03:00 |
|
Roberto Ierusalimschy
|
8c429311a3
|
typo in comment
|
2018-03-05 11:13:55 -03:00 |
|
Roberto Ierusalimschy
|
66b7b075a6
|
'math.random' using the xorshift128+ algorithm
|
2018-03-05 11:07:48 -03:00 |
|
Roberto Ierusalimschy
|
62a392ff46
|
using jump tables when available
|
2018-03-02 15:59:19 -03:00 |
|
Roberto Ierusalimschy
|
893f382e94
|
Jump Table for the interpreter
|
2018-03-02 15:56:14 -03:00 |
|
Roberto Ierusalimschy
|
0eb10c6303
|
'LUA_USE_READLINE' moved to the make file
|
2018-03-02 15:31:51 -03:00 |
|
Roberto Ierusalimschy
|
00008b8ed0
|
back to one format per argument
|
2018-03-02 15:25:00 -03:00 |
|
Roberto Ierusalimschy
|
df49384516
|
year in copyright changed to 2018
|
2018-03-02 13:30:47 -03:00 |
|
Roberto Ierusalimschy
|
fbea553ca2
|
'lua_setiuservalue' removes value from the stack even in case of error
|
2018-02-27 17:01:55 -03:00 |
|
Roberto Ierusalimschy
|
34b00c16e2
|
removed compatibility code with older versions
|
2018-02-27 15:47:32 -03:00 |
|
Roberto Ierusalimschy
|
12110dec0e
|
module has been deprecated.
|
2018-02-27 15:46:26 -03:00 |
|
Roberto Ierusalimschy
|
4105cafb84
|
no more 'bitlib'
|
2018-02-27 15:27:30 -03:00 |
|
Roberto Ierusalimschy
|
76ff55750e
|
no optimizations in test mode + no more compat with 5.2 + a few more
options in comments
|
2018-02-27 15:24:23 -03:00 |
|
Roberto Ierusalimschy
|
b7edf5d2d8
|
metamethods for 'removekey'/'keyin'
|
2018-02-27 14:48:28 -03:00 |
|
Roberto Ierusalimschy
|
ef8263f81f
|
better names for macros for tags and types.
rttype -> rawtt; ttyperaw -> withvariant; ttype -> ttypetag;
tnov -> ttype
|
2018-02-26 11:16:05 -03:00 |
|
Roberto Ierusalimschy
|
2952bc5fc9
|
special compact representation for userdata with no user values
(a common case)
|
2018-02-26 10:35:03 -03:00 |
|
Roberto Ierusalimschy
|
38d3bc8909
|
using 'offsetof' to compute the size of parts of a structure
|
2018-02-25 10:40:00 -03:00 |
|
Roberto Ierusalimschy
|
75efc6722b
|
avoid variant tags with the same value of the original type
(to expose bugs more easily)
|
2018-02-25 09:52:32 -03:00 |
|
Roberto Ierusalimschy
|
d766e2ae17
|
first (parcial) implementation of 'keyin'/'removekey'
(still no metamethods, no raw verssions)
|
2018-02-25 09:48:16 -03:00 |
|
Roberto Ierusalimschy
|
f055a9dffd
|
added check in 'obj2gco' to prevent its use in non Lua-object pointers
(otherwise its cast is blind, casting any value given to it)
|
2018-02-25 09:43:52 -03:00 |
|
Roberto Ierusalimschy
|
4a7fe61806
|
in 'clearbykeys', clear keys of just-removed entries too
|
2018-02-23 10:21:27 -03:00 |
|
Roberto Ierusalimschy
|
9243c414d9
|
first version of empty entries in tables
(so that, in the future, tables can contain regular nil entries)
|
2018-02-23 10:16:18 -03:00 |
|
Roberto Ierusalimschy
|
477ca2fe8c
|
some reorganization in 'lobject.h'
(just moving stuff around)
|
2018-02-22 14:28:10 -03:00 |
|
Roberto Ierusalimschy
|
c72ac048b9
|
conditional jumps "deunified"
(if a jump table is used, the unification may harm jump prediction.)
|
2018-02-21 16:43:44 -03:00 |
|
Roberto Ierusalimschy
|
b03dddf9e4
|
removed coercion string->number in bitwise operations
(can be done with a Lua module)
|
2018-02-21 14:48:31 -03:00 |
|
Roberto Ierusalimschy
|
c80c7a49fd
|
details (comments)
|
2018-02-21 13:28:12 -03:00 |
|
Roberto Ierusalimschy
|
212095a601
|
new opcodes OP_GTI/OP_GEI
|
2018-02-21 12:49:32 -03:00 |
|
Roberto Ierusalimschy
|
c67603fafb
|
using new 'lua_newuserdatauv' instead of 'lua_newuserdata'
|
2018-02-21 10:48:44 -03:00 |
|
Roberto Ierusalimschy
|
06865aa01d
|
simpler implementation for 'LTintfloat'/'LEintfloat'
+ 'LTfloatint'/'LEfloatint'
|
2018-02-21 10:47:03 -03:00 |
|
Roberto Ierusalimschy
|
465b474899
|
small reorganization of 'luaV_flttointeger'/'luaV_tointeger'
|
2018-02-21 09:54:26 -03:00 |
|
Roberto Ierusalimschy
|
6353d619a5
|
detail (comment)
|
2018-02-20 17:52:50 -03:00 |
|
Roberto Ierusalimschy
|
ca6fe7449a
|
userdata can have multiple user values
|
2018-02-20 13:52:50 -03:00 |
|
Roberto Ierusalimschy
|
1afd5a152d
|
more generic way to handle 'gclist'
|
2018-02-19 17:06:56 -03:00 |
|
Roberto Ierusalimschy
|
422318f677
|
two new fields 'fTransfer'/'nTransfer' in 'lua_Debug' structure
(for information about values being given and returned in function calls)
|
2018-02-17 17:29:29 -02:00 |
|
Roberto Ierusalimschy
|
49dae52d08
|
correct way to check stack space for vararg functions
|
2018-02-17 17:20:00 -02:00 |
|
Roberto Ierusalimschy
|
104d249ffb
|
in return hook, 'top' must be corrected only if smaller than 'ci->top'.
(It may be larger when returning multiple values, and then it must
be larger to preserve that stack slice.)
|
2018-02-17 16:22:00 -02:00 |
|
Roberto Ierusalimschy
|
c7a8cba745
|
no more 'nfield' string
|
2018-02-15 16:06:24 -02:00 |
|
Roberto Ierusalimschy
|
0682fe8169
|
some simplifications/optimizations in returns from Lua functions
|
2018-02-15 13:34:29 -02:00 |
|
Roberto Ierusalimschy
|
b1379936cf
|
vararg back to '...' (but with another implementation)
new implementation should have zero overhead for non-vararg functions
|
2018-02-09 13:16:06 -02:00 |
|
Roberto Ierusalimschy
|
4e0de3a43c
|
details
|
2018-02-07 13:55:18 -02:00 |
|
Roberto Ierusalimschy
|
318a9a5859
|
new opcode 'PREPVARARG'
(avoids test for vararg function in all function calls)
|
2018-02-07 13:18:04 -02:00 |
|
Roberto Ierusalimschy
|
73d797ce7e
|
detail
(order of 'OT' and 'IT' bits corresponds with macro 'opmode')
|
2018-02-07 13:04:41 -02:00 |
|
Roberto Ierusalimschy
|
51280ef2ad
|
call hooks for Lua functions called by 'luaV_execute'
|
2018-02-06 17:16:56 -02:00 |
|
Roberto Ierusalimschy
|
fc3eaa2559
|
GC default mode for the stand-alone interpreter is generational mode
|
2018-02-06 13:32:36 -02:00 |
|
Roberto Ierusalimschy
|
daff7c3b4d
|
small corrections in generational mode
(cannot call finalizers in emergency collections +
should set everything before calling finalizers)
|
2018-02-05 15:14:54 -02:00 |
|
Roberto Ierusalimschy
|
a131eae925
|
default for minor collection intervals a little larger
|
2018-02-05 15:14:29 -02:00 |
|
Roberto Ierusalimschy
|
022abc301b
|
'gcemergency' should be zero before any memory allocation
|
2018-02-05 15:11:37 -02:00 |
|
Roberto Ierusalimschy
|
56e50e8bc5
|
'collectgarbage' returns old mode when changing mode
|
2018-02-05 15:10:52 -02:00 |
|
Roberto Ierusalimschy
|
90569630d6
|
detail
(uses a reserved-format name for an internal type in the registry)
|
2018-01-29 17:13:27 -02:00 |
|
Roberto Ierusalimschy
|
dc0ab1e8ca
|
warnings in VS (implicit casts from ptrdiff_t to int)
|
2018-01-29 14:21:35 -02:00 |
|
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 |
|