[squeak-dev] #= ==> #hash issues

Bert Freudenberg bert at freudenbergs.de
Fri Nov 16 03:39:41 UTC 2018


On Thu, Nov 15, 2018 at 5:36 PM Eliot Miranda <eliot.miranda at gmail.com>
wrote:

> Hi Bert,
>
> On Thu, Nov 15, 2018 at 4:38 PM Bert Freudenberg <bert at freudenbergs.de>
> wrote:
>
>> Somehow I missed Eliot's version, but unsurprisingly he had exactly the
>> same idea (use "last" not "stop" for hash). I'd still think bitXor: is
>> preferable to bitOr, that is the standard way in almost all hash methods.
>> But ...
>>
>> BUT: I forgot about the super fallback in #=. That makes this discussion
>> pretty much moot, because since
>>
>> #(1 2 3) = (1 to: 3) "true"
>>
>> is true, this must also be true:
>>
>> #(1 2 3) hash = (1 to: 3) hash  "must be true"
>>
>> So the only proper fix IMHO is to remove #hash from Interval (or replace
>> it with ^super hash and a proper comment)
>>
>
>
> We discussed this a couple of weeks ago.  There is no need for
>     #(1 2 3) = (1 to: 3)
> to be true.
>     #(1 2 3) = #[1 2 3]
> isn’t true.  And we have hasEqualElements:.  So a more coherent approach
> is for the hack that makes intervals equal to arrays be discarded, and the
> hashes kept distinct.
>

Makes sense. The version you posted ("I would have written...") still
delegated to super>>= so I thought we wanted to keep that. But I agree that
it's of little utility.

- Bert -
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20181115/565583ee/attachment.html>


More information about the Squeak-dev mailing list