-
Notifications
You must be signed in to change notification settings - Fork 207
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merge LuaJIT/LuaJIT/v2.1 with v2.1-agentzh #104
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Thanks to Javier Guerra Giraldez.
Reported by caohongqing.
It's rarely used and properly compiling it would be difficult.
10x faster on loop with t[#t+1] = x idiom. Also used by table.insert.
It's not 2005 anymore.
Up to 40% faster on hash-intensive benchmarks. With some ideas from Sokolov Yura.
Thanks to Stefan Hett.
Reported by jnozsc.
Reported by Changochen.
Reported by Arseny Vakhrushev. Analysis and fix contributed by Peter Cawley.
Reported by Jason Carr.
An unused guarded CONV int.num cannot be omitted in general.
Reported by Jason Carr.
This reverts commit 3ad7e2e. This issue has already been fixed in LuaJIT/LuaJIT.
…r_fastcmp() when macro LUAJIT_USE_VALGRIND is defined." This reverts commit 4e9ce0f. The fuction str_fastcmp has been dropped in LuaJIT/LuaJIT. Also remove note about this fix from README.md.
This reverts commit 4589430.
…`__attribute((aligned(N)))` and `#pragma`." This reverts commit 2d33927. Reverts state back to LuaJIT/v2.1 way of parsing attributes.
… crc32 when -msse4.2 is specified." This reverts commit 7923c63.
…the full string comparison on hash collisions. thanks Shuxin Yang for the patch." This reverts commit 0089509.
…ed." This partially reverts commit 6315a75 since lj_str_new no longer has the fast path.
This merge makes jit.prngstate unusable since the prng usage has changed in LuaJIT/LuaJIT. TODO: - Make jit.prngstate usable with the new prng functionality - Reinstate the string hashing optimisations
This change splits out the PRNG so that the PRNG used by the JIT compiler can be overridden without affecting the PRNG for the allocator. The API is changed to reflect the wider PRNG data, which is now 256 bits. jit.prngstate returns an array with 8 32-bit integers and similarly, it can be overridden with an array of up to 8 32-bit integers. Tests and README.md have been updated to reflect this change.
FYI, the failing check is due to the fix for LuaJIT/LuaJIT#603 that I mentioned in the description. |
I have created openresty/luajit2-test-suite#8 that fixes up the stackov test case to expect "error in error handling". As Mike mentioned in LuaJIT/LuaJIT#618, it is hard to avoid and hence won't be fixed. That should fix the one failing test. |
We found serious regressions on ARMv7 after merging this PR: |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is an initial merge of the LuaJIT/LuaJIT v2.1 branch into luajit2/v2.1-agentzh. This should bring in all of the bug fixes that were made in LuaJIT/LuaJIT. Some notes on the merge:
jit.prngstate
jit.prngstate
now takes (and returns) an array of 8 32-bit integers since the PRNG state has expanded in LuaJIT/LuaJIT.Regressions
The fixes for LuaJIT/LuaJIT#603 cause a regression in stackov.lua in luajit2-test-suite because a stack overflow prints
error in error handling
instead ofstack overflow
. I haven't been able to figure out a fix (looks like a breakage in unwinding but I'm not sure), but I didn't revert the patches because the bug it fixes is worse.String hashes
The upstream hashing scheme has been reworked to have multilevel hashes and there are now two hash functions,
hash_sparse
andhash_dense
, the former being the function luajit2 overrode with the crc32 variant. I'll propose a solution to merge the CRC32 functions with this scheme in a separate PR; in summary the solution will be to split the crc32 implementation so that the 128-byte random hashing scheme is used to override onlyhash_dense
and nothash_sparse
so thathash_sparse
has minimal slowdown.Fixes #101