a pyrex-inspired for-i-from-1-to-n construct backported to Python.Good idea? Bad Idea? PEP?
skip at pobox.com
Wed Apr 2 17:26:45 CEST 2003
Peter> I just scanned a few tens of thousands of lines of our code, and
Peter> as near as I can tell only 13 cases out of over 160 instances of
Peter> "for" loops are using range() or xrange().
Similar numbers here: 146 out of 898.
It appears the builtins namespace (or at least foreign modules' namespaces)
will get somewhat less dynamic -- just enough less that the byte compiler
can tell if an instance of x?range() is calling the usual builtin instead of
a shadow copy -- so tools that care will be able to optimize "for i in
range(x)" just as well as the pyrex syntax. There have been discussions
recently about this topic in python-dev. Also, one of the sprints at PyCon
was aimed at a new version of the bytecode compiler, probably one which
generates code from an abstract syntax tree, allowing easier analysis (and
thus optimization) before generation of bytecode. So instead of
the bytecode might be
which tools like Psyco can detect can use to their advantage.
More information about the Python-list