[Python-3000] optimizing [x]range
Stargaming
stargaming at gmail.com
Fri Aug 3 10:13:58 CEST 2007
On Thu, 02 Aug 2007 15:25:36 -0700, Guido van Rossum wrote:
> On 8/2/07, "Martin v. Löwis" <martin at v.loewis.de> wrote:
>> > The patch is based on the latest trunk/ checkout, Python 2.6. I don't
>> > think this is a problem if nobody else made any effort towards making
>> > xrange more sequence-like in the Python 3000 branch. The C source
>> > might require some tab/space cleanup.
>>
>> Unfortunately, this is exactly what happened: In Py3k, the range object
>> is defined in terms PyObject*, so your patch won't apply to the 3k
>> branch.
>
> FWIW, making xrange (or range in Py3k) "more sequence-like" is exactly
> what should *not* happen.
No, that's exactly what *should* happen for optimization reasons.
xrange has never (neither in 2.6 nor 3.0) had an sq_contains slot.
Growing such a slot is a precondition for implementing
xrange.__contains__ as an optimized special case, and that makes it more
sequence-like on the side of the implementation. This does not mean it
becomes more like the 2.x range, which we're abandoning.
Sorry for the confusion.
More information about the Python-3000
mailing list