summaryrefslogtreecommitdiff
path: root/gmp/NEWS
diff options
context:
space:
mode:
Diffstat (limited to 'gmp/NEWS')
-rw-r--r--gmp/NEWS460
1 files changed, 5 insertions, 455 deletions
diff --git a/gmp/NEWS b/gmp/NEWS
index 5f77bce1e1..488ae51014 100644
--- a/gmp/NEWS
+++ b/gmp/NEWS
@@ -1,458 +1,8 @@
-Copyright 1996, 1999-2014 Free Software Foundation, Inc.
+Copyright 1996, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
+2009, 2010 Free Software Foundation, Inc.
-Verbatim copying and distribution of this entire article is permitted in any
-medium, provided this notice is preserved.
-
-
-Changes between GMP version 5.1.* and 6.0.0
-
- BUGS FIXED
- * The function mpz_invert now considers any number invertible in Z/1Z.
-
- * The mpn multiply code now handles operands of more than 2^31 limbs
- correctly. (Note however that the mpz code is limited to 2^32 bits on
- 32-bit hosts and 2^37 bits on 64-bit hosts.)
-
- * Contains all fixes from release 5.1.3.
-
- SPEEDUPS
- * Plain division of large operands is faster and more monotonous in operand
- size.
-
- * Major speedup for ARM, in particular ARM Cortex-A15, thanks to improved
- assembly.
-
- * Major speedup for SPARC T4/T5 and speedup also for T3, thanks to a lot of
- new assembly.
-
- * Speedup for Intel Sandy Bridge, Ivy Bridge, Haswell, thanks to rewritten
- and vastly expanded assembly support. Speedup also for the older Core 2
- and Nehalem.
-
- * Faster mixed arithmetic between mpq_class and double.
-
- * With g++, optimise more operations when one argument is a simple constant.
-
- FEATURES
- * Support for new Intel and AMD CPUs.
-
- * Support for ARM64 alias Aarch64 alias ARMv8.
-
- * New public functions mpn_sec_mul and mpn_sec_sqr, implementing side-channel
- silent multiplication and squaring.
-
- * New public functions mpn_sec_div_qr and mpn_sec_div_r, implementing
- side-channel silent division.
-
- * New public functions mpn_cnd_add_n and mpn_cnd_sub_n. Side-channel silent
- conditional addition and subtraction.
-
- * New public function mpn_sec_powm, implementing side-channel silent modexp.
-
- * New public function mpn_sec_invert, implementing side-channel silent
- modular inversion.
-
- * Better support for applications which use the mpz_t type, but nevertheless
- need to call some of the lower-level mpn functions. See the documentation
- for mpz_limbs_read and related functions.
-
- MISC
- * This release will not work on NetBSD 5.x, FreeBSD 7.x, 8.x or 9 series
- before 9.3. The reason is that the m4 command is not correctly
- implemented. (Workaround: Use an older GMP release, or install GNU m4 from
- /usr/ports and tell GMP to use it.)
-
- * This release will not build properly on FreeBSD/amd64 before version 10
- using the 32-bit ABI (once a working m4 is installed). The reason is
- broken limits.h. (Workaround: Use an older GMP release if using the 32-bit
- ABI on these FreeBSD releases is important.)
-
- * This release will not work reliably on FreeBSD 10.0 for i386 or amd64 using
- the 32-bit ABI. The reason is bugs in the compiler 'clang'. Depending on
- CPU-dependent compiler flags, GMP may or may not be miscompiled in a
- particular build. (Workaround: Compiling gcc from /usr/ports should work,
- except that gcc circularly depends on GMP; we have not been able to test
- that workaround due to FreeBSD 10.0 bugs affecting its ability to run under
- KVM and Xen.)
-
- * This release will not compile on FreeBSD before version 10 for i386,
- targeting any modern AMD processor. The reason is bugs in the old gcc
- bundled with FreeBSD. (Workaround: install a less obsolete gcc from
- /usr/ports and tell GMP to use it, or override the -march=amdfam10
- GMP configure command line argument.)
-
-
-Changes between GMP version 5.1.2 and 5.1.3
-
- BUGS FIXED
- * The internal functions mpn_sbpi1_div_qr_sec mpn_sbpi1_div_r_sec could
- compute garbage with a low probability. They are now rewritten, and the
- test code has been improved.
-
- * A bug in the ia64 implementation of mpn_divrem_2, clobbering some
- callee-save registers, has been fixed. This is an internal
- function, with the bug manifesting itself as miscomputation in,
- e.g., mpn_sqrtrem.
-
- * The documentation now correctly says 'const' for input arguments.
-
- SPEEDUPS
- * None.
-
- FEATURES
- * None.
-
- MISC
- * None.
-
-
-Changes between GMP version 5.1.1 and 5.1.2
-
- BUGS FIXED
- * A bug in mpz_powm_ui triggered by base arguments of at least 15000 decimal
- digits or mod arguments of at least 7500 decimal digits has been fixed.
-
- * An AMD Bulldozer specific bug affecting the 64-bit Windows ABI has been
- fixed. This bug was in a key function (mpn_mul_1) and made both Bulldozer
- specific builds and fat builds run on Bulldozer completely non-functional.
-
- SPEEDUPS
- * None.
-
- FEATURES
- * None.
-
- MISC
- * Fixes and generalisations to the test suite.
-
- * Minor portability enhancements.
-
-
-Changes between GMP version 5.1.0 and 5.1.1
-
- BUGS FIXED
- * On Windows 64-bit, an error causing link errors about
- __gmp_binvert_limb_table has been fixed.
-
- * Aarch64 alias ARM64 support now works.
-
- * A possible buffer overrun in mpz_ior has been fixed.
-
- * A rare sign flip in mpz_remove has been fixed.
-
- * A bug causing problems with mpf numbers with absolute value >= 2^31 has
- been fixed.
-
- * Several bugs in mini-gmp have been fixed.
-
- * A bug caused by automake, related to the 'distcheck' target, has been fixed
- by upgrading the automake used for GMP release engineering.
-
- SPEEDUPS
- * None.
-
- FEATURES
- * Preliminary support for the x32 ABI under x86-64.
-
- MISC
- * The mini-gmp testsuite now tests the entire set of functions.
-
- * Various improvements of the GMP testsuite.
-
-
-Changes between GMP version 5.0.* and 5.1.0
-
- BUGS FIXED
- * When reading a C++ number (like mpz_class) in an istream reaches the end
- of the stream, the eofbit is now set.
-
- * The result sign of mpz_rootrem's remainder is now always correct.
-
- * The mpz_remove function now handles negative divisors.
-
- * Contains all fixes from release 5.0.5.
-
- SPEEDUPS
- * The n-factorial and n-over-k functions have been reimplemented for great
- speedups for small and large operands.
-
- * New subquadratic algorithm for the Kronecker/Jacobi/Legendre symbol.
-
- * Major speedup for ARM, in particular ARM Cortex-A9 and A15, thanks to broad
- assembly support.
-
- * Significant speedup for POWER6 and POWER7 thanks to improved assembly.
-
- * The performance under M$ Windows' 64-bit ABI has been greatly improved
- thanks to complete assembly support.
-
- * Minor speed improvements of many functions and for many platforms.
-
- FEATURES
- * Many new CPUs recognised.
-
- * New functions for multi-factorials, and primorial: mpz_2fac_ui,
- mpz_mfac_uiui and mpz_primorial_ui.
-
- * The mpz_powm_sec function now uses side-channel silent division for
- converting into Montgomery residues.
-
- * The fat binary mechanism is now more robust in its CPU recognition.
-
- MISC
- * Inclusion of assembly code is now controlled by the configure options
- --enable-assembly and --disable-assembly. The "none" CPU target is gone.
-
- * In C++, the conversions mpq_class->mpz_class, mpf_class->mpz_class and
- mpf_class->mpq_class are now explicit.
-
- * Includes "mini-gmp", a small, portable, but less efficient, implementation
- of a subset of GMP's mpn and mpz interfaces. Used in GMP bootstrap, but it
- can also be bundled with applications as a fallback when the real GMP
- library is unavailable.
-
- * The ABIs under AIX are no longer called aix32 and aix64, but mode64 and 32.
- This is more consistent with other powerpc systems.
-
- * The coverage of the testsuite has been improved, using the lcov tool. See
- also https://gmplib.org/devel/lcov/.
-
- * It is now possible to compile GMP using a C++ compiler.
-
- * K&R C compilers are no longer supported.
-
- * The BSD MP compatibility functions have been removed.
-
-
-Changes between GMP version 5.0.4 and 5.0.5
-
- BUGS FIXED
- * A bug causing AMD 11h processors to be treated like AMD 10h has been fixed.
- The 11h processors do not correctly handle all 10h (aka K10) instructions,
- and GMP's use of these instructions results in major miscomputations (not
- as one would have hoped CPU traps of some 'illegal instruction' sort).
-
- * A bug affecting recent Intel Sandy Bridge CPUs resulting in configuration
- failures has been fixed.
-
- SPEEDUPS
- * None.
-
- FEATURES
- * A couple of tests added to the self-check suite.
-
- MISC
- * None.
-
-
-Changes between GMP version 5.0.3 and 5.0.4
-
- BUGS FIXED
- * Thresholds in mpn_powm_sec for both fat and non-fat builds are now used
- safely, plugging a one-word buffer overrun introduced in the 5.0.3 release
- (for non-fat) and a multi-word buffer overrun that existed since 5.0 (for
- fat). (We have not been able to provoke malign stack smashing in any of
- the ~100 configurations explored by the GMP nightly builds, but the bug
- should be assumed to be exploitable.)
-
- * Two bugs in multiplication code causing incorrect computation with
- extremely low probability have been fixed.
-
- * A bug in the test suite causing buffer overruns during "make check",
- sometimes leading to subsequent malloc crashes, has been fixed.
-
- * Two bugs in the gcd code have been fixed. They could lead to incorrect
- results, but for uniformly distributed random operands, the likelihood for
- that is infinitesimally small. (There was also a third bug, but that was
- an incorrect ASSERT, which furthermore was not enabled by default.)
-
- * A bug affecting 32-bit PowerPC division has been fixed. The bug caused
- miscomputation for certain divisors in the range 2^32 ... 2^64-1 (about 1
- in 2^30 of these).
-
- SPEEDUPS
- * None, except indirectly through recognition of new CPUs, and through better
- tuning parameters.
-
- FEATURES
- * Some more tests added to the self-check suite.
-
- * The AMD "Bulldozer" CPU is now recognised.
-
- MISC
- * None.
-
-
-Changes between GMP version 5.0.2 and 5.0.3
-
- BUGS FIXED
- * A few minor bugs related to portability fixed.
-
- * A slight timing leak of the powm_sec functions have been sealed. (This
- leak could possibly be used to extract the most significant few bits of the
- exponent. "Few" here means at most 10.)
-
- * The mpz_nextprime function now runs a safer number of pseudo-random prime
- tests.
-
- * A bug in division code possibly causing incorrect computation was fixed.
-
- SPEEDUPS
- * None, except indirectly through recognition of new CPUs, and through better
- tuning parameters.
-
- FEATURES
- * New CPUs recognised.
-
- * IBM S/390 are now supported in both 31/32-bit and 64-bit mode. (We have
- not been able to fully test this on any multilib machine, since IBM expired
- our guest account a few days before our release.)
-
- MISC
- * None.
-
-
-Changes between GMP version 5.0.1 and 5.0.2
-
- BUGS FIXED
- * Many minor bugs related to portability fixed.
-
- * The support for HPPA 2.0N now works, after an assembly bug fix.
-
- * A test case type error has been fixed. The symptom of this bug was
- spurious 'make check' failures.
-
- SPEEDUPS
- * None, except indirectly through recognition of new CPUs.
-
- FEATURES
- * Fat builds are now supported for 64-bit x86 processors also under Darwin.
-
- MISC
- * None.
-
-
-Changes between GMP version 5.0.0 and 5.0.1
-
- BUGS FIXED
- * Fat builds fixed.
-
- * Fixed crash for huge multiplies when old FFT_TABLE2 type of parameter
- selection tables' sentinel was smaller than multiplied operands.
-
- * The solib numbers now reflect the removal of the documented but preliminary
- mpn_bdivmod function; we correctly flag incompatibility with GMP 4.3. GMP
- 5.0.0 has this wrong, and should perhaps be uninstalled to avoid confusion.
-
- SPEEDUPS
- * Multiplication of large numbers has indirectly been sped up through better
- FFT tuning and processor recognition. Since many operations depend on
- multiplication, there will be a general speedup.
-
- FEATURES
- * More Core i3, i5 an Core i7 processor models are recognised.
-
- * Fixes and workarounds for Mac OS quirks should make this GMP version build
- using many of the different versions of "Xcode".
-
- MISC
- * The amount of scratch memory needed for multiplication of huge numbers has
- been reduced substantially (but is still larger than in GMP 4.3.)
-
- * Likewise, the amount of scratch memory needed for division of large numbers
- has been reduced substantially.
-
- * The FFT tuning code of tune/tuneup.c has been completely rewritten, and
- new, large FFT parameter selection tables are provided for many machines.
-
- * Upgraded to the latest autoconf, automake, libtool.
-
-
-Changes between GMP version 4.3.X and 5.0.0
-
- BUGS FIXED
- * None (contains the same fixes as release 4.3.2).
-
- SPEEDUPS
- * Multiplication has been overhauled:
- (1) Multiplication of larger same size operands has been improved with
- the addition of two new Toom functions and a new internal function
- mpn_mulmod_bnm1 (computing U * V mod (B^n-1), B being the word base.
- This latter function is used for the largest products, waiting for a
- better Schoenhage-Strassen U * V mod (B^n+1) implementation.
- (2) Likewise for squaring.
- (3) Multiplication of different size operands has been improved with the
- addition of many new Toom function, and by selecting underlying
- functions better from the main multiply functions.
-
- * Division and mod have been overhauled:
- (1) Plain "schoolbook" division is reimplemented using faster quotient
- approximation.
- (2) Division Q = N/D, R = N mod D where both the quotient and remainder
- are needed now runs in time O(M(log(N))). This is an improvement of
- a factor log(log(N))
- (3) Division where just the quotient is needed is now O(M(log(Q))) on
- average.
- (4) Modulo operations using Montgomery REDC form now take time O(M(n)).
- (5) Exact division Q = N/D by means of mpz_divexact has been improved
- for all sizes, and now runs in time O(M(log(N))).
-
- * The function mpz_powm is now faster for all sizes. Its complexity has
- gone from O(M(n)log(n)m) to O(M(n)m) where n is the size of the modulo
- argument and m is the size of the exponent. It is also radically
- faster for even modulus, since it now partially factors such modulus
- and performs two smaller modexp operations, then uses CRT.
-
- * The internal support for multiplication yielding just the lower n limbs
- has been improved by using Mulders' algorithm.
-
- * Computation of inverses, both plain 1/N and 1/N mod B^n have been
- improved by using well-tuned Newton iterations, and wrap-around
- multiplication using mpn_mulmod_bnm1.
-
- * A new algorithm makes mpz_perfect_power_p asymptotically faster.
-
- * The function mpz_remove uses a much faster algorithm, is better tuned,
- and also benefits from the division improvements.
-
- * Intel Atom and VIA Nano specific optimisations.
-
- * Plus hundreds of smaller improvements and tweaks!
-
- FEATURES
- * New mpz function: mpz_powm_sec for side-channel quiet modexp
- computations.
-
- * New mpn functions: mpn_sqr, mpn_and_n, mpn_ior_n, mpn_xor_n, mpn_nand_n,
- mpn_nior_n, mpn_xnor_n, mpn_andn_n, mpn_iorn_n, mpn_com, mpn_neg,
- mpn_copyi, mpn_copyd, mpn_zero.
-
- * The function mpn_tdiv_qr now allows certain argument overlap.
-
- * Support for fat binaries for 64-bit x86 processors has been added.
-
- * A new type, mp_bitcnt_t for bignum bit counts, has been introduced.
-
- * Support for Windows64 through mingw64 has been added.
-
- * The cofactors of mpz_gcdext and mpn_gcdext are now more strictly
- normalised, returning to how GMP 4.2 worked. (Note that also release
- 4.3.2 has this change.)
-
- MISC
- * The mpn_mul function should no longer be used for squaring,
- instead use the new mpn_sqr.
-
- * The algorithm selection has been improved, the number of thresholds have
- more than doubled, and the tuning and use of existing thresholds have
- been improved.
-
- * The tune/speed program can measure many of new functions.
-
- * The mpn_bdivmod function has been removed. We do not consider this an
- incompatible change, since the function was marked as preliminary.
-
- * The testsuite has been enhanced in various ways.
+Verbatim copying and distribution of this entire article is permitted
+in any medium, provided this notice is preserved.
Changes between GMP version 4.3.1 and 4.3.2
@@ -589,7 +139,7 @@ Changes between GMP version 4.2.1 and 4.2.2
Features:
* New support for x86_64-solaris
* New, rudimentary support for x86-apple-darwin and x86_64-apple-darwin.
- (Please see https://gmplib.org/macos.html for more information.)
+ (Please see http://gmplib.org/macos.html for more information.)
Changes between GMP version 4.2 and 4.2.1