Upstream changes:
2.0019 Mon 1 Jul 11:04:31 IDT 2013
- Correct typos reported in RT #86599.
- https://rt.cpan.org/Ticket/Display.html?id=86599
- Thanks to dsteinbrunner.
2.0018 Mon 13 May 13:35:06 IDT 2013
- Revert previous change of minimal version of libxml2.
- This change proved to be unpopular and didn't prevent
the CPAN test failures.
- By SHLOMIF
2.0017 Thu 9 May 11:03:36 IDT 2013
- Made the minimal version of libxml2 2.9.0 as previous versions were
too buggy due to spuriourous CPAN test failures.
- Please upgrade.
- By SHLOMIF
Add missing DEPENDS
Upstream changes:
0.29 30 May 2013
- Fix a signed vs. unsigned char issue in ranged moebius. Thanks to the
Debian testers for finding this.
- XS is_prob_prime / is_prime now use a BPSW-style test (SPRP2 plus
extra strong Lucas test) for values over 2^32. This results in up
to 2.5x faster performance for large 64-bit values on most machines.
All PSP2s have been verified with Jan Feitsma's database.
- forprimes now uses a segmented sieve. This (1) allows arbitrary 64-bit
ranges with good memory use, and (2) allows nesting on threaded perls.
- prime_count_approx for very large values (> 10^36) was very slow without
Math::MPFR. Switch to Li+correction for large values if Math::MPFR is
not available.
- Workaround for MSVC compiler.
- Added:
is_pseudoprime (Fermat probable prime test)
is_lucas_pseudoprime (standard Lucas-Selfridge test)
is_extra_strong_lucas_pseudoprime (Mo/Jones/Grantham E.S. Lucas test)
0.28 23 May 2013
- An optimization to nth_prime caused occasional threaded Win32 faults.
Adjust so this is avoided.
- Yet another XS micro-speedup (PERL_NO_GET_CONTEXT)
- forprimes { block } [begin,]end. e.g.
forprimes { say } 100;
$sum = 0; forprimes { $sum += $_ } 1000,50000; say $sum;
forprimes { say if is_prime($_+2) } 10000; # print twin primes
- my $it = prime_iterator(10000); say $it->();
This is experimental (that is, the interface may change).
0.27 20 May 2013
- is_prime, is_prob_prime, next_prime, and prev_prime now all go straight
to XS if possible. This makes them much faster for small inputs without
having to use the -nobigint flag.
- XS simple number validation to lower function call overhead. Still a
lot more overhead compared to directly calling the XS functions, but
it shaves a little bit of time off every call.
- Speedup pure Perl factoring of small numbers.
- is_prob_prime / is_prime about 10% faster for composites.
- Allow '+N' as the second parameter to primes.pl. This allows:
primes.pl 100 +30
to return the primes between 100 and 130. Or:
primes.pl 'nth_prime(1000000000)' +2**8
- Use EXTENDED_TESTING to turn on extra tests.
0.26 21 April 2013
- Pure Perl factoring:
- real p-1 -- much faster and more effective
- Fermat (no better than HOLF)
- speedup for pbrent
- simple ECM
- redo factoring mix
- New functions:
prime_certificate produces a certificate of primality.
verify_prime checks a primality certificate.
- Pure perl primality proof now uses BLS75 instead of Lucas, so some
numbers will be much faster [n-1 only needs factoring to (n/2)^1/3].
- Math::Prime::Util::ECAffinePoint and ECProjectivePoint modules for
dealing with elliptic curves.
0.25 19 March 2013
- Speed up p-1 stage 2 factoring. Combined with some minor changes to the
general factoring combination, ~20% faster for 19 digit semiprimes.
- New internal macro to loop over primary sieve starting at 2. Simplifies
code in quite a few places.
- Forgot to skip one of the tests with broken 5.6.2.
0.24 10 March 2013
- Fix compilation with old pre-C99 strict compilers (decl after statement).
- euler_phi on a range wasn't working right with some ranges.
- More XS prime count improvements to speed and space. Add some tables
to the sieve count so it runs a bit faster. Transition from sieve later.
- PP prime count for 10^9 and larger is ~2x faster and uses much less
memory. Similar impact for nth_prime 10^8 or larger.
- Let factor.pl accept expressions just like primes.pl.
0.23 5 March 2013
- Replace XS Zeta for x > 5 with series from Cephes. It is 1 eps more
accurate for a small fraction of inputs. More importantly, it is much
faster in range 5 < x < 10. This only affects non-integer inputs.
- PP Zeta code replaced (for no-MPFR, non-bignums) with new series. The
new code is much more accurate for small values, and *much* faster.
- Add consecutive_integer_lcm function, just like MPU::GMP's (though we
define ci_lcm(0) = 0, which should get propogated).
- Implement binary search on RiemannR for XS nth_prime when n > 2e11.
Runs ~2x faster for 1e12, 3x faster for 1e13. Thanks to Programming
Praxis for the idea and motivation.
- Add the first and second Chebyshev functions (theta and psi).
- put isqrt(n) in util.h, use it everywhere.
put icbrt(n) in lehmer.h, use it there.
- Start on Lagarias-Miller-Odlyzko prime count.
- A new data structure for the phi(x,a) function used by all the fast
prime count routines. Quite a bit faster and most importantly, uses
half the memory of the old structure.
- Performance:
- Divisor sum with no sub is ~10x faster.
- Speed up PP version of exp_mangoldt, create XS version.
- Zeta much faster as mentioned above.
- faster nth_prime as mentioned above.
- AKS about 10% faster.
- Unroll a little more in sieve inner loop. A couple percent faster.
- Faster prime_count and nth_prime due to new phi(x,a) (about 1.25x).
0.22 26 February 2013
- Move main factor loop out of xs and into factor.c.
- Totient and Moebius now have complete XS implementations.
- Ranged totient uses less memory when segmented.
- Switch thread locking to pthreads condition variables.
0.21 22 February 2013
- Switch to using Bytes::Random::Secure for random primes. This is a
big change in that it is the first non-CORE module used. However, it
gets rid of lots of possible stupidness from system rand.
- Spelling fixes in documentation.
- primes.pl: Add circular and Panaitopol primes.
- euler_phi and moebius now will compute over a range.
- Add mertens function: 1000+ times faster than summing moebius($_).
- Add exp_mangoldt function: exponential of von Mangoldt's function.
- divisor_sum defaults to sigma if no sub is given (i.e. it sums).
- Performance:
- Speedup factoring small numbers. With -nobigint factoring from
1 to 10M, it's 1.2x faster. 1.5x faster than Math::Factor::XS.
- Totient and M枚bius over a range are much faster than separate calls.
- divisor_sum is 2x faster.
- primes.pl is much faster with Pillai primes.
- Reduce overhead in euler_phi -- about 2x faster for individual calls.
0.20 3 February 2013
- Speedup for PP AKS, and turn off test on 32-bit machines.
- Replaced fast sqrt detection in PP.pm with a slightly slower version.
The bloom filter doesn't work right in 32-bit Perl. Having a non-working
detector led to really bad performance. Hence this and the AKS change
should speed up testing on some 32-bit machines by a huge amount.
- Fix is_perfect_power in XS AKS.
0.19 1 February 2013
- Update MR bases with newest from http://miller-rabin.appspot.com/.
- Fixed some issues when using bignum and Calc BigInt backend, and bignum
and Perl 5.6.
- Added tests for bigint is_provable_prime.
- Added a few tests to give better coverage.
- Adjust some validation subroutines to cut down on overhead.
0.18 14 January 2013
- Add random_strong_prime.
- Fix builds with Solaris 9 and older.
- Add some debug info to perhaps find out why old ActiveState Perls are
dying in Math::BigInt::Calc, as if they were using really old versions
that run out of memory trying to calculate '2 ** 66'.
http://code.activestate.com/ppm/Math-Prime-Util/
0.17 20 December 2012
- Perl 5.8.1 - 5.8.7 miscalculates 12345 ** 4, which I used in a test.
- Fix (hopefully) for MSC compilation.
- Unroll sieve loop for another 20% or so speedup. It won't have much
practical application now that we use Lehmer's method for counts, but
there are some cases that can still show speedups.
- Changed the rand functionality yet again. Sorry. This should give
better support for plugging in crypto RNG's when used from other
modules.
0.16 11 December 2012
- randbits >= 32 on some 32-bit systems was messing us up. Restrict our
internal randbits to wordsize-1.
Bytes::Random::Secure provides two interfaces for obtaining crypto-quality
random bytes. The simple interface is built around plain functions. For greater
control over the Random Number Generator's seeding, there is an Object Oriented
interface that provides much more flexibility.
Crypt::Random::Seed is a simple mechanism to get strong randomness. The main
purpose of this module is to provide a simple way to generate a seed for a
PRNG such as Math::Random::ISAAC, for use in cryptographic key generation,
or as the seed for an upstream module such as Bytes::Random::Secure. Flags
for requiring non-blocking sources are allowed, as well as a very simple method
for plugging in a source.
Crypt::Random::TESHA2 generate random numbers using entropy gathered from
timer/scheduler jitter. This can be used to generate non-pseudorandom data
to seed a PRNG (e.g. srand/rand, Math::Random::MT, etc.) or CSPRNG (e.g. AES-CTR
or Math::Random::ISAAC). You may use it directly or as part of a random source
module that first checks for O/S randomness sources.
Upstream changes:
1.6923 2013-07-03 22:16:04 PDT
[Bug Fixes]
- Reverted the --skipdeps in PERL_AUTOINSTALL since it breaks default
dependencies in Module::Install-based distributions
1.6922 2013-06-19 13:55:54 PDT
[Improvements]
- No changes in the code, packaging update so the fatpacked executable on cpanm has
the right version. #274
1.6921 2013-06-18 03:18:55 PDT
[Bug Fixes]
- Fixes install with Module::Build < 0.35, i.e. vanilla perl 5.10.1
(Thanks to joshk for the report)
- Fixes install on 5.8 with Module::Build dists without configure_requires #273
(Thanks to gildegoma for the report)
1.6920 2013-06-14 14:08:44 PDT
[Improvements]
- Handle PERL_LOCAL_LIB_ROOT in case multiple paths are stacked (mst)
- Remove the search.cpan.org fallback where no META files exist. Generate stub using CPAN::Meta
1.6919 2013-06-12 08:32:06 PDT
[Incompatible Changes]
- Automatically detect local::lib mode when environment variables are already configured
on the shell. This is to fix the first time run when local::lib is configure but arch
library path doesn't exist. #263
1.6918 2013-06-10 13:02:06 PDT
[Improvements]
- Fix documentation about --quiet
- Find the best (non-backpan) match out of MetaCPAN results when there are multiple
results https://github.com/CPAN-API/cpan-api/issues/274
1.6917 2013-06-05 10:07:12 JST
[Incompatible Changes]
- build.log is now created inside a work directory, then a symlink to the file is
made in ~/.cpanm. On platforms where symlink is not available (Win32), the build.log
file is copied from the build directory once the installation has finished. (ilmari)
1.6916 2013-06-04 19:54:36 JST
[Improvements]
- Do not complain upgrading cpanm in local::lib
- Accept 0-9_ in PAUSE ID (#265)
release 0.4 (20130713)
- Fix stupid build problem introduced in 0.3.1.
- Accept and ignore -m32, which imake issues willy-nilly on a bunch
of platforms. I thought this had already been done, but apparently
not.
- Don't use the <err.h> functions. There are still people out there
using legacy systems missing them.
- Sort out some more issues pertaining to handling quoted strings.
- Add some more tests.
copy isn't as portable as what's in databases/sqlite3. Instead of
trying to fix the copy, declare a buildlink dependency on 3.7.17,
and let pkgsrc figure out how to fulfill it. Bump PKGREVISION.
Upstream changes:
0.08 2013-07-09
- remove Test::Warnings dep
0.07 2013-07-08
- instead of silently ignoring conflicts that do not compile, issue a
conflict warning. (RT#75486, Karen Etheridge)
0.06 2013-06-21
- make the runtime conflict warnings optional, since i'm not sure how
stable of an idea this really is
- use Exporter instead of Sub::Exporter
0.05-TRIAL 2011-01-17
- require 5.8.1, clean up a few things and add a few more tests
0.04-TRIAL 2011-01-13
- fix an issue with certain other perls
0.03-TRIAL 2011-01-13
- add runtime conflict warnings
Upstream changes:
0.97 Sun Mar 17 19:20:30 CET 2013
- corrected minor spelling fixes thanks to an rt patch.
- fixed AnyEvent::IRC::Connection::is_connected to actually return true
when connected.
- AE::IRC::Client::connect can now also connect only with a timeout without
having to register.
- Server reply of 001 is now also considered as "successfully registered".
Thanks for Lee to spot this.
- "quit" event gets the right parameter from the message now. Thanks to Lee!
Upstream changes:
2.00 2013-06-11T04:41:43Z
[INCOMPATIBLE CHANGES]
- Change wait_port() API to take max_wait seconds, and wait exponentially.
Dropped wait_port_retry argument introduced at 1.27.
(miyagawa)