[Python-Dev] Lukewarm about range literals
Michael Hudson
mwh21@cam.ac.uk
29 Aug 2000 18:34:15 +0100
Skip Montanaro <skip@mojam.com> writes:
> One of the original arguments for range literals as I recall was that
> indexing of loops could get more efficient. The compiler would know that
> [0:100:2] represents a series of integers and could conceivably generate
> more efficient loop indexing code (and so could Python2C and other compilers
> that generated C code). This argument doesn't seem to be showing up here at
> all. Does it carry no weight in the face of the relative inscrutability of
> the syntax?
IMHO, no. A compiler sufficiently smart to optimize range literals
ought to be sufficiently smart to optimize most calls to "range". At
least, I think so. I also think the inefficiency of list construction
in Python loops is a red herring; executing the list body involves
going round & round the eval loop, and I'd be amazed if that didn't
dominate (note that - on my system at least - loops involving range
are often (marginally) faster than ones using xrange, presumably due
to the special casing of list[integer] in eval_code2).
Sure, it would be nice is this aspect got optimized, but lets speed up
the rest of the interpreter enough so you can notice first!
Cheers,
Michael
--
Very rough; like estimating the productivity of a welder by the
amount of acetylene used. -- Paul Svensson, comp.lang.python
[on the subject of the measuring programmer productivity by LOC]