aldanor / fast-float-rust

Super-fast float parser in Rust (now part of Rust core)
https://docs.rs/fast-float
Apache License 2.0
275 stars 20 forks source link

Add CI targets for 32-Bit and Big-Endian Architectures #23

Closed Alexhuszagh closed 3 years ago

Alexhuszagh commented 3 years ago

Cross, which is supported via actions-rs, has numerous big-endian and little-endian targets that should provide comprehensive coverage for unit-testing. I suggest the following targets, since they're relatively good smoke tests:

I've also had interesting results with math operations on ARMv7, which I'm unsure if they are due to Qemu emulation, soft-floats, or are actually representative of the architecture, so it's also been a useful smokescreen for some cases. I've never had an issue with my correct float parser with it, but I'd recommend it as a smokescreen as well, since it's a very popular architecture for smartphones.

Note: ARMv7, ARMv8-A (and all ARM architectures) can be run in big or little-endian mode, but are generally run in little-endian mode. These two architectures are very popular in smartphones (Qualcomm, Apple, etc.) ARMv7 is strictly 32-bit, but ARMv8 can be 32-bit or 64-bit. AArch64 is a 64-bit version of that. Both of these targets on Rust run in little-endian mode.

aldanor commented 3 years ago

Agree with above; in particular, I think BE was an important one to cover since there's some LE-specific logic in the parser.