[Python-Dev] 64-bit process optimization 1

Tim Peters tim.one@comcast.net
Mon, 09 Sep 2002 14:16:18 -0400


[Guido]
> ...
> So perhaps the refcnt should have been a long in the first place.

We agreed to that years ago, but never bothered to change it.  In fact, you
used to tell people it *was* a long until I beat that out of you <wink>.

Do note that a long is still only 4 bytes on Win64.  The type we really want
here is what pyport.h calls Py_intptr_t (a Python spelling of the
appropriate C99 type; C99 introduced ways to say what you really mean in
these cases).

> A similar argument may hold for the length of e.g. strings and lists:
> one could wish to have a list of more than 2 billion elements, or a
> string containing more than 2 gigabytes (that much RAM is easily found
> on the larger 64-bit servers, I believe).
>
> Opinions?

Those are more naturally addressed by size_t, since strlen and malloc are
constrained to that type.  I generally declare string-slinging code as using
size_t vars now, and endure the pain of casting back and forth to int to
talk with Python's idea of a string size.

Whether it's worth the pain to change this stuff depends on whether we think
64-bit boxes are just another passing fad like the Internet <wink>.