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

Louis LaBrunda Lou at Keystone-Software.com
Thu Nov 1 12:40:11 UTC 2018


Hi Benoit,

On the latest version of VA Smalltalk:

VA Smalltalk V9.1 (32-bit); Image: 9.1 [413]
VM Timestamp: 4.0, 10/01/18 (100)

I see:

(0 to: 1) = (0 to: 5/3). "false"
(0 to: 1) hash = (0 to: 5/3) hash. "true"

Very interesting.

Lou


On Thu, 1 Nov 2018 02:40:00 +0000 (UTC), Benoit St-Jean via Squeak-dev <squeak-dev at lists.squeakfoundation.org> wrote:

>Interesting!
>
>As a comparison:
>Squeak 5.2
>(0 to: 1) = (0 to: 5/3). "true"(0 to: 1) hash = (0 to: 5/3) hash. "false"
>Dolphin 7(0 to: 1) = (0 to: 5/3). "true"(0 to: 1) hash = (0 to: 5/3) hash. "false"
>VisualWorks 8.1.1(0 to: 1) = (0 to: 5/3). "true"
>(0 to: 1) hash = (0 to: 5/3) hash. "true"
>Pharo 5.0(0 to: 1) = (0 to: 5/3). "true"
>(0 to: 1) hash = (0 to: 5/3) hash. "false"
>
>I don't have VAST installed on the PC I'm using right now.  I'd be curious to see how other Smalltalk and/or GemStone handle this?  So far (according to what I could test, only VW is right (according to the ANSI standard and just plain logic!)
>
>I wonder how much code relies on this "behavior" out there!
>But the ANSI Smalltalk draft is very clear on this (revision 1.9, page 53, http://wiki.squeak.org/squeak/uploads/172/standard_v1_9-indexed.pdf):
>"If the value of receiver = comparand is true then the receiver and comparand *must* have equivalent hash values."
>That's what I always thought (or was taught or even read in the Blue Book).  Was this something that was changed at some point???
>
>---------------- 
>Benoît St-Jean 
>Yahoo! Messenger: bstjean 
>Twitter: @BenLeChialeux 
>Pinterest: benoitstjean 
>Instagram: Chef_Benito
>IRC: lamneth 
>Blogue: endormitoire.wordpress.com 
>"A standpoint is an intellectual horizon of radius zero".  (A. Einstein)
-- 
Louis LaBrunda
Keystone Software Corp.
SkypeMe callto://PhotonDemon



More information about the Squeak-dev mailing list