It's not a matter of bikeshedding, it's a matter of honesty. I can sort-of forgive Linux distros using 'i386
' to mean modern x86-32 hardware excluding actual 80386; apparently at some point they decided to drop actual i386 support, but didn't want to break compatibility by renaming the architecture. But Rust never had that excuse. If the Rust compiler developers only want to target processors newer than Pentium 4, they should have named that target pentium4
or i786
. Or just generically x86
or x86_32
, without committing to any particular sub-architecture.
I was bitten by this a while ago; I installed cargo through APT on a Pentium Pro laptop (as i686 as it gets), and it just threw a segmentation fault at me; rustup did the same. I had to spend several hours debugging why (Is it the package builder's environment leaking? Maybe an actual honest-to-$DEITY pointer bug?). If the target were clearly labelled pentium4
, I'd have found that regrettable, but at least honest. Right now, the name of the i686
target is a transparent lie. (I have scrapped that machine eventually, so it doesn't apply to me as much any more. But the general point still stands.)
By the way, the x87 FPU handles IEEE floats just fine.