[Python-Dev] Re: [Python-checkins] CVS: python/dist/src/Include rangeobject.h,2.16,2.17

Thomas Wouters thomas@xs4all.net
Thu, 5 Jul 2001 15:54:47 +0200


On Thu, Jul 05, 2001 at 06:24:46AM -0700, Guido van Rossum wrote:
> Update of /cvsroot/python/python/dist/src/Include
> In directory usw-pr-cvs1:/tmp/cvs-serv8011
> 
> Modified Files:
> 	rangeobject.h 
> Log Message:
> Rip out the fancy behaviors of xrange that nobody uses: repeat, slice,
> contains, tolist(), and the start/stop/step attributes.  This includes
> removing the 4th ('repeat') argument to PyRange_New().

Eek... What do we have the fucking warning framework and deprecation
warnings for, anyway ?! It may sound overly conservative, but I *really*
don't like ripping things out just because you don't like them, without even
as much as a release with a warning (and no, 2.1.1 can't have the warning;
PEP 6 won't allow it.)

You're basically telling people "You didn't use it the way I thought people
would use it but never documented anywhere, so if you used them the way they
are documented, you're screwed." Defense offers exhibit A: the
standard library reference:

http://www.python.org/doc/current/lib/typesseq-xrange.htm:
"XRange objects behave like tuples, and offer a single method"

(Not to mention http://www.python.org/doc/current/lib/typesseq.html which
*strongly* suggests all the operations in the table apply to range-objects
as well as to strings, unicode strings, lists, tuples and buffers.)

The API change also means binary and source level breakages... Is it really
that much trouble to, just for *one* release, keep the functionality and
just generate a warning when the 4th argument is something other than '1' ?

I can live (though not agree with, sorry ;P) the removal of xrange advanced
features... just not from supported to *gone* in a single step.

Wishing-I-hadn't-mentioned-xrange-in-the-other-thread-ly y'rs, ;)
-- 
Thomas Wouters <thomas@xs4all.net>

Hi! I'm a .signature virus! copy me into your .signature file to help me spread!