Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update bundled GMP to 6.3.0 #5498

Merged
merged 1 commit into from
Sep 1, 2023
Merged

Conversation

fingolfin
Copy link
Member

Changes between GMP version 6.2.* and 6.3.0

BUGS FIXED

  • A possible overflow of type int is avoided for mpz_cmp on huge
    operands.
  • A possible error condition when a malformed file is read with
    mpz_inp_raw is now correctly handled.

FEATURES

  • New public function mpz_prevprime, companion of the existing
    mpz_nextprime.
  • New documented pointer types mpz_ptr, mpz_srcptr, and similar for
    other GMP types. Refer to the manual for full list and suggested
    usage. These types have been present in gmp.h at least since GMP-4.0,
    but previously not advertised to users.
  • Support for 64-bit Arm under Macos.
  • Support for the loongarch64 CPU family.
  • Support for building with LTO, link-time optimisations.

SPEEDUPS

  • New special code for base = 2 in mpz_powm reduces the average time for
    the functions that test primality.
  • Speedup for the function mpz_nextprime on large operands.
  • Speedup for multiplications (some sizes only) thanks to new internal
    functions to compute small negacyclic products.
  • Special assembly code for IBM z13 and later "mainframe" CPUs,
    resulting in a huge speedup.
  • Improved assembly for several 64-bit x86 CPUs, Risc-V, 64-bit Arm.

Changes between GMP version 6.2.* and 6.3.0

BUGS FIXED
- A possible overflow of type int is avoided for mpz_cmp on huge
  operands.
- A possible error condition when a malformed file is read with
  mpz_inp_raw is now correctly handled.

FEATURES
- New public function mpz_prevprime, companion of the existing
  mpz_nextprime.
- New documented pointer types mpz_ptr, mpz_srcptr, and similar for
  other GMP types. Refer to the manual for full list and suggested
  usage. These types have been present in gmp.h at least since GMP-4.0,
  but previously not advertised to users.
- Support for 64-bit Arm under Macos.
- Support for the loongarch64 CPU family.
- Support for building with LTO, link-time optimisations.

SPEEDUPS
- New special code for base = 2 in mpz_powm reduces the average time for
  the functions that test primality.
- Speedup for the function mpz_nextprime on large operands.
- Speedup for multiplications (some sizes only) thanks to new internal
  functions to compute small negacyclic products.
- Special assembly code for IBM z13 and later "mainframe" CPUs,
  resulting in a huge speedup.
- Improved assembly for several 64-bit x86 CPUs, Risc-V, 64-bit Arm.
@fingolfin fingolfin added kind: enhancement Label for issues suggesting enhancements; and for pull requests implementing enhancements release notes: use title For PRs: the title of this PR is suitable for direct use in the release notes labels Sep 1, 2023
Copy link
Contributor

@ChrisJefferson ChrisJefferson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is fine, as it only effects code in the gmp directory, once all tests pass.

I'll make sure to kick off a round of testing with memory checking after this, and the zlib, commits are merged -- I wouldn't want for those tests to run as they take about a week, but just to check for any subtle issues to do with memory allocation.

@fingolfin fingolfin merged commit 16225a9 into gap-system:master Sep 1, 2023
22 checks passed
@fingolfin fingolfin deleted the mh/gmp-6.3.0 branch September 1, 2023 13:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind: enhancement Label for issues suggesting enhancements; and for pull requests implementing enhancements release notes: use title For PRs: the title of this PR is suitable for direct use in the release notes topic: build system
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants