GMP 6.1.0 released

Marco Bodrato bodrato at mail.dm.unipi.it
Sun Nov 1 20:14:51 UTC 2015


A new major release of the GNU Multiple Precision Arithmetic Library
(GMP) is now available.  The new release is identified as 6.1.0.

The release can be downloaded from here:

  https://gmplib.org/download/gmp/gmp-6.1.0.tar.lz     (smallest)
  https://gmplib.org/download/gmp/gmp-6.1.0.tar.xz
  https://gmplib.org/download/gmp/gmp-6.1.0.tar.bz2    (largest)

These files will also soon be found at the GNU main site as well as its
many mirrors.

Signature files are also available:

  https://gmplib.org/download/gmp/gmp-6.1.0.tar.lz.sig
  https://gmplib.org/download/gmp/gmp-6.1.0.tar.xz.sig
  https://gmplib.org/download/gmp/gmp-6.1.0.tar.bz2.sig

The 6.1.0 release contains a considerable amount of new code, and many
improvements to existing code.  Please see below for the some high-
lights.

As usually, we repeat and underline: please run "make check" after
you've built your library.  And if "make check" stops with an error,
do not use the compiled library.  When this happens, you've almost
surely run into a compiler bug, not a GMP bug, since we've of course
made sure the library passes its own test suite.  The first thing to
try at this point is using a different compiler.  See also
https://gmplib.org/.

We have further expanded the testing configurations to over 1500.
Thanks to both the broad testing and careful development, we expect
this to be a very stable release.

This release would not have been possible without the continuous work
of improvement, revision and refinement by the whole GMP team:
Torbjörn Granlund, Niels Möller, Marco Bodrato, and Marc Glisse.

The GMP team is pleased to thank also the many people who contributed
to the quality of this release with suggestions, bug reports, and
small bug-fixes (an unordered and surely non-exhaustive list follows):
Hannes Mehnert, Hans Wennborg, Linus Nordberg, Paul Zimmermann,
Richard Biener, George Kozlowski, Albert Chin, Peter Breitenlohner,
Leif Leonhardy, Yihang Ho, Viktor Kletzhändler, Vicente Benjumea,
Vincent Lefevre, Vincent Delecroix, Steve M. Robbins and all the
participant to the mailing-lists of the project...

Changes between GMP version 6.0.* and 6.1.0

  BUGS FIXED
  * The public function mpn_com is now correctly declared in gmp.h.

  * Healed possible failures of mpn_sec_sqr for non-cryptographic sizes
    for some obsolete CPUs.

  * The option --disable-assembly now disables all inlined asm.

  * Fixed bug affecting mini-gmp's bitwise functions mpz_setbit,
    mpz_clrbit, and mpz_combit.

  * Various problems related to precision for mpf have been fixed.

  * Fixed ABI incompatible stack alignment in calls from assembly code.

  * Fixed PIC bug in popcount affecting Intel processors using the
    32-bit ABI.

  SPEEDUPS
  * Speedup for Intel Broadwell and Skylake though assembly code making
    use of new ADX instructions.

  * Square root is now faster when the remainder is not needed. Also the
    speed to compute the k-th root improved, for small sizes.

  * Improved arm64 support.

  FEATURES
  * New C++ functions gcd and lcm for mpz_class.

  * New public mpn functions mpn_divexact_1, mpn_zero_p, and mpn_cnd_swap.

  * New public mpq_cmp_z function, to efficiently compare rationals with
    integers.

  * Support for Darwin in all x86 code, thereby enabling fat builds
    on Darwin.

  * Support for more 32-bit arm processors.

  * Support for compilation with clang/llvm on more platforms.
    Caution: GMP triggers mis-compilation bugs in clang for many
    platforms, such as arm, x86 (32-bit and 64-bit), powerpc, mips.

  * Support for AVX-less modern x86 CPUs. (Such support might be missing
    either because the CPU vendor chose to disable AVX, or because the
    running kernel lacks AVX context switch support.)

  * Stack usage trimmed; we believe 512 KiB is now sufficient for any GMP
    call, irrespective of operand size.

  * Support for NetBSD under Xen; we switch off AVX unconditionally under
    NetBSD since a bug in NetBSD makes AVX fail under Xen.

  MISC
  * We now use manufacturers' code names for x86 CPUs, e.g., "haswell"
    instead of names derived from the commercial brands.

  * Small improvements and better coverage for the test suite.

  * The various FreeBSD problems listed for 6.0.0 affect this release too.

  * Tuned values for FFT multiplications are provided for larger number
    on many platforms.

Best regards,
Marco Bodrato (0xC1A000b0)



More information about the gmp-announce mailing list