◐ Shell
clean mode source ↗

Message 89665 - Python tracker

The length calculation in range_iter in Objects/rangeobject.c is 
incorrect, when using a longrangeiterobject.  The length is computed
as:  (stop - start)//step.  It should be ceiling((stop-start)/step), or
1 + (stop - start - 1)//step, provided that start <= stop and step > 0.
It's not clear to me right now whether there may also be problems with 
negative steps, and with cases where start < stop, etc.

I think this is serious enough to be considered a release blocker for 3.1;  
I'm working on a patch, and will post it later today.