<div dir="ltr">Might be worth reopening this discussion.  ANY dependencies on #class seem like a bad thing to me, especially while it's still an in-lined message.  Below is the MC version that did it.  Looks like the time to change this 19-year old core method went from "itch" to trunk in all but just a few hours...<div><br><div>________________</div><div>Name: Collections-nice.820<br>Author: nice<br>Time: 12 February 2019, 11:56:35.262017 pm<br>UUID: bb383133-067c-4133-987b-c481a7de69c7<br>Ancestors: Collections-ul.819, Collections-cbc.813<br><br>Definitively abandon SequenceableCollection equality tests based on equal species.<br><br>Old behaviour can still be obtained thru hasEqualElements: but the default is to not try to support such trans-class equality feature because it is much too complex.<br><br>Particularly Interval are no more equal to Arrays with same sequence. We can thus optimize hash a bit more and fix the old bugs of equa objects with different hashes. Merge Collections-cbc.813 for this and rehashAll in postscript.<br><br>There are not so many classes concerned by this change, mainly RunArray, Interval and LinkedList:<br><br>Collection withAllSubclasses select: [:e | [e basicNew species ~= e] on: Error do: [false]]<br>-> an OrderedCollection(WeakRegistry LinkedList Interval ByteCharacterSet CharacterSetComplement LazyCharacterSet WideCharacterSet ShortRunArray Semaphore Mutex TextLineInterval WeakArray Monitor MCVersionName ByteSymbol WideSymbol)<br><br>We will have to change the tests that rely on such equality.<br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jun 29, 2020 at 3:42 AM Nikolay Suslov <<a href="mailto:nsuslovi@gmail.com" target="_blank">nsuslovi@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Thanks Levente, </div><div><br></div><div>Yes, seems to be RFB/VNC from the SqueakSource-SqF project page is outdated (at least it is working in Squeak 5.2 and not in 5.3 and later). Your version works fine!</div><div>However, it is interesting what was the reason for that change just in SequenceableCollection #=. As Set, Bitset, SortedCollection etc. classes still use species comparison in #= (checking they have the same set of keys)?</div><div><br></div><div>Best regards,</div><div>Nikolai</div><div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jun 29, 2020 at 3:43 AM Levente Uzonyi <<a href="mailto:leves@caesar.elte.hu" target="_blank">leves@caesar.elte.hu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Nikolai,<br>
<br>
On Mon, 29 Jun 2020, Nikolay Suslov wrote:<br>
<br>
> Hello all,<br>
> Figuring out, could we go back to the previous version of SequenceableCollection #= method (as in Squeak 5.2), to check if the receiver is equivalent to the otherCollection by using "self species == otherCollection species",<br>
> instead of "self class = otherCollection class"?<br>
<br>
IIRC there was a good reason for that change though I can't recall<br>
what it was. I'm sure the mailing list remembers.</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> The current version of #= method breaks code in different places. For example the RFB/VNC server gives wrong results starting from an authentication process, where RFBMessage is the ByteArray subclass and implements #species.<br>
<br>
If you're looking for a fix, try this: <br>
<a href="http://leves.web.elte.hu/squeak/RFB-ul.18.mcz" rel="noreferrer" target="_blank">http://leves.web.elte.hu/squeak/RFB-ul.18.mcz</a><br>
<br>
<br>
Levente<br>
<br>
> <br>
> Best regards,<br>
> Nikolai<br>
> <br>
><br>
</blockquote></div></div>
<br>
</blockquote></div>