Hi Juan,

On Tue, Nov 20, 2018 at 8:00 AM Juan Vuletich <juan@jvuletich.org> wrote:
Hi Eliot,

(below)
On 19/11/2018 02:32 p.m., Eliot Miranda via Cuis-dev wrote:
Hi All,

�� �� In VisualWorks Message implements #= & #hash naturally; two messages whose selectors and arguments are #= are also equal.�� But in Cuis, Squeak and Pharo Message inherits #= and #hash from Object, i.e. uses identity comparison.�� This is, to say the least, annoying.�� Any objections to implementing comparing in Message to match VisualWorks?

_,,,^..^,,,_
best,��Eliot


Just added these implementations to Cuis:

= aMessage
������ "Any object is equal to itself"
������ self == aMessage ifTrue: [ ^ true ].
������ self class == aMessage class ifFalse: [ ^false ].
������ selector = aMessage selector ifFalse: [ ^false ].
������ lookupClass = aMessage lookupClass ifFalse: [ ^false ].
������ ^args = aMessage arguments

this last line should be

������ ^args literalEqual: aMessage arguments

and this is very important :-)

��

hash
������ "Hash is reimplemented because = is implemented."
������ ^selector hash bitXor: args hash

Do they look ok? (I considered lookupClass for #=, but not for hash, as collisions because of that seem unlikely, and in any case, grouping them that way could be useful).

Cheers,
-- 
Juan Vuletich
www.cuis-smalltalk.org
https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev
https://github.com/jvuletich
https://www.linkedin.com/in/juan-vuletich-75611b3
@JuanVuletich


--
_,,,^..^,,,_
best,��Eliot