Roberto Ierusalimschy
|
6683f83b51
|
several details
|
2018-06-18 15:25:19 -03:00 |
|
Roberto Ierusalimschy
|
a314409dba
|
in generational mode, an emergency collection can turn any object black
during any memory allocation +
'luaT_getvarargs' may reallocate the stack, and therefore the top must
be correct.
|
2018-06-18 14:58:21 -03:00 |
|
Roberto Ierusalimschy
|
15ce8d0904
|
in generational mode, an emergency collection can turn any object black
during any memory allocation.
|
2018-06-18 14:57:20 -03:00 |
|
Roberto Ierusalimschy
|
b43300c14f
|
change in 'LUAI_DDEC' to allow variables to be static in 'onelua'
+ change in 'LUAMOD_API' as opening functions do not need to be global
|
2018-06-18 09:51:05 -03:00 |
|
Roberto Ierusalimschy
|
af70905246
|
no need to check whether libraries and host use the same kernel;
Lua should work correctly with several copies of the kernel
|
2018-06-18 09:08:10 -03:00 |
|
Roberto Ierusalimschy
|
b95e466218
|
new field 'nilvalue' in struct 'global_State' to avoid the use of
addresses of static variables
|
2018-06-15 16:31:22 -03:00 |
|
Roberto Ierusalimschy
|
d406d3d05f
|
removed unused macros 'isstackindex'/'api_checkstackindex' +
macro 'api_checkvalidindex' (used only once) expanded and removed
|
2018-06-15 14:30:52 -03:00 |
|
Roberto Ierusalimschy
|
b6780ee41b
|
detail (removed unused definition for 'LUA_QS')
|
2018-06-15 12:49:28 -03:00 |
|
Roberto Ierusalimschy
|
2c107e13a8
|
warning (comparison between signed and unsigned integers)
|
2018-06-15 11:18:40 -03:00 |
|
Roberto Ierusalimschy
|
6e600695f8
|
field 'sizearray' in struct 'Table' changed to 'alimit', which can
be used as a hint for '#t'
|
2018-06-15 11:14:20 -03:00 |
|
Roberto Ierusalimschy
|
06127927ff
|
new macro 'ispow2'
|
2018-06-15 11:13:45 -03:00 |
|
Roberto Ierusalimschy
|
aedcfb9414
|
type 'Rand64' may not be long long, so it should not use 'LL' in its
constants
|
2018-06-14 15:47:22 -03:00 |
|
Roberto Ierusalimschy
|
992b6d2712
|
no more 'TESTGRAYBIT' (to free this bit for real uses)
|
2018-06-11 11:19:50 -03:00 |
|
Roberto Ierusalimschy
|
588dfa4ce5
|
detail in comment
|
2018-06-08 16:07:27 -03:00 |
|
Roberto Ierusalimschy
|
6f2b8e21c4
|
added 'const' to 'Proto*' when possible
|
2018-06-08 16:06:59 -03:00 |
|
Roberto Ierusalimschy
|
c5dc521d65
|
added patch for bug 5.3.4-7
|
2018-06-08 13:23:18 -03:00 |
|
Roberto Ierusalimschy
|
505fc91222
|
no more 'luaO_nilobject' to avoid comparison of global variable addresses
(now uses static variables)
|
2018-06-01 14:40:38 -03:00 |
|
Roberto Ierusalimschy
|
fb8fa66136
|
no more 'luaH_emptyobject' and comparisons of addresses of global variables
(instead, use a different kind of nil to signal the fake entry returned
when a key is not found in a table)
|
2018-06-01 13:51:34 -03:00 |
|
Roberto Ierusalimschy
|
b397064955
|
avoid craches when loading tampered code with NULL as a string constant
|
2018-06-01 13:45:58 -03:00 |
|
Roberto Ierusalimschy
|
34aa0c5bd7
|
new macros 'likely'/'unlikely' with hints for jump predictions
(used only in errors for now)
|
2018-05-30 11:25:52 -03:00 |
|
Roberto Ierusalimschy
|
97e394ba18
|
macro 'luai_makeseed' now controls the whole process of making the seed
|
2018-05-29 15:02:51 -03:00 |
|
Roberto Ierusalimschy
|
950fbcb971
|
detail ('l_castU2S' should only be used over lua_Unsigned values)
|
2018-05-29 15:01:50 -03:00 |
|
Roberto Ierusalimschy
|
b2d4d06428
|
avoid possible overflows when checking sizes in 'string.unpack'
|
2018-05-25 10:39:32 -03:00 |
|
Roberto Ierusalimschy
|
3b8dba5279
|
added patches for two bugs (5.3.4-2 and 5.3.4-3)
|
2018-05-24 17:25:14 -03:00 |
|
Roberto Ierusalimschy
|
892aff2a07
|
avoid circular inclusion between ltm.h <-> lstate.h
|
2018-05-23 11:41:20 -03:00 |
|
Roberto Ierusalimschy
|
02ed0b2c30
|
in 'luaD_poscall', there is no need to compute 'firstResult' when 'nres==0'
|
2018-05-22 09:02:36 -03:00 |
|
Roberto Ierusalimschy
|
de53c2ec7e
|
using some weak "randomness" (time and memory address) to initialize
seeds for the PRNG
|
2018-05-16 08:27:59 -03:00 |
|
Roberto Ierusalimschy
|
80bd4a8940
|
correction on xoshiro256** algorithm
(should use state[1] instead of state[0] for output)
|
2018-05-09 11:54:37 -03:00 |
|
Roberto Ierusalimschy
|
3e7415e846
|
reorganization of '#if's for sellecting a type for 'Rand64' +
comments
|
2018-05-04 17:01:45 -03:00 |
|
Roberto Ierusalimschy
|
e64e20ac81
|
minimizing the code ran by 'vmfetch' + no more 'vra'
(the code is simpler without 'vra' and conversion is a no-op)
|
2018-05-02 15:17:59 -03:00 |
|
Roberto Ierusalimschy
|
deb807837c
|
'luaO_pushvfstring' does not need to reallocate stack
(less error cases in the API)
|
2018-04-25 13:26:20 -03:00 |
|
Roberto Ierusalimschy
|
26eb144541
|
no need to define 'luaP_opnames' in regular builds
|
2018-04-19 12:42:41 -03:00 |
|
Roberto Ierusalimschy
|
f9c3d6fdbe
|
use test mode to test the interpreter without jump tables
|
2018-04-11 13:49:36 -03:00 |
|
Roberto Ierusalimschy
|
762baf0548
|
detail (trim constants are unsigned)
|
2018-04-06 14:52:42 -03:00 |
|
Roberto Ierusalimschy
|
b8a04658b2
|
PRNG changed from 'xoroshiro128+' to 'xoshiro256**' + "I' renamed 'Rand64'
+ implementation can use integer types larger than 64 (or 32) bits
|
2018-04-06 12:41:29 -03:00 |
|
Roberto Ierusalimschy
|
b44787652b
|
using 'xoroshiro128+' for PRNG
(plus a rotate at the final result to have better lower bits)
|
2018-04-04 13:12:53 -03:00 |
|
Roberto Ierusalimschy
|
03c6a05ec8
|
no more nil-in-table
|
2018-04-04 11:23:41 -03:00 |
|
Roberto Ierusalimschy
|
3d0b5edfe4
|
using unsigned comparison in 'l_intfitsf' (avoids one comparison)
|
2018-04-02 14:52:07 -03:00 |
|
Roberto Ierusalimschy
|
8d50a998e3
|
definition for LUA_UNSIGNEDBITS (number of bits in a LUA_UNSIGNED)
|
2018-04-02 10:58:33 -03:00 |
|
Roberto Ierusalimschy
|
bdd10a08b1
|
in 'random', uses high-order bits instead of low-order
(better statistical properties)
|
2018-03-26 16:48:46 -03:00 |
|
Roberto Ierusalimschy
|
c5e3b2f814
|
in random/'project', remove the special case for "small" intervals;
it is slower than the general case.
|
2018-03-22 16:54:49 -03:00 |
|
Roberto Ierusalimschy
|
6486762463
|
missing LUAI_FUNC in prototype for 'luaK_patchgoto'
|
2018-03-19 17:03:44 -03:00 |
|
Roberto Ierusalimschy
|
4907444db9
|
'fTransfer' -> 'ftransfer' / 'nTransfer' -> 'ntransfer'
(keep the standard of names in lower case)
|
2018-03-16 12:33:34 -03:00 |
|
Roberto Ierusalimschy
|
c3cb31fa9a
|
some extra goodies for 'readline'
('rl_readline_name' and 'rl_inhibit_completion')
|
2018-03-16 11:23:08 -03:00 |
|
Roberto Ierusalimschy
|
0c7738240e
|
FALLTHROUGH comment must be last "statement"
(so it does not work when inside a block)
|
2018-03-16 11:22:09 -03:00 |
|
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 |
|