On 12/31/2010 12:51 PM, Cesare Di Mauro wrote:
I wish the Python compiler would adopt a strategy of being able to
disable optimizations. I wrote a bug about a "leaky abstraction"
optimization messing up coverage testing 2.5 years ago, and it was
closed as won't fix: http://bugs.python.org/issue2506. The debate
there centered around, "but that line isn't executed, because it's
been optimized away." It's common in sophisticated compilers (as
in, any C compiler) to be able to choose whether you want
optimizations for speed, or disabling optimizations for debugging
and reasoning about the code. Python would benefit from the same
>> Another example. I can totally remove the variable
i, just using the
>> stack, so a debugger (or, in general, having the
>> cannot even find something to change about it.
Ethan> Debugging is challenging enough as it is -- why
would you want to
Ethan> make it even more difficult?
I don't know. Maybe he wants his program to run faster.
"Aggressive" optimizations can be enabled with explicit
options, in order to leave normal "debugger-prone" code.
If you use print statements for the bulk of your debugging (many
unrolling loops doesn't affect your debugging ability.
It's a common practice. Also IDEs helps a lot, and advanced
interactive shells too (such as DreamPie).
Python-Dev mailing list