bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#42597: 27.1; (+ -0.0) returns +0.0 when compiled


From: Mattias Engdegård
Subject: bug#42597: 27.1; (+ -0.0) returns +0.0 when compiled
Date: Mon, 3 Aug 2020 17:36:03 +0200

29 juli 2020 kl. 15.35 skrev Alan Mackenzie <acm@muc.de>:

> This is an example of what happens when ignorant people rule the roost.
> -0.0 and +0.0 are identically the same thing.  It should not take a
> degree in mathematics (which I have) to realise this.  When you put
> mathematical nonsense into <whatever thing is producing -0.0> you cannot
> help but get nonsense back out.

Thanks Alan -- there are good arguments both for and against negative zero and 
I would happily discuss them over a little glass of something once it is 
possible to meet in person again. Now we don't have much choice since IEEE-754 
is what it is and we should have very strong reasons for making changes that 
conflict with that standard.

At the very least we should be consistent. The effort is small enough (first 
patch below, I went with the (* x 1) variant).

The code did contain a fair amount of obsolete and/or incorrect comments and 
decisions, some relating to bug#1334 which is no longer relevant (Emacs didn't 
have bignums at the time). Today, the N-arg semantics of +, - (except for N=1), 
*, min and max (but notably not /) are equivalent to the corresponding 
left-folds of binary operations, which helps a lot. The second patch cleans up 
and improves optimisation for arithmetic operations generally.

Attachment: 0001-Fix-byte-compilation-of-0.0-bug-42597.patch
Description: Binary data

Attachment: 0002-Clean-up-and-improve-compilation-of-arithmetic-opera.patch
Description: Binary data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]