b397064955
avoid craches when loading tampered code with NULL as a string constant
Roberto Ierusalimschy
2018-06-01 13:45:58 -03:00
34aa0c5bd7
new macros 'likely'/'unlikely' with hints for jump predictions (used only in errors for now)
Roberto Ierusalimschy
2018-05-30 11:25:52 -03:00
97e394ba18
macro 'luai_makeseed' now controls the whole process of making the seed
Roberto Ierusalimschy
2018-05-29 15:02:51 -03:00
950fbcb971
detail ('l_castU2S' should only be used over lua_Unsigned values)
Roberto Ierusalimschy
2018-05-29 15:01:50 -03:00
b2d4d06428
avoid possible overflows when checking sizes in 'string.unpack'
Roberto Ierusalimschy
2018-05-25 10:39:32 -03:00
3b8dba5279
added patches for two bugs (5.3.4-2 and 5.3.4-3)
Roberto Ierusalimschy
2018-05-24 17:25:14 -03:00
02ed0b2c30
in 'luaD_poscall', there is no need to compute 'firstResult' when 'nres==0'
Roberto Ierusalimschy
2018-05-22 09:02:36 -03:00
de53c2ec7e
using some weak "randomness" (time and memory address) to initialize seeds for the PRNG
Roberto Ierusalimschy
2018-05-16 08:27:59 -03:00
80bd4a8940
correction on xoshiro256** algorithm (should use state[1] instead of state[0] for output)
Roberto Ierusalimschy
2018-05-09 11:54:37 -03:00
3e7415e846
reorganization of '#if's for sellecting a type for 'Rand64' + comments
Roberto Ierusalimschy
2018-05-04 17:01:45 -03:00
e64e20ac81
minimizing the code ran by 'vmfetch' + no more 'vra' (the code is simpler without 'vra' and conversion is a no-op)
Roberto Ierusalimschy
2018-05-02 15:17:59 -03:00
deb807837c
'luaO_pushvfstring' does not need to reallocate stack (less error cases in the API)
Roberto Ierusalimschy
2018-04-25 13:26:20 -03:00
26eb144541
no need to define 'luaP_opnames' in regular builds
Roberto Ierusalimschy
2018-04-19 12:42:41 -03:00
f9c3d6fdbe
use test mode to test the interpreter without jump tables
Roberto Ierusalimschy
2018-04-11 13:49:36 -03:00
b8a04658b2
PRNG changed from 'xoroshiro128+' to 'xoshiro256**' + "I' renamed 'Rand64' + implementation can use integer types larger than 64 (or 32) bits
Roberto Ierusalimschy
2018-04-06 12:41:29 -03:00
b44787652b
using 'xoroshiro128+' for PRNG (plus a rotate at the final result to have better lower bits)
Roberto Ierusalimschy
2018-04-04 13:12:53 -03:00
03c6a05ec8
no more nil-in-table
Roberto Ierusalimschy
2018-04-04 11:23:41 -03:00
3d0b5edfe4
using unsigned comparison in 'l_intfitsf' (avoids one comparison)
Roberto Ierusalimschy
2018-04-02 14:52:07 -03:00
8d50a998e3
definition for LUA_UNSIGNEDBITS (number of bits in a LUA_UNSIGNED)
Roberto Ierusalimschy
2018-04-02 10:58:33 -03:00
bdd10a08b1
in 'random', uses high-order bits instead of low-order (better statistical properties)
Roberto Ierusalimschy
2018-03-26 16:48:46 -03:00
c5e3b2f814
in random/'project', remove the special case for "small" intervals; it is slower than the general case.
Roberto Ierusalimschy
2018-03-22 16:54:49 -03:00
6486762463
missing LUAI_FUNC in prototype for 'luaK_patchgoto'
Roberto Ierusalimschy
2018-03-19 17:03:44 -03:00
4907444db9
'fTransfer' -> 'ftransfer' / 'nTransfer' -> 'ntransfer' (keep the standard of names in lower case)
Roberto Ierusalimschy
2018-03-16 12:33:34 -03:00
c3cb31fa9a
some extra goodies for 'readline' ('rl_readline_name' and 'rl_inhibit_completion')
Roberto Ierusalimschy
2018-03-16 11:23:08 -03:00
0c7738240e
FALLTHROUGH comment must be last "statement" (so it does not work when inside a block)
Roberto Ierusalimschy
2018-03-16 11:22:09 -03:00
7b0b6b3b39
cannot use 'defined' inside a macro + call to 'luaT_keydef' must be protected
Roberto Ierusalimschy
2018-03-16 11:21:20 -03:00
89da4168df
avoid functions named 'pack' (name too common, may collide when doing 'onelua.c')
Roberto Ierusalimschy
2018-03-16 11:18:18 -03:00
6b01b6cf6a
'lu_int32' may not be 'int'
Roberto Ierusalimschy
2018-03-12 09:39:03 -03:00
e3388ebfad
more explicit casts when converting an integer to a random float (to ensure computations are done with all bits)
Roberto Ierusalimschy
2018-03-11 11:48:09 -03:00
9e3db70482
details (casts between 'lua_Number' and 'double')
Roberto Ierusalimschy
2018-03-09 16:24:45 -03:00
dbec41f34c
random floats of different sizes get exactly needed number of random bits (up to 64)
Roberto Ierusalimschy
2018-03-09 16:23:39 -03:00
0b3db69e41
slight simplification in 'xorshift128plus'
Roberto Ierusalimschy
2018-03-09 12:05:13 -03:00
80ae1c1c16
fairer projection of random integers into an integer interval
Roberto Ierusalimschy
2018-03-09 11:56:25 -03:00
40683b4934
added definition for LUA_MAXUNSIGNED
Roberto Ierusalimschy
2018-03-09 11:56:02 -03:00
12110dec0e
module has been deprecated.
Roberto Ierusalimschy
2018-02-27 15:46:26 -03:00
4105cafb84
no more 'bitlib'
Roberto Ierusalimschy
2018-02-27 15:27:30 -03:00
76ff55750e
no optimizations in test mode + no more compat with 5.2 + a few more options in comments
Roberto Ierusalimschy
2018-02-27 15:24:23 -03:00
b7edf5d2d8
metamethods for 'removekey'/'keyin'
Roberto Ierusalimschy
2018-02-27 14:48:28 -03:00
ef8263f81f
better names for macros for tags and types. rttype -> rawtt; ttyperaw -> withvariant; ttype -> ttypetag; tnov -> ttype
Roberto Ierusalimschy
2018-02-26 11:16:05 -03:00
2952bc5fc9
special compact representation for userdata with no user values (a common case)
Roberto Ierusalimschy
2018-02-26 10:35:03 -03:00
38d3bc8909
using 'offsetof' to compute the size of parts of a structure
Roberto Ierusalimschy
2018-02-25 10:40:00 -03:00
75efc6722b
avoid variant tags with the same value of the original type (to expose bugs more easily)
Roberto Ierusalimschy
2018-02-25 09:52:32 -03:00
d766e2ae17
first (parcial) implementation of 'keyin'/'removekey' (still no metamethods, no raw verssions)
Roberto Ierusalimschy
2018-02-25 09:48:16 -03:00
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)
Roberto Ierusalimschy
2018-02-25 09:43:52 -03:00
4a7fe61806
in 'clearbykeys', clear keys of just-removed entries too
Roberto Ierusalimschy
2018-02-23 10:21:27 -03:00
9243c414d9
first version of empty entries in tables (so that, in the future, tables can contain regular nil entries)
Roberto Ierusalimschy
2018-02-23 10:16:18 -03:00
477ca2fe8c
some reorganization in 'lobject.h' (just moving stuff around)
Roberto Ierusalimschy
2018-02-22 14:28:10 -03:00
c72ac048b9
conditional jumps "deunified" (if a jump table is used, the unification may harm jump prediction.)
Roberto Ierusalimschy
2018-02-21 16:43:44 -03:00
b03dddf9e4
removed coercion string->number in bitwise operations (can be done with a Lua module)
Roberto Ierusalimschy
2018-02-21 14:48:31 -03:00
ca6fe7449a
userdata can have multiple user values
Roberto Ierusalimschy
2018-02-20 13:52:50 -03:00
1afd5a152d
more generic way to handle 'gclist'
Roberto Ierusalimschy
2018-02-19 17:06:56 -03:00
422318f677
two new fields 'fTransfer'/'nTransfer' in 'lua_Debug' structure (for information about values being given and returned in function calls)
Roberto Ierusalimschy
2018-02-17 17:29:29 -02:00
49dae52d08
correct way to check stack space for vararg functions
Roberto Ierusalimschy
2018-02-17 17:20:00 -02:00
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.)
Roberto Ierusalimschy
2018-02-17 16:22:00 -02:00
c7a8cba745
no more 'nfield' string
Roberto Ierusalimschy
2018-02-15 16:06:24 -02:00
0682fe8169
some simplifications/optimizations in returns from Lua functions
Roberto Ierusalimschy
2018-02-15 13:34:29 -02:00
b1379936cf
vararg back to '...' (but with another implementation) new implementation should have zero overhead for non-vararg functions
Roberto Ierusalimschy
2018-02-09 13:16:06 -02:00
318a9a5859
new opcode 'PREPVARARG' (avoids test for vararg function in all function calls)
Roberto Ierusalimschy
2018-02-07 13:18:04 -02:00
73d797ce7e
detail (order of 'OT' and 'IT' bits corresponds with macro 'opmode')
Roberto Ierusalimschy
2018-02-07 13:04:41 -02:00
51280ef2ad
call hooks for Lua functions called by 'luaV_execute'
Roberto Ierusalimschy
2018-02-06 17:16:56 -02:00
fc3eaa2559
GC default mode for the stand-alone interpreter is generational mode
Roberto Ierusalimschy
2018-02-06 13:32:36 -02:00
daff7c3b4d
small corrections in generational mode (cannot call finalizers in emergency collections + should set everything before calling finalizers)
Roberto Ierusalimschy
2018-02-05 15:14:54 -02:00
a131eae925
default for minor collection intervals a little larger
Roberto Ierusalimschy
2018-02-05 15:14:29 -02:00
022abc301b
'gcemergency' should be zero before any memory allocation
Roberto Ierusalimschy
2018-02-05 15:11:37 -02:00
56e50e8bc5
'collectgarbage' returns old mode when changing mode
Roberto Ierusalimschy
2018-02-05 15:10:52 -02:00
90569630d6
detail (uses a reserved-format name for an internal type in the registry)
Roberto Ierusalimschy
2018-01-29 17:13:27 -02:00
dc0ab1e8ca
warnings in VS (implicit casts from ptrdiff_t to int)
Roberto Ierusalimschy
2018-01-29 14:21:35 -02:00
e2b15aa21d
janitor work on casts
Roberto Ierusalimschy
2018-01-28 13:13:26 -02:00
89110986d7
bug in tailcall of vararg functions (when adjusting missing parameters)
Roberto Ierusalimschy
2018-01-28 11:39:52 -02:00
53979dfe0d
calling a vararg function needs to check GC (because it creates a new table)
Roberto Ierusalimschy
2018-01-28 10:08:04 -02:00
d2fb34ac88
'OP_TAILCALL' calling C functions finishes the call and returns (instead of waiting for following 'OP_RETURN')
Roberto Ierusalimschy
2018-01-14 15:27:50 -02:00
ab0a851db4
'luaD_tryfuncTM' can ensure it does not change the stack
Roberto Ierusalimschy
2018-01-10 17:19:27 -02:00
728ff94595
error handler in protected calls must be a function
Roberto Ierusalimschy
2018-01-10 10:02:35 -02:00