[issue4258] Use 30-bit digits instead of 15-bit digits for Python integers.

Mark Dickinson report at bugs.python.org
Tue Feb 24 19:19:44 CET 2009


Mark Dickinson <dickinsm at gmail.com> added the comment:

Okay, let's abandon 30-bit digits on 32-bit machines:  it's still 
unclear whether there's any real performance gain, and it's trivial to 
re-enable 30-bit digits by default later.  I'm also going to abandon the 
optimizations for now;  it'll be much easier to work on them once the base patch is in.

Here's a 'release-candidate' version of the patch:  it's exactly the 
same as before, except:

  - I removed all x_divrem changes (though I've left the extra division
    tests in, since they're just as relevant to the old x_divrem).
    I'll open a separate issue for these optimizations.

  - enable 30-bit digits by default only on 64-bit platforms, where
    for the purposes of this patch a 64-bit platform is one with all
    the necessary integer types available (signed and unsigned 32-
    and 64-bit integer types) and SIZEOF_VOID_P >= 8.

I've also updated the version uploaded to Rietveld:  the patchset there 
should exactly match 30bit_longdigit20.patch.  See:

  http://codereview.appspot.com/14105


Martin, thank you for all your help with reviewing the previous patch.  
Is it okay with you to check this version in?  It's the same as the 
version that you reviewed, except with some extra tests for correct 
division, and with 30-bit digits disabled by default on 32-bit 
platforms.

Gregory, if you have time, please could you double check that the 
configure stuff is working okay for you with this patch?  "configure --
enable-big-digits" should produce 30-bit digits; "configure --disable-
big-digits" should produce 15-bit digits, and a plain "configure" should 
give 15-bit or 30-bit depending on your platform.

Anyone else have any objections to this going in exactly as it is?  I'd 
quite like to resolve this issue one way or the other and move on.

----------
assignee:  -> marketdickinson
Added file: http://bugs.python.org/file13164/30bit_longdigit20.patch

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue4258>
_______________________________________


More information about the Python-bugs-list mailing list