Adam Shirey created ARROW-9269: ---------------------------------- Summary: [Rust] Cargo.toml flag to disable SIMD for targeting stable Rust Key: ARROW-9269 URL: https://issues.apache.org/jira/browse/ARROW-9269 Project: Apache Arrow Issue Type: New Feature Components: Rust Affects Versions: 0.17.0, 0.16.0 Environment: WSL2 w/Ubuntu 18.0.4, rustc 1.44.1 stable Reporter: Adam Shirey
The Parquet Rust crate requires nightly Rust, apparently due to the use of packed_simd, which [is using some nightly features.|https://github.com/rust-lang/packed_simd/blob/54b19fb5905b9a6dcdcad7019e72c9067f0af2a4/src/lib.rs#L202]. After some digging around, I found that [PR 5269|https://github.com/apache/arrow/pull/5269/commits] / ARROW-6303 specifically calls for making SIMD optional, and it looks like this should be possible to use this crate in stable. According to [the changelog for the Cargo.toml|https://github.com/apache/arrow/pull/5269/commits/2d617e7358e2d18879a58037bfd41692392e0ce9], and based on the README for [Native Rust implementation of Apache Arrow|https://github.com/apache/arrow/blob/6299c25ffd579ba4773d7b7b4cbab9b86e0847f4/rust/arrow/README.md#simd-single-instruction-multiple-data], it looks like one can disable SIMD for Arrow. However, this doesn't apply to the Parquet crate. (I must admit that I'm not terribly familiar with the distinction between Arrow and Parquet - memory format vs disk format?) I tried disabling the feature in my Cargo.toml: {{[dependencies.parquet]}} {{version = "0.17"}} {{default-features = false}} And I also tried {{cargo build --no-default-features}}, but the Parquet crate seems to still require nightly. Maybe a similar change needs to be applied to the Parquet code? Is it possible to use the Parquet crate on stable Rust? If so, how? And by disabling SIMD, what are the (approximate) performance implications? -- This message was sent by Atlassian Jira (v8.3.4#803005)