On Saturday, 21 May 2016 at 17:58:49 UTC, Walter Bright wrote:
On 5/21/2016 2:26 AM, Tobias Müller wrote:
On Friday, 20 May 2016 at 22:22:57 UTC, Walter Bright wrote:
On 5/20/2016 5:36 AM, Tobias M wrote:
Still an authority, though.
If we're going to use the fallacy of appeal to authority, may
I present Kahan
who concurrently designed the IEEE 754 spec and the x87.
Actually cited this *because* of you mentioning Kahan several
times. And because
you said "The people who design these things are not fools,
and there are good
reasons for the way things are."
I meant two things by this:
1. Do the homework before disagreeing with someone who
literally wrote the book and designed the hardware for it.
2. Complaining that the x87 is not IEEE compliant, when the guy
that designed the x87 wrote the spec at the same time, suggests
a misunderstanding the spec. I.e. again, gotta do the homework
first.
Sorry but this is a misrepresentation. I never claimed that the
x87 doesn't conform to the IEEE standard. That's completely
missing the point. Again.
Dismissing several decades of FP designs, and every programming
language, as being "obviously wrong" and "insane" is an
extraordinary claim, and so requires extraordinary evidence.
After all, what would your first thought be when a sophomore
physics student tells you that Feynman got it all wrong? It's
good to revisit existing dogma now and then, and challenge the
underlying assumptions of it, but again, you gotta understand
the existing dogma all the way down first.
If you don't, you're very likely to miss something fundamental
and produce a design that is less usable.
The point is, that is IS possible to provide fairly reasonable
and consistent semantics within the existing standards (C, C++,
IEEE, ...). They provide a certain degree of freedom to
accomodate for different hardware, but this doesn't mean that
software should use this freedom to do arbitrary things.
Regarding the decades of FP design, the initial edition of K&R C
contained the following clause:
"Notice that all floats in an expression are converted to double;
all floating point arithmethic in C is done in double precision".
That passus was removed quite quickly because users complained
about it.