diff --git a/docs/history.rst b/docs/history.rst index c05437e9..5d7bfd4f 100644 --- a/docs/history.rst +++ b/docs/history.rst @@ -8,6 +8,65 @@ Changes in gmpy2 2.2.0 * Added prev_prime() when GMP >= 6.3 +Changes in gmpy2 2.1.5 +---------------------- + +* Version bump to fix wheel issues. No code changes. + +Changes in gmpy2 2.1.4 +---------------------- + +* Version bump to fix wheel issues. No code changes. + +Changes in gmpy2 2.1.3 +---------------------- + +* Fix mpz(-3).is_prime(). +* Add powmod_sec(). +* Fix mpfr('inf') and mpfr('nan') if subnormalization is enabled. +* powmod() and powmod_sec() release the GIL. +* Fix error messages for iroot(x,n) for large n. +* Add powmod_base_list() and powmod_exp_list() (experimental). +* Fix gmpy2.mpq(mpq, int). +* Fix issues with INF, NAN, and mpfr("-0") when subnormalization is True + +Changes in gmpy2 2.1.2 +---------------------- + +* Code cleanup. +* Support Apple Silicon binary wheels. +* is_prime(-2) now returns False. Issue #312. + +Changes in gmpy2 2.1.1 +---------------------- + +* Code cleanup. +* Properly return NOTIMPLEMENTED for unsupported arguments in + ``**``. Issue #319. + +Changes in gmpy2 2.1.0 +---------------------- + +* Improvements to setup.py. +* Add thread-safe contexts. +* MPFR and MPC are now required. +* Invalid Operation exception now raised for addition, etc. +* inverse() now raises exception if inverse does not exist. +* Add context methods. +* Major code refactoring required to properly support thread-safe contexts. +* `` __str__`` and ``__repr__`` no longer append "L" on Python 2. +* mpq(mpfr) now returns the exact result. +* Fix repr(mpc) for precision >325 bits. +* Intermediate conversions of Integer to mpfr are now done with the + full precision of the Integer. +* Remove support for interaction with Decimal type. +* No longer attempt to override the memory allocation functions. +* Register gmpy2 types into the numeric tower. +* mpz(x) call int(x) if mpz() does not know how to convert x directly. +* Convert `mpz` to a type using ``__new__`` instead of a factory function. +* Bug fix for ``<> ** <>``. +* Compile with Python 3.11. + Changes in gmpy2 2.1.0rc2 ------------------------- @@ -158,15 +217,14 @@ Changes in gmpy2 2.0.0 ---------------------- * Fix segmentation fault in ``_mpmath_normalize()`` (an undocumented helper - function for mpmath). -* Improved ``setup.py``. See below for documentation on the changes. -* Fix issues when compiled without support for MPFR. + function for mpmath). (casevh) +* Fix issues when compiled without support for MPFR. (casevh) * Conversion of too large an `mpz` to `float` now raises `OverflowError` - instead of returning ``inf``. -* Renamed ``min2()/max2()`` to `minnum()`/`maxnum()` + instead of returning ``inf``. (casevh) +* Renamed ``min2()/max2()`` to `minnum()`/`maxnum()`. (casevh) * The build and install process (i.e. ``setup.py``) has been completely - rewritten. See the Installation section for more information. -* `get_context()` no longer accepts keyword arguments. + rewritten. See the Installation section for more information. (casevh) +* `get_context()` no longer accepts keyword arguments. (casevh) Known issues in gmpy2 2.0.0 ----------------------------- diff --git a/src/gmpy2.c b/src/gmpy2.c index 5138d5f9..90e0fbab 100644 --- a/src/gmpy2.c +++ b/src/gmpy2.c @@ -56,145 +56,6 @@ * ************************************************************************ * - * 2.0.0 - * Fix segfault in _mpmath_normalize if rnd not specified (casevh) - * Improved setup.py (casevh) - * Fix issues encountered when compiled without MPFR support (casevh) - * Conversion of too large an mpz to float now raises OverflowError (casevh) - * Renamed module functions min2()/max2() to minnum()/maxnum() (casevh) - * Added copy() method to contexts (casevh) - * get_context() no longer supports keyword arguments (casevh) - * - ************************************************************************ - * - * 2.1.0 - * Improvements to setup.py. - * Add thread-safe contexts. - * MPFR and MPC are now required. - * Invalid Operation exception now raised for addition, etc. - * inverse() now raises exception if inverse does not exist. - * Add context methods. - * Major code refactoring required to properly support thread-safe - * contexts. - * __str__ and __repr__ no longer append "L" on Python 2. - * mpq(mpfr) now returns the exact result. - * Fix repr(mpc) for precision >325 bits. - * Intermediate conversions of Integer to mpfr are now done with the - * full precision of the Integer. - * Remove support for interaction with Decimal type. - * No longer attempt to override the memory allocation functions. - * Register gmpy2 types into the numeric tower. - * mpz(x) call int(x) if mpz() does not know how to convert x - * directly. - * Convert `mpz` to a type using __new__ instead of a factory - * function. - * - * 2.1.0a1 - * Initial release. - * - * 2.1.0a2 - * Revised build process. - * Removal of unused code/macros. - * Cleanup of Cython interface. - * - * 2.1.0a3 - * Updates to setup.py. - * Initial support for MPFR4 - * - Add nrandom() - * - grandom() now calls nrandom twice; may return different values versus - * MPFR3 - * - Add rootn(); same as root() except different sign when taking even root - * of -0.0 - * - * 2.1.0a4 - * Fix issue 204; missing file for Cython. - * Additional support for MPFR 4 - * - Add fmma() and fmms() - * - * 2.1.0a5 - * Fix qdiv() not returning mpz() when it should. - * Added root_of_unity() - * - * 2.1.0b1 - * Added cmp() and cmp_abs(). - * Improved compatibility with _numbers_ protocol. - * Many bug fixes. - * - * 2.1.0b2 - * Many bug fixes. - * - * 2.1.0b3 - * Version bump only. - * - * 2.1.0b4 - * Fix comparisons with mpq and custom rational objects. - * Fixes for some uncommon integer conversions scenarios. - * - * 2.1.0b5 - * Avoid MPFR bug in mfr_fac_ui (gmpy2.factorial) on platforms where - * long is 32-bits and argument is >= 44787929. - * Fixed testing bugs with Python 2.7. - * Fixed mpz(0) to C long or long long. - * Fixed incorrect results in f2q(). - * Adjust test suite to reflect changes in output in MPFR 4.1.0. - * - * 2.1.0b6 - * Improve argument type processing by saving type information to - * decrease the number of type check calls. Especially helpful - * for mpfr and mpc types. (Not complete but common operations - * are done.) - * Resolve bug in mpfr to mpq conversion; issue #287. - * Added limited support for releasing the GIL; disabled by default; - * see context.allow_release_gil. - * Refactored handling of inplace operations for mpz and xmpz types; - * inplace operations on xmpz will only return an xmpz result. - * Refactored handling of conversion to C integer types. Some - * exception types changes to reflect Python types. - * gcd() and lcm() now support more than two arguments to align with - * the corresponding functions in the math module. - * - * 2.1.0rc1 - * Added support for embedded underscore characters in string - * literals. - * Allow GIL release for mpz/xmpz/mpq types only. - * - * 2.1.0rc2 - * Updates to builds. - * - * 2.1.0 - * Bug fix for <> ** <>. - * Compile with Python 3.11. - * - * 2.1.1 - * Code cleanup. - * Properly return NOTIMPLEMENTED for unsupported arguments in **. - * Issue 319. - * - * 2.1.2 - * Code cleanup. - * Support Apple Silicon binary wheels. - * is_prime(-2) now returns False. Issue 312. - * - * 2.1.3 - * Fix mpz(-3).is_prime(). - * Add powmod_sec(). - * Fix mpfr('inf') and mpfr('nan') if subnormalization is enabled. - * powmod() and powmod_sec() release the GIL. - * Fix error messages for iroot(x,n) for large n. - * Add powmod_base_list() and powmod_exp_list() (experimental). - * Fix gmpy2.mpq(mpq, int). - * Fix issues with INF, NAN, and mpfr("-0") when subnormalization - * is True - * - * 2.1.4 - * Version bump to fix wheel issues. No code changes. - * - * 2.1.5 - * Version bump to fix wheel issues. No code changes. - * - * - ************************************************************************ - * * 2.2.0a1 * Remove support for versions of Python < 3.7. () (skirpichev) * Support more modern build tools. (skirpichev)