-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Since nightly-2024-02-06 , could not compile with --features 'simd-accel' #2748
Comments
This is more a report and a reference than a real bug, and I will be trying to make a pull request but anything simd-related is way above my knowledge. |
As documented in the README, I am considering just removing the In any case, I'm not tracking this issue here. There's an issue for it at the source: rust-lang/packed_simd#359 |
This feature causes nothing but problems and is frequently broken. The only optimization it was enabling were SIMD optimizations for transcoding. In particular, for UTF-16 transcoding. This is performed by the [`encoding_rs`](https://github.com/hsivonen/encoding_rs) crate, which specifically uses unstable portable SIMD APIs instead of the stable non-portable SIMD APIs. SIMD optimizations that apply to search have long been making use of stable APIs, and are automatically enabled when your target supports them. This is, IMO, the correct user experience and one that `encoding_rs` refuses to support. I'm done dealing with it, so transcoding will only use scalar code until the SIMD optimizations in `encoding_rs` work on stable. (This doesn't mean that `encoding_rs` has to change. This could also be fixed by stabilizing `std::simd`.) Fixes #2748
This feature causes nothing but problems and is frequently broken. The only optimization it was enabling were SIMD optimizations for transcoding. In particular, for UTF-16 transcoding. This is performed by the [`encoding_rs`](https://github.com/hsivonen/encoding_rs) crate, which specifically uses unstable portable SIMD APIs instead of the stable non-portable SIMD APIs. SIMD optimizations that apply to search have long been making use of stable APIs, and are automatically enabled when your target supports them. This is, IMO, the correct user experience and one that `encoding_rs` refuses to support. I'm done dealing with it, so transcoding will only use scalar code until the SIMD optimizations in `encoding_rs` work on stable. (This doesn't mean that `encoding_rs` has to change. This could also be fixed by stabilizing `std::simd`.) Fixes #2748
I ended up just removing |
Really nice ! Thanks for your time, and for your tools too. |
Please tick this box to confirm you have reviewed the above.
What version of ripgrep are you using?
6ebebb2 (current master HEAD, few commits after 14.1.0)
How did you install ripgrep?
Trying to compiling it from source
What operating system are you using ripgrep on?
Ubuntu 20.04.6 LTS
Describe your bug.
Cannot compile
What are the steps to reproduce the behavior?
RUSTUP_TOOLCHAIN=nightly-2024-02-06 cargo build --features 'simd-accel' fails
RUSTUP_TOOLCHAIN=nightly-2024-02-05 cargo build --features 'simd-accel' works
Because:
Then in later nightly version :
related: rust-lang/rust@ea37e80
rust-lang/rust#117372
I don't know if this is actually a bug.
What is the actual behavior?
Cannot compile
What is the expected behavior?
Can compile
The text was updated successfully, but these errors were encountered: