SIMD Adler32 does not compile on ARM
Closed this issue · 1 comments
As stated in the title, on ARM (e.g. Apple M1 in my case) the SIMD implementation of Adler32 does not compile due to missing bindings for some NEON instructions.
Minimal reproducible example:
import std/strutils, crunchy
echo adler32("test").toHex
Expected output:
045D01C1
Actual output:
/Users/edisile/.nimble/pkgs/crunchy-0.1.2/crunchy/adler32_simd.nim(156, 17) Error: undeclared identifier: 'vld1q_lane_u32' candidates (edit distance, scope distance); see '--spellSuggest': (2, 6): 'vst1q_lane_u32' [func declared in /Users/edisile/.nimble/pkgs/nimsimd-1.2.2/nimsimd/neon.nim(115, 6)]
Related:
- Pixie is also impacted by this issue, when compiling the following code the same error is triggered.
import pixie echo readImage("test.bmp")
- Pull request with the missing bindings for the nimsimd package: guzba/nimsimd#4
This has been fixed by merging and tagging guzba/nimsimd#4 as nimsimd 1.2.4 and then updating the Crunchy nimsimd dep to that version here: #7
This Crunchy fix has been tagged as 0.1.3
The Pixie fix is in progress here: treeform/pixie#526
Thanks again for reporting the issue and opening a PR with the missing bindings.