Re: [Chicken-hackers] [PATCH] Emit C99 constants for +nan.0 and [+-]inf.0 `##core#float' nodes

2019-06-30 Thread Peter Bex
On Fri, Jun 28, 2019 at 10:50:51AM +1200, Evan Hanson wrote: > Hi John, > > On 2019-06-27 18:28, John Cowan wrote: > > Don't forget to cast them to double, however. > > Good point. Updated version attached. Thanks, pushed! Regarding negative zero, see my other patch. Cheers, Peter

Re: [Chicken-hackers] [PATCH] Emit C99 constants for +nan.0 and [+-]inf.0 `##core#float' nodes

2019-06-27 Thread John Cowan
Done; < https://bugs.call-cc.org/ticket/1627#ticket >. On Thu, Jun 27, 2019 at 10:26 PM Evan Hanson wrote: > On 2019-06-27 21:27, John Cowan wrote: > > No, you do. If a Schemer writes (/ 1.0 -0.0) the result must be > > -inf.0, not +inf.0. > > OK, but I think that's a separate issue, because

Re: [Chicken-hackers] [PATCH] Emit C99 constants for +nan.0 and [+-]inf.0 `##core#float' nodes

2019-06-27 Thread Evan Hanson
On 2019-06-27 21:27, John Cowan wrote: > No, you do. If a Schemer writes (/ 1.0 -0.0) the result must be > -inf.0, not +inf.0. OK, but I think that's a separate issue, because currently if a CHICKEN user writes (/ 1.0 -0.0) they get +inf.0. And -0.0 gets them 0.0. It sounds like this might be

Re: [Chicken-hackers] [PATCH] Emit C99 constants for +nan.0 and [+-]inf.0 `##core#float' nodes

2019-06-27 Thread John Cowan
No, you do. If a Schemer writes (/ 1.0 -0.0) the result must be -inf.0, not +inf.0. But that fact leads to a better way to compile a negative zero into C: (1.0 / (-INFINITY)). No unions needed. On Thu, Jun 27, 2019 at 6:50 PM Evan Hanson wrote: > Hi John, > > On 2019-06-27 18:28, John Cowan

Re: [Chicken-hackers] [PATCH] Emit C99 constants for +nan.0 and [+-]inf.0 `##core#float' nodes

2019-06-27 Thread Evan Hanson
Hi John, On 2019-06-27 18:28, John Cowan wrote: > Don't forget to cast them to double, however. Good point. Updated version attached. > To get a negative zero you need an initialized global variable: I'm not sure we need a negative zero here, do we? Evan >From

Re: [Chicken-hackers] [PATCH] Emit C99 constants for +nan.0 and [+-]inf.0 `##core#float' nodes

2019-06-27 Thread John Cowan
Don't forget to cast them to double, however. To get a negative zero you need an initialized global variable: double negative_zero = 1.0 / -INFINITY; and then negative_zero is the Right Thing. On Thu, Jun 27, 2019 at 5:20 PM Evan Hanson wrote: > Putting this here so it doesn't get lost. > >

[Chicken-hackers] [PATCH] Emit C99 constants for +nan.0 and [+-]inf.0 `##core#float' nodes

2019-06-27 Thread Evan Hanson
Putting this here so it doesn't get lost. Evan >From 8e226395197515fe5aac0ac6e0bf3a17a7584394 Mon Sep 17 00:00:00 2001 From: Evan Hanson Date: Thu, 27 Jun 2019 16:34:36 +1200 Subject: [PATCH] Emit C99 constants for +nan.0 and [+-]inf.0 `##core#float' nodes The unboxing pass added in 79cf7427