In the 2010-07-08 draft, this begins:

"The Rust type float is a machine-specific type equal to one of the
supported Rust floating-
point machine types (f32 or f64). It is the largest floating-point
type that is directly
supported by hardware on the target machine [...]"

On first reading, these two statements struck me as contradictory -
assuming x86 is the primary target architecture, the largest
floating-point type directly supported by hardware is 80-bit extended
precision.

I'm assuming that the second sentence restricts "floating point types"
to mean f32 and f64 only, but this seems like a shame. Loss of numeric
precision with no corresponding gain is going to hurt some potential
users; see for example William Kahan's classic paper,
http://www.eecs.berkeley.edu/~wkahan/JAVAhurt.pdf

Obviously, extended-precision support in Rust isn't going to be a
priority anytime soon, but I wondered if this section could be written
in a way that didn't specifically rule it out. For example:

"The Rust type float is a machine-specific type. It is the largest
floating-point type (supported by the compiler) that is directly
supported by hardware on the target machine [...]"

That would leave the door open for extended-precision (or even
quad-precision some day, if and when hardware appears) without forcing
it now when you have better things to do.

Would anything else in the spec break if float was not guaranteed to
be one of f32 or f64?

cheers
Mike
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to