This is an automated email from the git hooks/post-receive script. ppm-guest pushed a commit to annotated tag v0.29 in repository libmath-prime-util-perl.
commit 7b239a7ebacbf0dfbc6782050eb6c6f486a0ec93 Author: Dana Jacobsen <d...@acm.org> Date: Wed May 29 22:36:45 2013 -0700 Fixes for 5.6 (sigh) --- lib/Math/Prime/Util/PP.pm | 17 ++++++++++------- t/81-bignum.t | 1 + 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/lib/Math/Prime/Util/PP.pm b/lib/Math/Prime/Util/PP.pm index c28e983..adcddf6 100644 --- a/lib/Math/Prime/Util/PP.pm +++ b/lib/Math/Prime/Util/PP.pm @@ -83,13 +83,13 @@ sub _validate_positive_integer { croak "Parameter '$n' must be <= $max" if defined $max && $n > $max; if (ref($_[0])) { $_[0] = Math::BigInt->new("$_[0]") unless ref($_[0]) eq 'Math::BigInt'; - # Stupid workaround for Math::BigInt::GMP RT # 71548 + # Workarounds for Math::BigInt::GMP RT # 71548 and Perl 5.6 if ($_[0]->bacmp(''.~0) <= 0) { - $_[0] = int($_[0]->bstr); - croak "Didn't convert!" if ref($_[0]); - } else { - $_[0]->upgrade(undef) if $_[0]->upgrade(); # Stop BigFloat upgrade + my $intn = int($_[0]->bstr); + $_[0] = $intn if $_[0]->bcmp("$intn") == 0; } + # Stop BigFloat upgrade + $_[0]->upgrade(undef) if ref($_[0]) && $_[0]->upgrade(); } else { if ($n > ~0) { croak "Parameter '$n' outside of integer range" if !defined $bigint::VERSION; @@ -950,8 +950,11 @@ sub is_strong_lucas_pseudoprime { # my $d=$m->copy; my $s=0; while ($d->is_even) { $s++; $d->brsft(1); } # die "Invalid $m, $d, $s\n" unless $m == $d * 2**$s; my $dstr = substr($m->as_bin, 2); - $dstr =~ s/(0*)$// unless $doweak; - my $s = length($1); + my $s = 0; + if (!$doweak) { + $dstr =~ s/(0*)$//; + $s = length($1); + } my $ZERO = $n->copy->bzero; my $U = $ZERO + 1; diff --git a/t/81-bignum.t b/t/81-bignum.t index 977d7f0..e06ee79 100644 --- a/t/81-bignum.t +++ b/t/81-bignum.t @@ -145,6 +145,7 @@ foreach my $n (@proveprimes) { SKIP: { skip "Large proof on 32-bit machine.", 1 if !$use64 && !$extra && $n > 2**66; + skip "Skipping provable primes on broken 64-bit", 1 if $broken64; ok( is_provable_prime($n), "$n is provably prime" ); } } -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libmath-prime-util-perl.git _______________________________________________ Pkg-perl-cvs-commits mailing list Pkg-perl-cvs-commits@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits