[Python-Dev] Re: mpz module broken with GMP 4.0

Alex Martelli aleax@aleax.it
Sat, 15 Dec 2001 19:23:26 +0100


On Saturday 15 December 2001 17:23, Guido van Rossum wrote:
> See SF bug #493631:
>
> http://sourceforge.net/tracker/index.php?func=detail&aid=493631&group_id=
>5470&atid=105470
>
> The mpz modules doesn't work with GMP 4.0 (which is brand new --
> http://www.swox.com/gmp/ lists Dec 1, 2001 as the release date).
>
> It looks like the mpz module is a mess.  The setup.py file contains a
> reference to pympz.sourceforge.net, but that doesn't exist.
>
> There is, however, a SF project gmpy, which seems to be a Python
> wrapper for GMP 3.0 (does it work with GMP 4.0?).  I'm cc'ing the
> project admins, maybe they can shed light on this.

Thanks for the indication -- I was not aware of the new GMP 4.0.  A rapid 
test shows the current gmpy.c, release 0.8, breaks in exactly one place 
(structure gmpstate_t used to have a member named seed, now renamed to 
_mp_seed).  Once that single line is fixed, gmpy 0.8 builds fine (on a 
Linux box) with the new GMP 4.0 and passes all of its 973 unit-tests (with 
Python 2.2b1).  I think we should rapidly release a 0.8.1 with the one-line 
fix (arranged so it keeps building with GMP 3.1 while also building with 
4.0, of course), and plan the modest gmpy extensions needed to exploit 
4.0's novelties later (it's likely that little or no work is needed for 
that, since 4.0 seems to have mostly relaxed previous argument constraints, 
and gmpy generally doesn't duplicate GMP's own argument validity tests).

Having gmpy fully exploit Python 2.2 is a longer-term objective (expose all 
types and make them inheritable).


Alex