On Wednesday, November 19, 2003, at 09:54AM, Saku Setala <[EMAIL PROTECTED]> wrote:

>> $ @[.vms]test .exe "" -"v" [.base]num.t
>
>if ($^O eq 'ultrix') {
>  # Ultrix enters looong nirvana over this.
>  print "ok 47\n";
>} else {
>  $a =
>0.00000000000000000000000000000000000000000000000000000000000000000001;
>  print $a > 0 ? "ok 47\n" : "not ok 47\n";
>}

If I'm counting right, that's 1e-68, give or take an order of magnitude.  That should 
be representable and non-zero in G_FLOAT and T_FLOAT (or, for that matter X_FLOAT), 
but definitely not in D_FLOAT, where the minimum value is 2.93873587705571877e-39.  
The comment about Ultrix is telling, though there is no mention made of whether it's 
Ultrix VAX or Ultrix MIPS that has trouble running the test.

So it seems to me the test is wrong.  The value it should be testing against is NV_MIN 
(derived from float.h's DBL_MIN or LDBL_MIN).  Unfortunately I don't know if there is 
a way to get at NV_MIN from within Perl.

Reply via email to