tustvold opened a new issue, #3485:
URL: https://github.com/apache/arrow-rs/issues/3485

   **Is your feature request related to a problem or challenge? Please describe 
what you are trying to do.**
   <!--
   A clear and concise description of what the problem is. Ex. I'm always 
frustrated when [...] 
   (This section helps Arrow developers understand the context and *why* for 
this feature, in addition to  the *what*)
   -->
   
   I was messing around with simd-json and noticed that it fails to compile if 
there is no SIMD target_feature set, and wondered if we wanted to do something 
similar.
   
   Specifically I am thinking of **returning an error if compiling in release 
mode for x86 without sse3 enabled**. These instructions were first introduced 
in 2004 and all computers in the latest [steam hardware 
survey](https://store.steampowered.com/hwsurvey/Steam-Hardware-Software-Survey-Welcome-to-Steam)
 support them. They are, however, not enabled by default.
   
   **Describe the solution you'd like**
   <!--
   A clear and concise description of what you want to happen.
   -->
   
   Add the following to arrow-buffer
   
   ```
   #[cfg(all(target_arch = "x86_64", not(target_feature = "sse3")))]
   fn please_compile_with_simd_target_feature() -> ! {} // E.g. RUSTFLAGS="-C 
target-cpu=haswell"
   ```
   
   If the user compiles without any options set they will get
   
   ```
   error[E0308]: mismatched types
     --> arrow-buffer/src/lib.rs:21:49
      |
   21 | fn please_compile_with_simd_target_feature() -> ! {} // E.g. 
RUSTFLAGS="-C target-cpu=haswell"
      |    ---------------------------------------      ^ expected `!`, found 
`()`
      |    |
      |    implicitly returns `()` as its body has no tail or `return` 
expression
      |
      = note:   expected type `!`
              found unit type `()`
   
   For more information about this error, try `rustc --explain E0308`.
   ```
   
   The UX isn't fantastic, but I think it is better than what currently happens 
which is people silently get poor out of the box performance.
   
   **Describe alternatives you've considered**
   <!--
   A clear and concise description of any alternative solutions or features 
you've considered.
   -->
   
   We could not do this
   
   **Additional context**
   <!--
   Add any other context or screenshots about the feature request here.
   -->
   
   Tagging a few people as this will have downstream implications
   
   @alamb @andygrove @viirya @thinkharderdev @jhorstmann @Dandandan 
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscr...@arrow.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to