<div dir="ltr">Nice.  It seems like we have consensus on what to change.<div><br></div><div>I'll push these changes (with the tests) to trunk soon.</div><div><br></div><div>The fix I have for #hash was exactly what Elliot suggested.</div><div>I'll make sure to include the rehash as well (thanks for the code snippit Bert!)</div><div>If no one objects strenuously, I'll also include Eliot's slight rewrite of #= has well - it is marginally cleaner and equally fast, so now is a reasonable time to include it.</div><div><br></div><div>I'll delay working on bug #3380 for now - to fix this, we'd have to also add in a check on class in #= to make sure we aren't comparing an interval to an array.  Unless someone has been bitten by this recently, I'd rather wait.</div><div><br></div><div>-cbc</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Nov 15, 2018 at 1:32 PM Chris Muller <<a href="mailto:asqueaker@gmail.com">asqueaker@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">> Isn't this extremely simple to fix?<br>
><br>
> #= is implemented in terms of start, step, and last.<br>
><br>
> So why not implement #hash as<br>
><br>
> ^(start hash bitXor: step hash) bitXor: self last hash<br>
><br>
> Then in the postscript do a<br>
><br>
> HashedCollection rehashAll<br>
><br>
> and that should be it, right?<br>
><br>
> I did a quick check using<br>
><br>
> Dictionary allInstances select: [ :dict | dict keys anySatisfy: #isInterval]<br>
><br>
> and the system seems fine after that.<br>
<br>
You forgot about the universe that lies beyond the fringes of the<br>
image.  There be persistent data files out there.  And users.<br>
Possibly with systems that rely on Interval>>#hash.<br>
<br>
But since most applications don't use non-Integer based Intervals<br>
(since Interval doesn't really support them, by design, I guess),<br>
there's no reason whatsoever to decimate the universe when Eliot's<br>
simply fixes the corner case that no one is using anyway.<br>
<br>
+1 to Eliots suggestion to fix Interval>>#hash.<br>
<br>
 - Chris<br>
<br>
</blockquote></div>