Mike Pall
dd5032ed84
Fix lua_yield() from C hook.
...
Reported by Jason Carr.
2020-09-15 01:02:24 +02:00
Mike Pall
7e94e1c4f1
Merge branch 'master' into v2.1
2020-09-05 20:05:44 +02:00
Mike Pall
90e65514dd
Limit path length passed to C library loader.
2020-09-05 20:02:54 +02:00
Mike Pall
ff1e72acea
LJ_GC64: Always snapshot functions for non-base frames.
...
Reported by Arseny Vakhrushev.
Analysis and fix contributed by Peter Cawley.
2020-08-27 18:05:32 +02:00
Mike Pall
94d4abcca9
Merge branch 'master' into v2.1
2020-08-09 23:12:48 +02:00
Mike Pall
e296f56b82
Call error function on rethrow after trace exit.
2020-08-09 22:50:31 +02:00
Mike Pall
46a6d06dc5
Merge branch 'master' into v2.1
2020-08-09 18:19:19 +02:00
Mike Pall
12ab596997
Fix handling of errors during snapshot restore.
2020-08-09 18:08:38 +02:00
Mike Pall
10ddae75af
Merge branch 'master' into v2.1
2020-08-05 15:26:59 +02:00
Mike Pall
2211f6f960
ARM: Ensure relative GG_State element alignment differently.
...
Thanks to jojo59516 and dwing4g.
2020-08-05 15:21:00 +02:00
Mike Pall
98682accbb
Merge branch 'master' into v2.1
2020-08-05 14:17:41 +02:00
Mike Pall
c4b1e0feae
Fix Makefile dependencies.
...
Thanks to Stefanos Chaliasos.
2020-08-05 14:14:58 +02:00
Mike Pall
570e758ca7
Handle old OSX/iOS without getentropy().
2020-07-13 11:54:08 +02:00
Mike Pall
6097795367
Merge branch 'master' into v2.1
2020-07-12 14:33:01 +02:00
Mike Pall
53f82e6e2e
Fix frame traversal for __gc handler frames.
...
Reported by Changochen.
2020-07-12 14:30:34 +02:00
Mike Pall
384d6d56f4
Fix Clang build.
2020-07-02 01:24:39 +02:00
Mike Pall
18eef08fb8
Android/ARM: Fix build with recent NDK.
2020-07-02 01:23:41 +02:00
Mike Pall
e1e3034cf6
Fix compiler warning.
2020-06-25 15:19:48 +02:00
Mike Pall
5ef9e45238
Fix OSX build.
...
Reported by jnozsc.
2020-06-23 19:17:13 +02:00
Mike Pall
67654be56d
Follow-up fix for iOS build.
2020-06-23 11:28:46 +02:00
Mike Pall
2e2fb8f6b5
OSX/iOS: Handle iOS simulator and ARM64 Macs.
2020-06-23 03:24:40 +02:00
Mike Pall
471f8936cb
Fix pointer check for non-GC64 mode.
...
Thanks to Stefan Hett.
2020-06-23 03:14:35 +02:00
Mike Pall
17fb96d904
Windows: Fix NtAllocateVirtualMemory prototype.
2020-06-23 03:13:54 +02:00
Mike Pall
2e68e1fc18
Add jit.security().
2020-06-23 03:12:32 +02:00
Mike Pall
ff34b48ddd
Redesign and harden string interning.
...
Up to 40% faster on hash-intensive benchmarks.
With some ideas from Sokolov Yura.
2020-06-23 03:06:45 +02:00
Mike Pall
a44f53acf5
Use a securely seeded global PRNG for the VM.
...
It's not 2005 anymore.
2020-06-15 12:21:05 +02:00
Mike Pall
34e53736c6
Cleanup some arch defines and fix builds.
2020-06-15 11:23:04 +02:00
Mike Pall
d333b1a6fe
ARM: Implement FLOAD from GG_State.
2020-06-13 01:12:14 +02:00
Mike Pall
8ae5170cdc
Improve assertions.
2020-06-15 02:52:00 +02:00
Mike Pall
8b55054473
Merge branch 'master' into v2.1
2020-06-07 14:35:18 +02:00
Mike Pall
f5b0fff5a9
Fix debug.debug() for non-string errors.
2020-06-07 14:34:09 +02:00
Mike Pall
1a4ff13117
Optimize table length computation with hinting.
...
10x faster on loop with t[#t+1] = x idiom. Also used by table.insert.
2020-05-27 19:20:44 +02:00
Mike Pall
b2307c8ad8
Remove pow() splitting and cleanup backends.
2020-05-23 21:33:01 +02:00
Mike Pall
5655be4546
Cleanup math function compilation and fix inconsistencies.
2020-05-22 04:53:35 +02:00
Mike Pall
c5b8e9168b
Merge branch 'master' into v2.1
2020-05-22 03:30:55 +02:00
Mike Pall
2f3f07882f
Fix bytecode register allocation for comparisons.
2020-05-22 03:28:52 +02:00
Mike Pall
d75e26275b
Don't compile math.modf() anymore.
...
It's rarely used and properly compiling it would be difficult.
2020-05-22 03:13:57 +02:00
Mike Pall
03208c8162
Fix math.min()/math.max() inconsistencies.
2020-05-22 03:10:30 +02:00
Mike Pall
1e6e8aaa20
Fix narrowing of unary minus.
2020-05-22 02:45:03 +02:00
Mike Pall
0eddcbead2
Cleanup CPU detection and tuning for old CPUs.
2020-05-20 20:42:04 +02:00
Mike Pall
5bf0da3d7c
ARM64: Fix {AHUV}LOAD specialized to nil/false/true.
...
Reported by caohongqing.
2020-05-18 22:24:53 +02:00
Mike Pall
ae20998ff5
ARM, ARM64, PPC: Fix TSETR fallback.
...
Thanks to Javier Guerra Giraldez.
2020-05-18 22:06:50 +02:00
Mike Pall
322db02081
Remove unused file.
2020-05-08 14:00:19 +02:00
Mike Pall
d5e12d5174
Merge branch 'master' into v2.1
2020-05-08 14:00:07 +02:00
Mike Pall
cc4bbec483
FFI: Always fall back to metamethods for cdata length/concat.
...
Thanks to Egor Skriptunoff.
2020-05-08 13:50:41 +02:00
Mike Pall
92c011b511
Windows: Make actual use of internal allocator optimization.
...
Thanks to Nicholas Ham.
2020-05-05 12:32:55 +02:00
Mike Pall
99d1268823
Merge branch 'master' into v2.1
2020-04-28 17:54:03 +02:00
Mike Pall
179cf2eb84
Fix overflow check in unpack().
...
Thanks to HybridDog.
2020-04-28 17:52:28 +02:00
Mike Pall
f133649ced
Merge branch 'master' into v2.1
2020-04-28 16:53:32 +02:00
Mike Pall
db0b7ec194
Fix Windows make clean.
2020-04-28 16:52:28 +02:00
Mike Pall
9143e86498
FFI/ARM64: Fix pass-by-value struct calling conventions.
2020-03-20 14:10:18 +01:00
Mike Pall
fc1c4da3cc
Merge branch 'master' into v2.1
2020-03-20 13:38:05 +01:00
Mike Pall
e613105ca9
Fix write barrier for lua_setupvalue() and debug.setupvalue().
2020-03-20 13:35:49 +01:00
Mike Pall
0ad60ccbc3
Make string to number conversions fail on NUL char.
...
Contributed by Igor Munkin.
2020-02-13 17:39:51 +01:00
Mike Pall
d85d6b3c1b
Merge branch 'master' into v2.1
2020-02-02 18:20:35 +01:00
Mike Pall
522d2073da
x86/x64: Fix loop realignment.
2020-02-02 18:19:44 +01:00
Mike Pall
694d69aed9
Merge branch 'master' into v2.1
2020-01-22 02:39:26 +01:00
Mike Pall
62903bacf4
Fix C file generation in jit.bcsave.
...
Thanks to codicodi.
2020-01-22 02:37:21 +01:00
Mike Pall
87b111f0fe
Merge branch 'master' into v2.1
2020-01-20 23:34:21 +01:00
Mike Pall
38a5ed4b43
Bump copyright date.
2020-01-20 23:26:51 +01:00
Mike Pall
981ec8d2aa
Remove support for de-facto dead archs.
2020-01-20 22:56:47 +01:00
Mike Pall
54484e257f
Minor fixes.
2020-01-20 22:20:55 +01:00
Mike Pall
94d0b53004
MIPS: Add MIPS64 R6 port.
...
Contributed by Hua Zhang, YunQiang Su from Wave Computing,
and Radovan Birdic from RT-RK.
Sponsored by Wave Computing.
2020-01-20 22:15:45 +01:00
Mike Pall
dfa692b746
Fix string.char() recording with no arguments.
2020-01-14 11:08:42 +01:00
Mike Pall
e49863eda1
Followup fix for embedded bytecode loader.
2020-01-14 11:07:07 +01:00
Mike Pall
1357a25f81
Merge branch 'master' into v2.1
2020-01-13 14:50:30 +01:00
Mike Pall
8203399601
Fix embedded bytecode loader.
2020-01-13 14:28:43 +01:00
Mike Pall
0bee44c9dc
Properly fix pointer diff in string.find().
...
Thanks to Vyacheslav Egorov.
2019-12-21 13:52:47 +01:00
Mike Pall
bd00094c3b
x64: Enable LJ_GC64 mode by default.
2019-12-08 21:21:30 +01:00
Mike Pall
70f4b15ee4
FFI: Eliminate hardcoded string hashes.
2019-12-08 20:53:31 +01:00
Mike Pall
92fa45f9eb
Fix interaction between profiler hooks and finalizers.
...
Thanks to Julien Desgats.
2019-12-08 19:56:56 +01:00
Mike Pall
9600e4318e
Don't use STRREF for pointer diff in string.find().
...
Thanks to Sergey Ostanevich and Vyacheslav Egorov.
2019-12-08 19:54:21 +01:00
Mike Pall
2a7c200dc2
Merge branch 'master' into v2.1
2019-12-08 19:52:56 +01:00
Mike Pall
45a7e5073c
Fix tonumber("-0").
...
Reported by bluecheetah001.
2019-12-08 19:51:33 +01:00
Mike Pall
1d9a337de6
Merge branch 'master' into v2.1
2019-12-08 19:50:36 +01:00
Mike Pall
de48d00094
Fix hash table chaining (again).
...
Thanks to Peter Cawley.
2019-12-08 19:47:00 +01:00
Mike Pall
324aef08d9
Typo.
2019-12-08 19:45:07 +01:00
Mike Pall
41a25efc80
Fix declarations of _BitScanForward/_BitScanReverse.
...
Reported by Mumin Guler.
2019-12-08 19:42:49 +01:00
Mike Pall
46a1b268eb
Add stricter check for print() vs. tostring() shortcut.
2019-12-08 19:40:24 +01:00
Mike Pall
16e5605eec
Prevent integer overflow while parsing long strings.
2019-12-08 19:35:25 +01:00
Mike Pall
e0388e6c00
Fix stack check when recording BC_VARG.
...
Contributed by Yichun Zhang.
2019-12-08 19:32:27 +01:00
Mike Pall
1d1bac5a65
FFI: Add missing write barrier on C library index update.
...
Contributed by Yichun Zhang.
2019-12-08 19:32:16 +01:00
Mike Pall
478bcfe52a
FFI: Workaround for platform dlerror() returning NULL.
...
Contributed by mcclure.
2019-12-08 19:25:45 +01:00
Mike Pall
05898a8824
Merge branch 'master' into v2.1
2019-12-08 19:24:47 +01:00
Mike Pall
44382e833a
OSX: Use __thread attribute.
2019-12-08 19:22:37 +01:00
Mike Pall
8961a92dd1
OSX: Don't set a default MACOSX_DEPLOYMENT_TARGET.
2019-12-08 19:22:00 +01:00
Mike Pall
eba586854b
Build MinGW import library, too.
...
Thanks to Tarnyko.
2019-12-08 19:19:12 +01:00
Mike Pall
c43b6a9137
Fix MinGW make clean.
...
Reported by Shmuel Zeigerman.
2019-12-08 19:16:34 +01:00
Mike Pall
6e228a9cb6
Merge branch 'master' into v2.1
2019-12-08 18:58:50 +01:00
Mike Pall
c6c6e3b416
Update MSVC build script and docs.
2019-12-08 18:52:41 +01:00
Mike Pall
3ece3a3e3a
More recent MSVC is partially C99 compliant.
2019-12-08 18:43:12 +01:00
Mike Pall
e45b04f499
Merge branch 'master' into v2.1
2019-11-10 22:39:40 +01:00
Mike Pall
c4e15b457e
Fix narrowing of conversions to U32.
...
Reported by spacewander.
2019-11-10 22:37:42 +01:00
Mike Pall
8755e0b74b
Fix unsinking of 64 bit constants.
...
Contributed by Thibault Charbonnier.
2019-08-30 12:16:50 +02:00
Mike Pall
88d40b00c3
Merge branch 'master' into v2.1
2019-08-30 11:24:44 +02:00
Mike Pall
20ac817a74
Fix bytecode dump unpatching.
...
Reported by Christopher Oliver.
2019-08-30 11:07:45 +02:00
Mike Pall
2bde5c7c62
Merge branch 'master' into v2.1
2019-08-10 00:58:37 +02:00
Mike Pall
0cd643d7cf
Fix debug.getinfo() argument check.
...
Thanks to Sergey Ostanevich.
2019-08-10 00:54:41 +02:00
Mike Pall
b1915c3b6f
Merge branch 'master' into v2.1
2019-07-05 13:22:12 +02:00
Mike Pall
51e013934b
MIPS: Fix delay slot hint.
...
This is documentation only. Thanks to snyh.
2019-07-05 13:19:41 +02:00
Mike Pall
827916c67e
Merge branch 'master' into v2.1
2019-05-09 11:33:30 +02:00
Mike Pall
d4c0c6e17e
Fix TNEW load forwarding with instable types.
2019-05-09 11:33:03 +02:00
Mike Pall
178512fab9
Merge branch 'master' into v2.1
2019-04-29 18:04:47 +02:00
Mike Pall
9bd5a722be
ARM: Fix GCC 7 -Wimplicit-fallthrough warnings.
2019-04-29 18:02:50 +02:00
Mike Pall
5802ab56b6
ARM: Fix condition code check fusion.
...
Reported by Qingjun Wei.
2019-04-29 17:38:05 +02:00
Mike Pall
b33e3f2d44
ARM64: Avoid side-effects of constant rematerialization.
...
Thanks to Patrick Galizia.
2019-02-04 23:04:48 +01:00
Mike Pall
f0e865dd48
Improve luaL_addlstring().
...
Thanks to Domingo Alvarez Duarte.
2019-01-10 13:09:17 +01:00
Mike Pall
fc63c938b5
Fix os.date() for wider libc strftime() compatibility.
...
Thanks to Jesper Lundgren.
2019-01-10 12:47:28 +01:00
Mike Pall
c4f36ce565
Merge branch 'master' into v2.1
2019-01-10 12:37:40 +01:00
Mike Pall
61464b0a5b
Fix MinGW build.
...
Thanks to Victor Bombi.
2019-01-10 12:37:09 +01:00
Mike Pall
749e99ce2a
Merge branch 'master' into v2.1
2019-01-10 12:24:17 +01:00
Mike Pall
380e4409a7
Fix overflow of snapshot map offset.
...
Thanks to Yichun Zhang.
2019-01-10 12:19:30 +01:00
Mike Pall
e2cc89b190
Merge branch 'master' into v2.1
2019-01-10 12:02:31 +01:00
Mike Pall
3404183e23
Better detection of MinGW build.
2019-01-10 12:02:15 +01:00
Mike Pall
0a9ff94c4a
Actually implement maxirconst trace limit.
...
Suggested by spacewander.
2018-10-14 15:21:37 +02:00
Mike Pall
9c1b637898
MIPS/MIPS64: Fix TSETR barrier (again).
2018-10-14 15:12:59 +02:00
Mike Pall
646148e747
Fix memory probing allocator to check for valid end address, too.
2018-09-13 17:58:50 +02:00
Mike Pall
9da0653509
ARM64: Fix exit stub patching.
...
Contributed by Javier Guerra Giraldez.
2018-06-24 14:08:59 +02:00
Mike Pall
c785131ca5
ARM64: Fix write barrier in BC_USETS.
...
Contributed by Javier Guerra Giraldez.
2018-06-24 13:18:03 +02:00
Mike Pall
c3c54ce1ae
Windows: Add UWP support, part 1.
...
Contributed by Ben Pye.
2018-06-05 17:03:08 +02:00
Mike Pall
a5a89ab586
From Lua 5.3: assert() accepts any type of error object.
2018-06-05 12:23:56 +02:00
Mike Pall
55f7082324
x86: Disassemble FMA3 instructions.
...
Thanks to Alexander Nasonov.
2018-06-05 12:23:29 +02:00
Mike Pall
d36afcfea5
Merge branch 'master' into v2.1
2018-06-05 11:39:10 +02:00
Mike Pall
b025b01c5b
PPC/NetBSD: Fix endianess check.
...
Thanks to he32 and daurnimator.
2018-06-05 11:36:18 +02:00
Mike Pall
b708297aba
Merge branch 'master' into v2.1
2018-05-20 12:45:01 +02:00
Mike Pall
fb5e522fbc
x86/x64: Check for jcc when using xor r,r in emit_loadi().
...
Thanks to Peter Cawley.
2018-05-20 12:40:33 +02:00
Mike Pall
362f034c1b
Merge branch 'master' into v2.1
2018-05-20 12:28:10 +02:00
Mike Pall
f5d424afe8
FFI: Make FP to U64 conversions match JIT backend behavior.
2018-05-20 12:25:36 +02:00
Mike Pall
a90e7795ca
Merge branch 'master' into v2.1
2018-04-22 13:30:02 +02:00
Mike Pall
02b521981a
FFI: Add tonumber() specialization for failed conversions.
...
Contributed by Javier Guerra Giraldez.
2018-04-22 13:27:25 +02:00
Mike Pall
f3cf0d6e15
Give expected results for negative non-base-10 numbers in tonumber().
...
This was undefined in Lua 5.1, but it's defined in 5.2.
2018-04-22 13:14:28 +02:00
Mike Pall
66c1614828
Merge branch 'master' into v2.1
2018-02-27 23:18:32 +01:00
Mike Pall
046129dbdd
Fix rechaining of pseudo-resurrected string keys.
...
This is a serious bug. But extremely hard to reproduce, so it went
undetected for 8 years. One needs two resurrections with different
main nodes, which are both in a hash chain which gets relinked on
key insertion where the colliding node is in a non-main position. Phew.
Thanks to lbeiming.
2018-02-27 23:02:23 +01:00
Mike Pall
fddef92409
Merge branch 'master' into v2.1
2018-01-29 13:28:53 +01:00
Mike Pall
03cd5aa749
Clear stack after print_jit_status() in CLI.
...
Suggested by Hydroque.
2018-01-29 13:25:51 +01:00
Mike Pall
0bf46e1edf
Merge branch 'master' into v2.1
2018-01-29 13:19:30 +01:00
Mike Pall
d4ee803427
Fix GCC 7 -Wimplicit-fallthrough warnings.
2018-01-29 13:06:13 +01:00
Mike Pall
74c544d68c
Merge branch 'master' into v2.1
2018-01-29 12:53:42 +01:00
Mike Pall
b03a56f28e
FFI: Don't assert on #1LL (5.2 compatibility mode only).
...
Reported by Denis Golovan.
2018-01-29 12:47:08 +01:00
Mike Pall
8071aa4ad6
MIPS64: Fix soft-float +-0.0 vs. +-0.0 comparison.
...
Thanks to Stefan Pejic.
2018-01-29 12:12:29 +01:00
Mike Pall
9eaad8574f
Fix ARMv8 (32 bit subset) detection.
...
Thanks to Markus Oberhumber.
2018-01-18 12:24:36 +01:00
Mike Pall
430d9f8f7e
Fix string.format("%c", 0).
2018-01-14 14:11:59 +01:00
Mike Pall
58d0dde0a2
Fix IR_BUFPUT assembly.
...
Thanks to Peter Cawley.
2018-01-14 13:57:00 +01:00
Mike Pall
ea7071d3c3
MIPS64: Fix xpcall() error case.
...
Thanks to François Perrad and Stefan Pejic.
2017-11-18 12:25:35 +01:00
Mike Pall
d417ded179
ARM64: Fix xpcall() error case (really).
...
Thanks to François Perrad and Stefan Pejic.
2017-11-18 12:23:57 +01:00
Mike Pall
734a3fa32c
Merge branch 'master' into v2.1
2017-11-16 13:00:09 +01:00
Mike Pall
7dbf0b05f1
Fix saved bytecode encapsulated in ELF objects.
...
Thanks to Dimitry Andric.
2017-11-16 12:58:12 +01:00
Mike Pall
33082a6f47
ARM64: Fix xpcall() error case.
...
Thanks to Stefan Pejic.
2017-11-16 12:53:34 +01:00
Mike Pall
99cdfbf6a1
MIPS64: Fix register allocation in assembly of HREF.
...
Contributed by James Cowgill.
2017-11-08 12:54:03 +01:00
Mike Pall
06cd9fce7d
ARM64: Fix assembly of HREFK.
...
Reported by Jason Teplitz.
2017-11-08 12:53:48 +01:00