<div dir="ltr"><div><div><div><div>I believe the point of removing assertions is also to avoid throwing unhandled developper errors to end-user and not only "performance".<br></div>It's like "raise" without "try" block.<br>
<br></div>It's certainly because I consider "assert" as a developper util, providing a concrete documentation about methods signatures.<br><br></div>In this idea I've made a small bench to determine if it is interesting for an assertion lib to have null functions as default.<br>
<a href="https://github.com/apieum/BenchAssert">https://github.com/apieum/BenchAssert</a><br><br></div>I don't make critical performance applications but still doubt of the real interest of having dead code to better document.<br>
<div><div><div><div><div><br></div></div></div></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/11/17 Steven D'Aprano <span dir="ltr"><<a href="mailto:steve@pearwood.info" target="_blank">steve@pearwood.info</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Sun, Nov 17, 2013 at 11:35:21AM +0100, Antoine Pitrou wrote:<br>
<br>
> You didn't answer my question: did you actually use -OO in production,<br>
> or not? Saying that -OO could have helped you optimize something you<br>
> didn't care about isn't a very strong argument for -OO :)<br>
<br>
</div>Ah, sorry, I misunderstood your question.<br>
<br>
I didn't use -OO, since I had no reason to remove docstrings. But I did<br>
use -O to remove asserts. I was talking about assertions, not<br>
docstrings. Since I haven't had to write code for embedded devices with<br>
severely constrained memory, I've never cared about using -OO in<br>
production.<br>
<div class="im"><br>
<br>
> What I would like to know is if people *knowingly* add costly asserts<br>
> to performance-critical code, with the intent of disabling them at<br>
> runtime using -OO.<br>
<br>
</div>Yes, I have knowingly added costly asserts to code with the intend of<br>
disabling them at runtime. Was it *performance-critical* code? I don't<br>
know, that was the point of my earlier rambling -- I could demonstrate a<br>
speedup of the individual functions in benchmarks, but nobody spent the<br>
effort to determine which functions were performance critical.<br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
<br>
--<br>
Steven<br>
</font></span><div class="HOEnZb"><div class="h5">_______________________________________________<br>
Python-Dev mailing list<br>
<a href="mailto:Python-Dev@python.org">Python-Dev@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-dev" target="_blank">https://mail.python.org/mailman/listinfo/python-dev</a><br>
Unsubscribe: <a href="https://mail.python.org/mailman/options/python-dev/apieum%40gmail.com" target="_blank">https://mail.python.org/mailman/options/python-dev/apieum%40gmail.com</a><br>
</div></div></blockquote></div><br></div>