[libmath-prime-util-perl] 08/18: Allow turning off MPFR. Run travis tests on dynamic dependency variations.

Partha P. Mukherjee ppm-guest at moszumanska.debian.org
Thu May 21 18:46:39 UTC 2015


This is an automated email from the git hooks/post-receive script.

ppm-guest pushed a commit to annotated tag v0.17
in repository libmath-prime-util-perl.

commit 5711de769abb7c1cfe27aac69723a332cb9974f0
Author: Dana Jacobsen <dana at acm.org>
Date:   Mon Dec 17 02:29:56 2012 -0800

    Allow turning off MPFR.  Run travis tests on dynamic dependency variations.
---
 .travis.yml               | 11 ++++++++++-
 lib/Math/Prime/Util.pm    |  2 +-
 lib/Math/Prime/Util/PP.pm | 20 ++++++++++++--------
 t/02-can.t                | 13 +++++++++----
 t/03-init.t               | 10 ++++++++++
 t/81-bignum.t             |  8 +++++---
 6 files changed, 47 insertions(+), 17 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index a2a0894..3914caf 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -5,7 +5,16 @@ perl:
   - "5.12"
   - "5.10"
 
-#before_script:
+before_script:
+    - cpanm Math::Prime::Util::GMP
+    - cpanm Math::MPFR
+
+env:
+    - MPU_NO_XS=1 MPU_NO_GMP=1 MPU_NO_MPFR=1
+    - MPU_NO_MPFR=1
+    - MPU_NO_GMP=1
+    - MPU_NO_GMP=1 MPU_NO_MPFR=1
+
 #    - sudo apt-get install libgmp3-dev
 #    - cpanm Test::Pod # optional dependency
 
diff --git a/lib/Math/Prime/Util.pm b/lib/Math/Prime/Util.pm
index 4f9000c..6ed33e2 100644
--- a/lib/Math/Prime/Util.pm
+++ b/lib/Math/Prime/Util.pm
@@ -69,7 +69,7 @@ BEGIN {
     $_Config{'maxbits'} = _XS_prime_maxbits();
     1;
   } or do {
-    carp "Using Pure Perl implementation: $@";
+    #carp "Using Pure Perl implementation: $@";
 
     $_Config{'xs'} = 0;
     $_Config{'maxbits'} = Math::Prime::Util::PP::_PP_prime_maxbits();
diff --git a/lib/Math/Prime/Util/PP.pm b/lib/Math/Prime/Util/PP.pm
index 9303064..57b2050 100644
--- a/lib/Math/Prime/Util/PP.pm
+++ b/lib/Math/Prime/Util/PP.pm
@@ -1436,8 +1436,9 @@ sub ExponentialIntegral {
 
   # Use MPFR if possible.
   if ($_have_MPFR < 0) {
-    $_have_MPFR = 1;
-    eval { require Math::MPFR; $Math::MPFR::VERSION >= 2.03; } or do { $_have_MPFR = 0; };
+    $_have_MPFR = 0;
+    $_have_MPFR = 1 if (!defined $ENV{MPU_NO_MPFR} || $ENV{MPU_NO_MPFR} != 1)
+                    && eval { require Math::MPFR; $Math::MPFR::VERSION>=2.03; };
   }
   # Gotcha -- MPFR decided to make negative inputs return NaN.  Grrr.
   if ($_have_MPFR && $x > 0) {
@@ -1545,8 +1546,9 @@ sub LogarithmicIntegral {
 
   # Use MPFR if possible.
   if ($_have_MPFR < 0) {
-    $_have_MPFR = 1;
-    eval { require Math::MPFR; $Math::MPFR::VERSION >= 2.03; } or do { $_have_MPFR = 0; };
+    $_have_MPFR = 0;
+    $_have_MPFR = 1 if (!defined $ENV{MPU_NO_MPFR} || $ENV{MPU_NO_MPFR} != 1)
+                    && eval { require Math::MPFR; $Math::MPFR::VERSION>=2.03; };
   }
   # Remember MPFR eint doesn't handle negative inputs
   if ($_have_MPFR && $x >= 1) {
@@ -1677,8 +1679,9 @@ sub RiemannZeta {
 
   # Use MPFR if possible.
   if ($_have_MPFR < 0) {
-    $_have_MPFR = 1;
-    eval { require Math::MPFR; $Math::MPFR::VERSION >= 2.03; } or do { $_have_MPFR = 0; };
+    $_have_MPFR = 0;
+    $_have_MPFR = 1 if (!defined $ENV{MPU_NO_MPFR} || $ENV{MPU_NO_MPFR} != 1)
+                    && eval { require Math::MPFR; $Math::MPFR::VERSION>=2.03; };
   }
   if ($_have_MPFR) {
     my $wantbf = 0;
@@ -1742,8 +1745,9 @@ sub RiemannR {
 
   # Use MPFR if possible.
   if ($_have_MPFR < 0) {
-    $_have_MPFR = 1;
-    eval { require Math::MPFR; $Math::MPFR::VERSION >= 2.03; } or do { $_have_MPFR = 0; };
+    $_have_MPFR = 0;
+    $_have_MPFR = 1 if (!defined $ENV{MPU_NO_MPFR} || $ENV{MPU_NO_MPFR} != 1)
+                    && eval { require Math::MPFR; $Math::MPFR::VERSION>=2.03; };
   }
   if ($_have_MPFR) {
     my $wantbf = 0;
diff --git a/t/02-can.t b/t/02-can.t
index 35a97b7..89498c0 100644
--- a/t/02-can.t
+++ b/t/02-can.t
@@ -6,16 +6,21 @@ use Math::Prime::Util;
 use Test::More  tests => 1;
 
 my @functions =  qw(
-                     prime_get_config
+                     prime_get_config prime_set_config
                      prime_precalc prime_memfree
-                     is_prime is_prob_prime
+                     is_prime is_prob_prime is_provable_prime
                      is_strong_pseudoprime is_strong_lucas_pseudoprime
+                     is_aks_prime
+                     miller_rabin
                      primes
                      next_prime  prev_prime
                      prime_count prime_count_lower prime_count_upper prime_count_approx
                      nth_prime nth_prime_lower nth_prime_upper nth_prime_approx
                      random_prime random_ndigit_prime random_nbit_prime random_maurer_prime
-                     factor all_factors moebius euler_phi
-                     ExponentialIntegral LogarithmicIntegral RiemannR
+                     primorial pn_primorial
+                     factor all_factors
+                     moebius euler_phi jordan_totient
+                     divisor_sum
+                     ExponentialIntegral LogarithmicIntegral RiemannZeta RiemannR
                    );
 can_ok( 'Math::Prime::Util', @functions);
diff --git a/t/03-init.t b/t/03-init.t
index 3dbf12e..d211359 100644
--- a/t/03-init.t
+++ b/t/03-init.t
@@ -13,6 +13,16 @@ my $bigsize = 10_000_000;
 
 can_ok( 'Math::Prime::Util', 'prime_get_config' );
 
+my $diag = "Using " .
+  ((Math::Prime::Util::prime_get_config->{xs})
+    ? "XS"
+    : "PP") .
+  ((Math::Prime::Util::prime_get_config->{gmp}) 
+    ? " with MPU::GMP version $Math::Prime::Util::GMP::VERSION."
+    : ".") .
+  "\n";
+diag $diag;
+
 my $init_size = prime_get_config->{'precalc_to'};
 
 prime_precalc($bigsize);
diff --git a/t/81-bignum.t b/t/81-bignum.t
index 719ab90..51d024f 100644
--- a/t/81-bignum.t
+++ b/t/81-bignum.t
@@ -109,9 +109,11 @@ use Math::Prime::Util qw/
 #        LogarithmicIntegral
 #        RiemannR
 
-# See if we're testing bignum with PP or GMP.
-diag "Math::Prime::Util::GMP not being used.\n"
-  unless Math::Prime::Util::prime_get_config->{gmp};
+my $bigintlib = Math::BigInt->config()->{lib};
+$bigintlib =~ s/^Math::BigInt:://;
+my $mpugmpver = Math::Prime::Util::prime_get_config->{gmp}
+                ? $Math::Prime::Util::GMP::VERSION : "<none>";
+diag "BigInt library: $bigintlib, MPU::GMP $mpugmpver\n";
 
 
 ###############################################################################

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libmath-prime-util-perl.git



More information about the Pkg-perl-cvs-commits mailing list