1 Jan 2011 18:18
Re: Possible optimization for LOAD_FAST ?
Ned Batchelder <ned <at> nedbatchelder.com>
2011-01-01 17:18:10 GMT
2011-01-01 17:18:10 GMT
On 12/31/2010 12:51 PM, Cesare Di Mauro wrote:
--Ned.
2010/12/31 <skip <at> pobox.com>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 choice.
>> Another example. I can totally remove the variable i, just using the
>> stack, so a debugger (or, in general, having the tracing enabled)
>> cannot even find something to change about it.Ethan> -1
Ethan> Debugging is challenging enough as it is -- why would you want to
Ethan> make it even more difficult?
<snarky>
I don't know. Maybe he wants his program to run faster.
</snarky>
:D"Aggressive" optimizations can be enabled with explicit options, in order to leave normal "debugger-prone" code.
--Ned.
If you use print statements for the bulk of your debugging (many people do),
unrolling loops doesn't affect your debugging ability.
SkipIt's a common practice. Also IDEs helps a lot, and advanced interactive shells too (such as DreamPie)._______________________________________________ Python-Dev mailing list Python-Dev <at> python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/ned%40nedbatchelder.com
Cesare
<div>
On 12/31/2010 12:51 PM, Cesare Di Mauro wrote:
<blockquote cite="mid:AANLkTimmTOSqc43+qhei=C=p7i8Ry7ufiOZziYMZRpsB <at> mail.gmail.com" type="cite">2010/12/31 <span dir="ltr"><<a moz-do-not-send="true" href="mailto:skip <at> pobox.com">skip <at> pobox.com</a>></span><br><blockquote class="gmail_quote">
<div class="im">
<br>
>> Another example. I can totally remove the variable
i, just using the<br>
>> stack, so a debugger (or, in general, having the
tracing enabled)<br>
>> cannot even find something to change about it.</div>
</blockquote>
<blockquote class="gmail_quote">
Ethan> -1<br><br>
Ethan> Debugging is challenging enough as it is -- why
would you want to<br>
Ethan> make it even more difficult?<br><br>
<snarky><br>
I don't know. Maybe he wants his program to run faster.<br>
</snarky><br>
</blockquote>
<div><br></div>
<div>:D</div>
<div><br></div>
<div>"Aggressive" optimizations can be enabled with explicit
options, in order to leave normal "debugger-prone" code.</div>
</blockquote>
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: <a class="moz-txt-link-freetext" href="http://bugs.python.org/issue2506">http://bugs.python.org/issue2506</a>. 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
choice.<br><br>
--Ned.<br><blockquote cite="mid:AANLkTimmTOSqc43+qhei=C=p7i8Ry7ufiOZziYMZRpsB <at> mail.gmail.com" type="cite">
<div> </div>
<blockquote class="gmail_quote">
If you use print statements for the bulk of your debugging (many
people do),<br>
unrolling loops doesn't affect your debugging ability.<br><br>
Skip</blockquote>
<div><br></div>
<div>It's a common practice. Also IDEs helps a lot, and advanced
interactive shells too (such as DreamPie).</div>
<div>
<br>
Cesare<br>
</div>
_______________________________________________
Python-Dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Python-Dev <at> python.org">Python-Dev <at> python.org</a>
<a class="moz-txt-link-freetext" href="http://mail.python.org/mailman/listinfo/python-dev">http://mail.python.org/mailman/listinfo/python-dev</a>
Unsubscribe: <a class="moz-txt-link-freetext" href="http://mail.python.org/mailman/options/python-dev/ned%40nedbatchelder.com">http://mail.python.org/mailman/options/python-dev/ned%40nedbatchelder.com</a>
</blockquote>
</div>
RSS Feed