Re: Anyone knows this issue? std/math.d(2759): Error: number '0x1p-1024' is not representable

2015-06-20 Thread Iain Buclaw via Digitalmars-d
On 20 Jun 2015 11:35, Martin Nowak via Digitalmars-d 
digitalmars-d@puremagic.com wrote:

 On 06/20/2015 09:52 AM, Walter Bright wrote:
 
  Which C runtime are you using? The math functions in C runtimes are
  often inadequate.

 So we now call the host's C library to perform constant folding/CTFE of
exp?
 This is a point for Iain's proposal to use a high precision floating
 point implementation in the compiler to avoid machine/platform
differences.

I thought dmd used the C library implementations for all intrinsics via
CTFE, not just exp?

In any case, isn't the problem you are seeing related to the conversion of
string to float? Which again dmd is at the mercy of the C library
implementation to handle correctly.


Re: Anyone knows this issue? std/math.d(2759): Error: number '0x1p-1024' is not representable

2015-06-20 Thread Martin Nowak via Digitalmars-d
On 06/19/2015 06:54 PM, Andrei Alexandrescu wrote:
 This is happening on my older CentOS as well, it's a problem in the C
 library. I suggest we just version those tests. -- Andrei

Even more worrisome, I don't understand why dmd is compiling the
unittests at all.

Might be related to https://issues.dlang.org/show_bug.cgi?id=14431 or
https://issues.dlang.org/show_bug.cgi?id=14508.


Re: Anyone knows this issue? std/math.d(2759): Error: number '0x1p-1024' is not representable

2015-06-20 Thread Martin Nowak via Digitalmars-d
On 06/20/2015 09:52 AM, Walter Bright wrote:
 
 Which C runtime are you using? The math functions in C runtimes are
 often inadequate.

So we now call the host's C library to perform constant folding/CTFE of exp?
This is a point for Iain's proposal to use a high precision floating
point implementation in the compiler to avoid machine/platform differences.


Re: Anyone knows this issue? std/math.d(2759): Error: number '0x1p-1024' is not representable

2015-06-20 Thread Martin Nowak via Digitalmars-d
On 06/20/2015 02:00 PM, Martin Nowak wrote:
 On 06/20/2015 12:06 PM, Walter Bright wrote:
 On 6/20/2015 3:06 AM, Walter Bright wrote:
 Apparently we need to roll our own version of strtod() and put it in
 Port.

 We already do our own strtold(), so it should be straightforward.
 
 Thanks, I'll work on a fix.

I can't use the strtold_dm from the backend, b/c it's not available for
the other compilers, and AFAIU licensing doesn't allow me to move it to
the frontend.


Re: Anyone knows this issue? std/math.d(2759): Error: number '0x1p-1024' is not representable

2015-06-20 Thread Walter Bright via Digitalmars-d

On 6/19/2015 9:18 AM, Martin Nowak wrote:

I'm getting this error while trying to build the relase.

std/math.d(2759): Error: number '0x1p-1024' is not representable

I'm getting that while compiling a -m32 (X86) static release phobos
library, but I can't reproduce the error using the same command.
https://github.com/D-Programming-Language/phobos/blob/abb21ab9bcd3857f1567bfde11c2d5d385f5caf0/std/math.d#L2759

Don't even know why the unittests are compiled.



Which C runtime are you using? The math functions in C runtimes are often 
inadequate.


Re: Anyone knows this issue? std/math.d(2759): Error: number '0x1p-1024' is not representable

2015-06-20 Thread Martin Nowak via Digitalmars-d
On 06/20/2015 09:52 AM, Walter Bright wrote:
 Which C runtime are you using? The math functions in C runtimes are
 often inadequate.


Debian 7.4, there is nothing I can do to avoid glibc.


Re: Anyone knows this issue? std/math.d(2759): Error: number '0x1p-1024' is not representable

2015-06-20 Thread Walter Bright via Digitalmars-d

On 6/20/2015 3:06 AM, Walter Bright wrote:

Apparently we need to roll our own version of strtod() and put it in Port.


We already do our own strtold(), so it should be straightforward.


Re: Anyone knows this issue? std/math.d(2759): Error: number '0x1p-1024' is not representable

2015-06-20 Thread Martin Nowak via Digitalmars-d
On 06/20/2015 12:06 PM, Walter Bright wrote:
 On 6/20/2015 3:06 AM, Walter Bright wrote:
 Apparently we need to roll our own version of strtod() and put it in
 Port.
 
 We already do our own strtold(), so it should be straightforward.

Thanks, I'll work on a fix.


Re: Anyone knows this issue? std/math.d(2759): Error: number '0x1p-1024' is not representable

2015-06-20 Thread Martin Nowak via Digitalmars-d
On 06/20/2015 01:35 PM, Iain Buclaw via Digitalmars-d wrote:
 Can we make this a boolean check removing the need for me to explicitly set
 errno?

The function returns a float, so errno seems like the better choice.


Re: Anyone knows this issue? std/math.d(2759): Error: number '0x1p-1024' is not representable

2015-06-20 Thread Walter Bright via Digitalmars-d

On 6/20/2015 2:48 AM, Iain Buclaw via Digitalmars-d wrote:


On 20 Jun 2015 11:35, Martin Nowak via Digitalmars-d
digitalmars-d@puremagic.com mailto:digitalmars-d@puremagic.com wrote:
 
  On 06/20/2015 09:52 AM, Walter Bright wrote:
  
   Which C runtime are you using? The math functions in C runtimes are
   often inadequate.
 
  So we now call the host's C library to perform constant folding/CTFE of exp?
  This is a point for Iain's proposal to use a high precision floating
  point implementation in the compiler to avoid machine/platform differences.

I thought dmd used the C library implementations for all intrinsics via CTFE,
not just exp?

In any case, isn't the problem you are seeing related to the conversion of
string to float? Which again dmd is at the mercy of the C library implementation
to handle correctly.



The code is the following, in lexer.c:

  errno = 0;
  (void)Port::strtod((char *)stringbuffer.data, NULL);
  if (errno == ERANGE)
  {
const char *suffix = (result == TOKfloat32v || result == TOKimaginary32v) ? 
f : ;
error(scanloc, number '%s%s' is not representable, (char 
*)stringbuffer.data, suffix);

  }

The point of the Port:: code is to correct for inadequacies of various C 
standard library implementations, in this case Debian 7.4.


Apparently we need to roll our own version of strtod() and put it in Port.


Re: Anyone knows this issue? std/math.d(2759): Error: number '0x1p-1024' is not representable

2015-06-20 Thread Iain Buclaw via Digitalmars-d
On 20 June 2015 at 12:06, Walter Bright via Digitalmars-d 
digitalmars-d@puremagic.com wrote:

 On 6/20/2015 2:48 AM, Iain Buclaw via Digitalmars-d wrote:


 On 20 Jun 2015 11:35, Martin Nowak via Digitalmars-d
 digitalmars-d@puremagic.com mailto:digitalmars-d@puremagic.com wrote:
  
   On 06/20/2015 09:52 AM, Walter Bright wrote:
   
Which C runtime are you using? The math functions in C runtimes are
often inadequate.
  
   So we now call the host's C library to perform constant folding/CTFE
 of exp?
   This is a point for Iain's proposal to use a high precision floating
   point implementation in the compiler to avoid machine/platform
 differences.

 I thought dmd used the C library implementations for all intrinsics via
 CTFE,
 not just exp?

 In any case, isn't the problem you are seeing related to the conversion of
 string to float? Which again dmd is at the mercy of the C library
 implementation
 to handle correctly.


 The code is the following, in lexer.c:

   errno = 0;
   (void)Port::strtod((char *)stringbuffer.data, NULL);
   if (errno == ERANGE)


Ah yes, that brings back memories of fixing GDC to set errno = ERANGE if
casting the result from 160bits down returns Infinity.

Can we make this a boolean check removing the need for me to explicitly set
errno?


Re: Anyone knows this issue? std/math.d(2759): Error: number '0x1p-1024' is not representable

2015-06-20 Thread Andrei Alexandrescu via Digitalmars-d

On 6/20/15 2:30 AM, Martin Nowak wrote:

On 06/19/2015 06:54 PM, Andrei Alexandrescu wrote:

This is happening on my older CentOS as well, it's a problem in the C
library. I suggest we just version those tests. -- Andrei


Even more worrisome, I don't understand why dmd is compiling the
unittests at all.


I think it's just tokenizing them that triggers the errors. -- Andrei



Re: Anyone knows this issue? std/math.d(2759): Error: number '0x1p-1024' is not representable

2015-06-20 Thread Walter Bright via Digitalmars-d

On 6/20/2015 5:16 AM, Martin Nowak wrote:

On 06/20/2015 02:00 PM, Martin Nowak wrote:

On 06/20/2015 12:06 PM, Walter Bright wrote:

On 6/20/2015 3:06 AM, Walter Bright wrote:

Apparently we need to roll our own version of strtod() and put it in
Port.


We already do our own strtold(), so it should be straightforward.


Thanks, I'll work on a fix.


I can't use the strtold_dm from the backend, b/c it's not available for
the other compilers, and AFAIU licensing doesn't allow me to move it to
the frontend.



Ironically, this just appeared:

https://www.reddit.com/r/programming/comments/3aif1a/visual_c_strtod_still_broken/


Re: Anyone knows this issue? std/math.d(2759): Error: number '0x1p-1024' is not representable

2015-06-20 Thread Iain Buclaw via Digitalmars-d
On 20 June 2015 at 14:03, Martin Nowak via Digitalmars-d 
digitalmars-d@puremagic.com wrote:

 On 06/20/2015 01:35 PM, Iain Buclaw via Digitalmars-d wrote:
  Can we make this a boolean check removing the need for me to explicitly
 set
  errno?

 The function returns a float, so errno seems like the better choice.


It's at this point which I say it's a longdouble for GDC. Incase I need to
remind people that there are no uses of native FP whatsoever in my
compiler. :-)


Re: Anyone knows this issue? std/math.d(2759): Error: number '0x1p-1024' is not representable

2015-06-20 Thread Walter Bright via Digitalmars-d

On 6/20/2015 5:16 AM, Martin Nowak wrote:

I can't use the strtold_dm from the backend, b/c it's not available for
the other compilers, and AFAIU licensing doesn't allow me to move it to
the frontend.


Hmm. Perhaps google for similar code that would be available? Or submit a bug 
report to the Debian folks?




Re: Anyone knows this issue? std/math.d(2759): Error: number '0x1p-1024' is not representable

2015-06-20 Thread Martin Nowak via Digitalmars-d

On Saturday, 20 June 2015 at 17:04:48 UTC, Walter Bright wrote:

On 6/20/2015 5:16 AM, Martin Nowak wrote:
I can't use the strtold_dm from the backend, b/c it's not 
available for
the other compilers, and AFAIU licensing doesn't allow me to 
move it to

the frontend.


Hmm. Perhaps google for similar code that would be available?


Might work, as the issue dates back to 2013, I'd say we skip it 
for this release and fix it independently.





Re: Anyone knows this issue? std/math.d(2759): Error: number '0x1p-1024' is not representable

2015-06-19 Thread John Colvin via Digitalmars-d

On Friday, 19 June 2015 at 16:19:05 UTC, Martin Nowak wrote:

I'm getting this error while trying to build the relase.

std/math.d(2759): Error: number '0x1p-1024' is not representable

I'm getting that while compiling a -m32 (X86) static release 
phobos

library, but I can't reproduce the error using the same command.
https://github.com/D-Programming-Language/phobos/blob/abb21ab9bcd3857f1567bfde11c2d5d385f5caf0/std/math.d#L2759

Don't even know why the unittests are compiled.


See http://forum.dlang.org/post/mjjfjr$nlk$1...@digitalmars.com and 
http://forum.dlang.org/post/fbkyfjfofwaoitaxd...@forum.dlang.org


Re: Anyone knows this issue? std/math.d(2759): Error: number '0x1p-1024' is not representable

2015-06-19 Thread Andrei Alexandrescu via Digitalmars-d

On 6/19/15 9:18 AM, Martin Nowak wrote:

I'm getting this error while trying to build the relase.

std/math.d(2759): Error: number '0x1p-1024' is not representable

I'm getting that while compiling a -m32 (X86) static release phobos
library, but I can't reproduce the error using the same command.
https://github.com/D-Programming-Language/phobos/blob/abb21ab9bcd3857f1567bfde11c2d5d385f5caf0/std/math.d#L2759

Don't even know why the unittests are compiled.


This is happening on my older CentOS as well, it's a problem in the C 
library. I suggest we just version those tests. -- Andrei




Anyone knows this issue? std/math.d(2759): Error: number '0x1p-1024' is not representable

2015-06-19 Thread Martin Nowak via Digitalmars-d
I'm getting this error while trying to build the relase.

std/math.d(2759): Error: number '0x1p-1024' is not representable

I'm getting that while compiling a -m32 (X86) static release phobos
library, but I can't reproduce the error using the same command.
https://github.com/D-Programming-Language/phobos/blob/abb21ab9bcd3857f1567bfde11c2d5d385f5caf0/std/math.d#L2759

Don't even know why the unittests are compiled.


Re: Anyone knows this issue? std/math.d(2759): Error: number '0x1p-1024' is not representable

2015-06-19 Thread Andrei Alexandrescu via Digitalmars-d

On 6/19/15 9:34 AM, John Colvin wrote:

On Friday, 19 June 2015 at 16:19:05 UTC, Martin Nowak wrote:

I'm getting this error while trying to build the relase.

std/math.d(2759): Error: number '0x1p-1024' is not representable

I'm getting that while compiling a -m32 (X86) static release phobos
library, but I can't reproduce the error using the same command.
https://github.com/D-Programming-Language/phobos/blob/abb21ab9bcd3857f1567bfde11c2d5d385f5caf0/std/math.d#L2759


Don't even know why the unittests are compiled.


See http://forum.dlang.org/post/mjjfjr$nlk$1...@digitalmars.com and
http://forum.dlang.org/post/fbkyfjfofwaoitaxd...@forum.dlang.org


Links taken from the new forum interface seem useless. Neither of these 
go nowhere relevant (nor does the one posted by Martin). I'm using the 
vertical split layout if that matters.


In related news: the fact that I need to point to the post I want to see 
with Ctrl-Up and Ctrl-Down, and THEN press Enter like an idiot to see it 
is definitely not working out for me. I understand it saves bandwidth, 
but if most bandwidth savings come from nobody using the interface then 
it's no gain to anyone. Please have the message viewer follow the list 
focus.


cc Vladimir


Thanks,

Andrei



Re: Anyone knows this issue? std/math.d(2759): Error: number '0x1p-1024' is not representable

2015-06-19 Thread John Colvin via Digitalmars-d
On Friday, 19 June 2015 at 16:59:20 UTC, Andrei Alexandrescu 
wrote:

On 6/19/15 9:34 AM, John Colvin wrote:

On Friday, 19 June 2015 at 16:19:05 UTC, Martin Nowak wrote:

[...]


See http://forum.dlang.org/post/mjjfjr$nlk$1...@digitalmars.com 
and

http://forum.dlang.org/post/fbkyfjfofwaoitaxd...@forum.dlang.org


Links taken from the new forum interface seem useless. Neither 
of these go nowhere relevant (nor does the one posted by 
Martin). I'm using the vertical split layout if that matters.



This seems to be specific to the vertical-split layout. Works 
fine in the other 3 layouts.