Commit d22a5e8
committed
Fix automatic legacy_cpu detection for polars rustler
Before:
$ mix ecto.setup
==> explorer
Compiling 29 files (.ex)
20:07:38.808 [debug] Copying NIF from cache and extracting to /home/nabijaczleweli/work/beambox-logbook/_build/dev/lib/explorer/priv/native/libexplorer-v0.10.1-nif-2.15-x86_64-unknown-linux-gnu.so.tar.gz
Illegal instruction
$ for f in fxsr sse sse2 ssse3 sse4_1 sse4_2 popcnt avx fma; do grep -m1 flags /proc/cpuinfo | grep -wq $f || echo no $f; done
no avx
no fma
$ mix deps.get
use_legacy: false
is_nil(use_legacy): false
needed_caps: ["fxsr", "sse", "sse2", "ssse3", "sse4_1", "sse4_2", "popcnt", "avx", "fma"]
Explorer.ComptimeUtils.cpu_with_all_caps?(needed_caps): false
use_legacy or (is_nil(use_legacy) and not Explorer.ComptimeUtils.cpu_with_all_caps?(needed_caps)): false
After:
$ mix ecto.setup
==> explorer
Compiling 29 files (.ex)
use_legacy: nil
is_nil(use_legacy): true
needed_caps: ["fxsr", "sse", "sse2", "ssse3", "sse4_1", "sse4_2", "popcnt", "avx", "fma"]
Explorer.ComptimeUtils.cpu_with_all_caps?(needed_caps): false
if is_nil(use_legacy), do: not Explorer.ComptimeUtils.cpu_with_all_caps?(needed_caps), else: use_legacy: true
20:32:03.923 [debug] Copying NIF from cache and extracting to /home/nabijaczleweli/work/beambox-logbook/_build/dev/lib/explorer/priv/native/libexplorer-v0.10.1-nif-2.15-x86_64-unknown-linux-gnu--legacy_cpu.so.tar.gz
Sponsored-by: https://beaverlabs.net1 parent 607ed7f commit d22a5e8
1 file changed
+10
-5
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
12 | 14 | | |
13 | 15 | | |
14 | 16 | | |
15 | | - | |
| 17 | + | |
16 | 18 | | |
| 19 | + | |
17 | 20 | | |
18 | 21 | | |
19 | 22 | | |
20 | 23 | | |
21 | 24 | | |
22 | 25 | | |
23 | 26 | | |
24 | | - | |
25 | | - | |
26 | | - | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
27 | 32 | | |
28 | 33 | | |
29 | 34 | | |
| |||
0 commit comments