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)

Reply via email to