<div class="gmail_quote">On Fri, Jan 13, 2012 at 5:58 PM, Gregory P. Smith <span dir="ltr">&lt;<a href="mailto:greg@krypto.org">greg@krypto.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

It is perfectly okay to break existing users who had anything depending on ordering of internal hash tables. Their code was already broken. We <b>will</b> provide a flag and/or environment variable that can be set to turn the feature off at their own peril which they can use in their test harnesses that are stupid enough to use doctests with order dependencies.</blockquote>

<div><br>No, that is not how we usually take compatibility between bugfix releases. &quot;Your code is already broken&quot; is not an argument to break forcefully what worked (even if by happenstance) before. The difference between CPython and Jython (or between different CPython feature releases) also isn&#39;t relevant -- historically we have often bent over backwards to avoid changing behavior that was technically undefined, if we believed it would affect a significant fraction of users.<br>

<br>I don&#39;t think anyone doubts that this will break lots of code (at least, the arguments I&#39;ve heard have been &quot;their code is broken&quot;, not &quot;nobody does that&quot;).<br><br></div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

<div class="gmail_quote"><div></div><div>This approach worked fine for Perl 9 years ago.  <a href="https://rt.perl.org/rt3//Public/Bug/Display.html?id=22371" target="_blank">https://rt.perl.org/rt3//Public/Bug/Display.html?id=22371</a></div>

</div></blockquote><div><br>I don&#39;t know what the Perl attitude about breaking undefined behavior between micro versions was at the time. But ours is pretty clear -- don&#39;t do it.<br></div></div><br>-- <br>--Guido van Rossum (<a href="http://python.org/~guido">python.org/~guido</a>)<br>