Refactor Lua bitwise operations using explicit shim #957
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 to smooth the way for Lua 5.4 support (see #668 and #929), inspired by discussion here. The
bit32
Lua Rock actually tries to be a shim providing Lua 5.2-like functions to Lua 5.1, but it is problematic on newer Lua's that subsequently deprecated that module. It isn't that easy to supply a module when the VM is lying to you about whether the module is already builtin or not.This explicitly moves all out usage to a shim where we can handle how to shim each version on our own. This will now use
bit32
to shim Lua 5.1, but use the built in language operators in Lua 5.3+. These operations aren't technically 100% equivalent, but they work for what we are doing with them.