aHash icon indicating copy to clipboard operation
aHash copied to clipboard

compile error: use of unstable library feature 'stdsimd'

Open Anton-4 opened this issue 1 year ago • 12 comments

Since the latest ahash 0.8.7 release I'm hitting a use of unstable library feature 'stdsimd' on compilation. We test on several architectures and operating systems and this only occurred on our macos m1 mac mini.

Full error:

 error[E0658]: use of unstable library feature 'stdsimd'
   --> /Users/m1ci/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ahash-0.8.7/src/operations.rs:124:24
    |
124 |     let res = unsafe { vaesmcq_u8(vaeseq_u8(transmute!(value), transmute!(0u128))) };
    |                        ^^^^^^^^^^
    |
    = note: see issue #48556 <https://github.com/rust-lang/rust/issues/48556> for more information

error[E0658]: use of unstable library feature 'stdsimd'
   --> /Users/m1ci/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ahash-0.8.7/src/operations.rs:124:35
    |
124 |     let res = unsafe { vaesmcq_u8(vaeseq_u8(transmute!(value), transmute!(0u128))) };
    |                                   ^^^^^^^^^
    |
    = note: see issue #48556 <https://github.com/rust-lang/rust/issues/48556> for more information

error[E0658]: use of unstable library feature 'stdsimd'
   --> /Users/m1ci/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ahash-0.8.7/src/operations.rs:154:24
    |
154 |     let res = unsafe { vaesimcq_u8(vaesdq_u8(transmute!(value), transmute!(0u128))) };
    |                        ^^^^^^^^^^^
    |
    = note: see issue #48556 <https://github.com/rust-lang/rust/issues/48556> for more information

error[E0658]: use of unstable library feature 'stdsimd'
   --> /Users/m1ci/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ahash-0.8.7/src/operations.rs:154:36
    |
154 |     let res = unsafe { vaesimcq_u8(vaesdq_u8(transmute!(value), transmute!(0u128))) };
    |                                    ^^^^^^^^^
    |
    = note: see issue #48556 <https://github.com/rust-lang/rust/issues/48556> for more information

For more information about this error, try `rustc --explain E0658`.
error: could not compile `ahash` (lib) due to 4 previous errors

Anton-4 avatar Dec 30 '23 15:12 Anton-4

@Amanieu It looks like this is caused by https://github.com/tkaitchuck/aHash/pull/183 Should I revert it or is there a better way?

tkaitchuck avatar Jan 02 '24 17:01 tkaitchuck

These functions are stable, are you using an older version of rustc?

Amanieu avatar Jan 02 '24 17:01 Amanieu

Oh right, I didn't think to check that. I'm on 1.71.1. Would it be possible to set the required minimum version with the rust-version field in the Cargo.toml? That should provide a nice error message in this case.

Anton-4 avatar Jan 02 '24 17:01 Anton-4

This was stabilized in 1.72.

Amanieu avatar Jan 02 '24 17:01 Amanieu

Proposed fix https://github.com/tkaitchuck/aHash/pull/196

alamb avatar Jan 04 '24 22:01 alamb

I am attempting to expand the presubmit checks to cover this https://github.com/tkaitchuck/aHash/pull/197 but so far it is still passing. What combination am I missing?

tkaitchuck avatar Jan 08 '24 15:01 tkaitchuck

What combination am I missing?

I left a suggestion: https://github.com/tkaitchuck/aHash/pull/197#issuecomment-1881497240

alamb avatar Jan 08 '24 17:01 alamb

@Anton-4 Can you clearify, you saw this when targeting aarch64-apple-darwin ? What args / rust flags were passed?

tkaitchuck avatar Jan 08 '24 23:01 tkaitchuck

For datafusion, the issue came from https://github.com/apache/arrow-datafusion/issues/8743

Tagging @ted-jiang who reproduced the issue

An example of the dependency datafusion has:

https://github.com/apache/arrow-datafusion/blob/e7cc04db68a05ce9d002de7d0c1be2644bf69c0c/datafusion/common/Cargo.toml#L41-L43

  • Located in a few other crates within datafusion too, but is essentially the same (version & features)

Jefffrey avatar Jan 09 '24 10:01 Jefffrey

Can you clearify, you saw this when targeting aarch64-apple-darwin ?

Yes indeed, I'll set up a minimal github repo with a full reproduction.

Anton-4 avatar Jan 09 '24 11:01 Anton-4

Files for minimal repro:

// rust-toolchain.toml 
[toolchain]
channel = "1.71.1"

// Cargo.toml 
[package]
name = "temp2"
version = "0.1.0"
edition = "2021"

[dependencies]
ahash="=0.8.7"

// src/main.rs 
fn main() {
    println!("Hello, world!");
}

run with cargo build --target=aarch64-apple-darwin. That produces the error for me on NixOS (x86_64 device) and also on macos 14 (m2 device).

Anton-4 avatar Jan 09 '24 14:01 Anton-4

FWIW, I'm running into this too (when trying to upgrade ahash in hickory-dns on my M1 with Rust 1.67).

djc avatar Jan 22 '24 14:01 djc

I'd greatly appreciate it if we could solve this problem without bumping the MSRV. I try to provide support for older versions of Rust, and Debian stable offers 1.63, which I'd like to continue to target.

bk2204 avatar Feb 06 '24 02:02 bk2204

This still happens on M1 with rust 1.78.0 nightly. Is there something I am missing ?

matthiasg avatar Feb 06 '24 14:02 matthiasg

Same for me here (M1):

  • rust 1.77.0-nightly - works fine
  • rust 1.78.0-nightly - error[E0635]: unknown feature stdsimd --> /Users/alexeykhan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ahash-0.7.7/src/lib.rs:33:42 | 33 | #![cfg_attr(feature = "stdsimd", feature(stdsimd))] | ^^^^^^^

For more information about this error, try rustc --explain E0635. error: could not compile ahash (lib) due to 1 previous error warning: build failed, waiting for other jobs to finish...

alexeykhan avatar Feb 07 '24 14:02 alexeykhan

I have the same issue in https://github.com/iesahin/xvc/actions/runs/7798376079/job/21266895940#step:9:1

iesahin avatar Feb 08 '24 10:02 iesahin

To anyone hitting this error on nightly: you need to update your nightly compiler.

Amanieu avatar Feb 11 '24 10:02 Amanieu

1.78.0-nightly is latest and not working with it :-(

undenuicap avatar Feb 12 '24 08:02 undenuicap

Are you using the latest version of ahash? Try cargo update.

Amanieu avatar Feb 12 '24 13:02 Amanieu

still doesn't compile on m1 with stable toolchain with this error

ozgrakkurt avatar Feb 16 '24 09:02 ozgrakkurt