# What changed in gmpy2

> 30 changes in gmpy2 2 from its official release notes, upgrade guides and advisories: 4 breaking, 9 new APIs and options. Each one cited. Sources checked 2026-10-19. HTML: https://unstale.sh/pypi/gmpy2/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## gmpy2 2

### Breaking changes

- Drops support for CPython 3.8. (2.3.0) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.0)
- Sets the default precision to 6 for e/E format types. (2.3.0) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.0)
- Formatting now uses the context's rounding mode by default. (2.3.0) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.0)
- Adjusts to_bytes() behavior to match CPython. (2.3.0) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.0)

### New APIs and options

- Adds alternate-form support in floating-point formatting. (2.3.0) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.0)
- Division functions now receive context arguments. (2.3.0) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.0)
- Adds mixed-mode arithmetic support for mpc. (2.3.0) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.0)
- Adds support for '%' formatting of mpfr values. (2.3.0) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.0)
- Adds an is_integer() method for mpq values. (2.3.0) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.0)
- Adds limit_denominator() to mpq. (2.3.0) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.0)
- Adds support for floating-point formatting types for mpz values. (2.3.0) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.0)
- Adds an `mpz.__array__()` method to interact with NumPy. (2.3.0) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.0)
- Adds an is_integer() method for mpz values. (2.3.0) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.0)

### Performance

- Optimizes the to_binary() function. (2.3.0) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.0)
- Optimizes the to_bytes() method. (2.3.0) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.0)

### Behavior and default changes

- Constraints related to Jacobi were relaxed. (2.3.1) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.1)
- Adds support for free-threading builds. (2.3.0) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.0)

### Fixes and other changes

- An IEEE-related fix was merged. (2.3.1) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.1)
- Converting an infinite mpfr value to float is supported instead of raising OverflowError. (2.3.0) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.0)
- Fixes a memory leak when exiting a context. (2.3.0) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.0)
- Fixes mixed-mode complex division when the left operand is real. (2.3.0) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.0)
- Fixes creating mpfr values from negative values with base=0. (2.3.0) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.0)
- Fixes conversion of mpq values to float. (2.3.0) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.0)
- Fixes conversion of mpz values to float. (2.3.0) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.0)
- Corrects the optimization used when rounding mpz values with negative ndigits. (2.3.0) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.0)
- Avoids OverflowError in mpz right-shift operations. (2.3.0) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.0)
- String output ignores the sign bit of NaNs, matching CPython. (2.3.0) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.0)
- Adds support for PyPy. (2.3.0) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.0)
- Rounding methods use the context's rounding mode. (2.3.0) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.0)
- Adds missing exceptions for true division. (2.3.0) — [release notes](https://github.com/gmpy2/gmpy2/releases/tag/v2.3.0)
