lua: rewrite crc32 digest via Lua C API
As a result of recording <crc32:update> method or <digest.crc32> function wrong semantics is compiled (strictly saying, the resulting trace produces the different result from the one yielded by interpreter). The easiest solution is disabling JIT for particular functions, however, such approach drops the overall platform performance. Hence, the mentioned functions are rewritten line by line via Lua C API to avoid JIT misbehaviour. NO_DOC=no visible changes NO_CHANGELOG=no visible changes (cherry picked from commit 6b913198)
Showing
- src/lua/digest.c 81 additions, 0 deletionssrc/lua/digest.c
- src/lua/digest.lua 5 additions, 13 deletionssrc/lua/digest.lua
- test/app-luatest/digest_crc32_recording_test.lua 203 additions, 0 deletionstest/app-luatest/digest_crc32_recording_test.lua
- test/app/digest.result 1 addition, 1 deletiontest/app/digest.result
Please register or sign in to comment