<br><div class="gmail_quote">On Sun, Jan 15, 2012 at 8:46 AM, Stefan Behnel <span dir="ltr">&lt;<a href="mailto:stefan_ml@behnel.de">stefan_ml@behnel.de</a>&gt;</span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


It also seems to me that the wording &quot;has a hash value which never changes<br>
during its lifetime&quot; makes it pretty clear that the lifetime of the hash<br>
value is not guaranteed to supersede the lifetime of the object (although<br>
that&#39;s a rather muddy definition - memory lifetime? or pickle-unpickle as<br>
well?).<br></blockquote><div><br></div><div>Lifetime to me means of that specific instance of the object. I would not expect that to survive pickle-unpickle.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
However, this entry in the glossary only seems to have appeared with Py2.6,<br>
likely as a result of the abc changes. So it won&#39;t help in defending a<br>
change to the hash function.<br></blockquote><div><br></div><div>Ugh, I really hope there is no code out there depending on the hash function being the same across a pickle and unpickle boundary.  Unfortunately the hash function was last changed in 1996 in <a href="http://hg.python.org/cpython/rev/839f72610ae1">http://hg.python.org/cpython/rev/839f72610ae1</a> so it is possible someone somewhere has written code blindly assuming that non-guarantee is true.</div>

<div><br></div><div>-gps</div><div><br></div></div>