* bug#5916: XFLOAT_DATA and signed zeroes @ 2010-04-09 23:39 Vincent Lefevre 2010-04-10 15:20 ` Stefan Monnier 2010-05-16 18:58 ` Glenn Morris 0 siblings, 2 replies; 8+ messages in thread From: Vincent Lefevre @ 2010-04-09 23:39 UTC (permalink / raw) To: 5916 Hi, I don't know whether there's really a bug (I haven't tested the trunk), but someone pointed a suspicious macro[*]. The change (on 2009-08-17) is here: http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=6f0c16bc45815337d520a9393f8de5f9c14a06d4 It is said: lisp.h (XFLOAT_DATA): Produce an rvalue by adding 0 to the value. However, adding 0 has another side effect on floats: the 0 is converted into +0.0 (due to the addition with a double), so that a -0.0 is transformed into a +0.0. Could someone try the following? (/ 1.0 (- 0.0)) The correct result should be -1.0e+INF (negative infinity). [*] http://groupes.codes-sources.com/article-emacs-lisp-sera-iee754-fut-0x-p0-toujours-470516.aspx -- Vincent Lefèvre <vincent@vinc17.net> - Web: <http://www.vinc17.net/> 100% accessible validated (X)HTML - Blog: <http://www.vinc17.net/blog/> Work: CR INRIA - computer arithmetic / Arénaire project (LIP, ENS-Lyon) ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#5916: XFLOAT_DATA and signed zeroes 2010-04-09 23:39 bug#5916: XFLOAT_DATA and signed zeroes Vincent Lefevre @ 2010-04-10 15:20 ` Stefan Monnier 2010-04-10 16:05 ` Andreas Schwab 2010-05-16 18:58 ` Glenn Morris 1 sibling, 1 reply; 8+ messages in thread From: Stefan Monnier @ 2010-04-10 15:20 UTC (permalink / raw) To: Vincent Lefevre; +Cc: 5916 > lisp.h (XFLOAT_DATA): Produce an rvalue by adding 0 to the value. > However, adding 0 has another side effect on floats: the 0 is > converted into +0.0 (due to the addition with a double), so that > a -0.0 is transformed into a +0.0. I guess we could/should make this "+0" conditional on some debugging option, since after all it's only needed to catch coding errors. Stefan ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#5916: XFLOAT_DATA and signed zeroes 2010-04-10 15:20 ` Stefan Monnier @ 2010-04-10 16:05 ` Andreas Schwab 2010-04-10 16:43 ` Vincent Lefevre 0 siblings, 1 reply; 8+ messages in thread From: Andreas Schwab @ 2010-04-10 16:05 UTC (permalink / raw) To: Stefan Monnier; +Cc: 5916, Vincent Lefevre You can also use the unary + to create an rvalue. Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#5916: XFLOAT_DATA and signed zeroes 2010-04-10 16:05 ` Andreas Schwab @ 2010-04-10 16:43 ` Vincent Lefevre 2010-04-10 17:25 ` Andreas Schwab 0 siblings, 1 reply; 8+ messages in thread From: Vincent Lefevre @ 2010-04-10 16:43 UTC (permalink / raw) To: Andreas Schwab; +Cc: 5916 On 2010-04-10 18:05:24 +0200, Andreas Schwab wrote: > You can also use the unary + to create an rvalue. MPFR uses: #define MPFR_VALUE_OF(x) (0 ? (x) : (x)) It was suggested by Wojtek Lerch and Tim Rentsch in comp.std.c. -- Vincent Lefèvre <vincent@vinc17.net> - Web: <http://www.vinc17.net/> 100% accessible validated (X)HTML - Blog: <http://www.vinc17.net/blog/> Work: CR INRIA - computer arithmetic / Arénaire project (LIP, ENS-Lyon) ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#5916: XFLOAT_DATA and signed zeroes 2010-04-10 16:43 ` Vincent Lefevre @ 2010-04-10 17:25 ` Andreas Schwab 0 siblings, 0 replies; 8+ messages in thread From: Andreas Schwab @ 2010-04-10 17:25 UTC (permalink / raw) To: Vincent Lefevre; +Cc: 5916 Vincent Lefevre <vincent@vinc17.net> writes: > MPFR uses: > > #define MPFR_VALUE_OF(x) (0 ? (x) : (x)) You need that if you want to handle more than just arithmetic types. Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#5916: XFLOAT_DATA and signed zeroes 2010-04-09 23:39 bug#5916: XFLOAT_DATA and signed zeroes Vincent Lefevre 2010-04-10 15:20 ` Stefan Monnier @ 2010-05-16 18:58 ` Glenn Morris 2010-05-16 20:11 ` Ken Raeburn 2010-05-16 20:12 ` Ken Raeburn 1 sibling, 2 replies; 8+ messages in thread From: Glenn Morris @ 2010-05-16 18:58 UTC (permalink / raw) To: raeburn; +Cc: 5916 > revno: 100306 [merge] > committer: Ken Raeburn <raeburn@raeburn.org> > branch nick: trunk > timestamp: Sat 2010-05-15 17:21:30 -0400 [...] > * src/lisp.h (XFLOAT_DATA): Use "0?x:x" to generate an rvalue. (bug#5916) > (LISP_MAKE_RVALUE) [!USE_LISP_UNION_TYPE && !__GNUC__]: Likewise. So can this bug be closed now? ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#5916: XFLOAT_DATA and signed zeroes 2010-05-16 18:58 ` Glenn Morris @ 2010-05-16 20:11 ` Ken Raeburn 2010-05-16 20:12 ` Ken Raeburn 1 sibling, 0 replies; 8+ messages in thread From: Ken Raeburn @ 2010-05-16 20:11 UTC (permalink / raw) To: Glenn Morris; +Cc: 5916 On May 16, 2010, at 14:58, Glenn Morris wrote: > So can this bug be closed now? Ah, yes... sorry, I forgot about that. Thanks for the reminder. Looking up how to do that now.... Ken ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#5916: XFLOAT_DATA and signed zeroes 2010-05-16 18:58 ` Glenn Morris 2010-05-16 20:11 ` Ken Raeburn @ 2010-05-16 20:12 ` Ken Raeburn 1 sibling, 0 replies; 8+ messages in thread From: Ken Raeburn @ 2010-05-16 20:12 UTC (permalink / raw) To: 5916-done Should be fixed on trunk by yesterday's checkin: >> revno: 100306 [merge] >> committer: Ken Raeburn <raeburn@raeburn.org> >> branch nick: trunk >> timestamp: Sat 2010-05-15 17:21:30 -0400 > [...] >> * src/lisp.h (XFLOAT_DATA): Use "0?x:x" to generate an rvalue. (bug#5916) >> (LISP_MAKE_RVALUE) [!USE_LISP_UNION_TYPE && !__GNUC__]: Likewise. ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2010-05-16 20:12 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-04-09 23:39 bug#5916: XFLOAT_DATA and signed zeroes Vincent Lefevre 2010-04-10 15:20 ` Stefan Monnier 2010-04-10 16:05 ` Andreas Schwab 2010-04-10 16:43 ` Vincent Lefevre 2010-04-10 17:25 ` Andreas Schwab 2010-05-16 18:58 ` Glenn Morris 2010-05-16 20:11 ` Ken Raeburn 2010-05-16 20:12 ` Ken Raeburn
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.