[Python-Dev] PEP 3144 review.

Terry Reedy tjreedy at udel.edu
Wed Sep 16 23:50:39 CEST 2009


Peter Moody wrote:
> On Wed, Sep 16, 2009 at 1:35 PM, Antoine Pitrou <solipsis at pitrou.net> wrote:
>> Le Mon, 14 Sep 2009 09:44:12 -0700, Peter Moody a écrit :
>>> Folks, Guido,
>>>
>>> I believe PEP 3144 is ready for your review.  When you get a chance, can
>>> you take a look/make a pronouncement?
>> Besides what has already been said in the thread, I have a bunch of
>> comments:
>>
>>    It should be noted
>>    that __len__ doesn't work as expected since python internals has this
>>    limited to a 32 bit integer and it would need to be at least 128 bits
>> to
>>    work with IPV6.
>>
>> You should clarify what it means: does the result get truncated, or is an
>> error thrown when it can't fit inside an int?
> 
> I'll clarify this, but it looks like this:
> 
>>>> len(xrange(0xFFFFFFFFFFFFFFFFFFFFFFFFF))
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
> OverflowError: long int too large to convert to int
> 
> basically, __len__(self): can only return an int. At least that's what
> I recall from the discussion.

FWIW, the limitation remains in Py3, with a modified error msg.
 >>> len(range(0xFFFFFFFFFFFFFFFFFFFFFFFFF))
Traceback (most recent call last):
   File "<pyshell#1>", line 1, in <module>
     len(range(0xFFFFFFFFFFFFFFFFFFFFFFFFF))
OverflowError: Python int too large to convert to C ssize_t



More information about the Python-Dev mailing list