In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/3dfaac447d030f911d146c3ae56b9dba63ce9dd4?hp=c81114d2b6e9ca2fa098dbdac89edfaca24540f9>

- Log -----------------------------------------------------------------
commit 3dfaac447d030f911d146c3ae56b9dba63ce9dd4
Author: Nicholas Clark <[email protected]>
Date:   Sat Mar 12 00:03:40 2011 +0000

    11883c88c2a3bf14 introduced an error in 64bitint.t with long doubles.
    
    On a platform where an NV is long enough to preserve all UVs, division is
    always done in floating point. Hence the result may become stringified in E
    notation. Hence testing that it is not in E notation (as a testing proxy for
    "was integer arithmetic used?") is inappropriate on such a platform.
-----------------------------------------------------------------------

Summary of changes:
 t/op/64bitint.t |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/t/op/64bitint.t b/t/op/64bitint.t
index e4296f2..168d597 100644
--- a/t/op/64bitint.t
+++ b/t/op/64bitint.t
@@ -14,6 +14,7 @@ BEGIN {
 # 32+ bit integers don't cause noise
 use warnings;
 no warnings qw(overflow portable);
+use Config;
 
 # as 6 * 6 = 36, the last digit of 6**n will always be six. Hence the last
 # digit of 16**n will always be six. Hence 16**n - 1 will always end in 5.
@@ -314,6 +315,8 @@ cmp_ok($q, '==', 0x5555555555555555);
 SKIP: {
     skip("Maths does not preserve UVs", 2) unless $maths_preserves_UVs;
     cmp_ok($q, '!=', 0x5555555555555556);
+    skip("All UV division is precise as NVs, so is done as NVs", 1)
+       if $Config{d_nv_preserves_uv};
     unlike($q, qr/[e.]/);
 }
 

--
Perl5 Master Repository

Reply via email to