[squeak-dev] DateAndTime hashing

Eliot Miranda eliot.miranda at gmail.com
Mon Jan 7 04:52:18 UTC 2019


Hi Chris,

On Sun, Jan 6, 2019 at 3:54 PM Chris Muller <asqueaker at gmail.com> wrote:

> > On Sat, Jan 05, 2019 at 08:53:52PM -0800, Eliot Miranda wrote:
> > > Hi David,
> > >
> > > > On Jan 5, 2019, at 8:17 PM, David T. Lewis <lewis at mail.msen.com>
> wrote:
> > > >
> > > > I don't think that this has a practical impact, but I will mention it
> > > > in case I am overlooking something. The hash for a DateAndTime in a
> > > > 64-bit image will be different from the hash for the same DateAndTime
> > > > in a 32-bit image, because the utcMicroseconds value in a 64-bit Spur
> > > > image is a SmallInteger, and in a 32-bit image it is a
> LargePositiveInteger.
> > >
> > > This was taken care of for this kind of scenario in
> > >
> > > Name: Kernel-eem.1198
> > > Author: eem
> > > Time: 24 November 2018, 1:44:47.526422 pm
> > > UUID: 100137c4-2514-4b7f-9064-3dcdfe7d8cc9
> > > Ancestors: Kernel-eem.1197
> > >
> > > Redefine LargePositiveInteger hash for compatibility between 32-bit
> > > and 64-bit systems.
>
> Shouldn't the condition should be  ^self digitLength <= 4, instead of 8?
>

Of c course not.  It should be that all integers of 64-bits or less are
their rowen hashes.

>
> See?
>
> 32-bit image
>    1073741824 hash =    230045764
>
> 64-bit image
>    1073741824 hash  = 1073741824
>

No.  You must be using an un-updated image.  Here's what I get:

Smalltalk wordSize 4
(2 raisedTo: 63) hash = (2 raisedTo: 63) true
(SmallInteger maxVal + 1) hash = (SmallInteger maxVal + 1) true


Smalltalk wordSize 8
(2 raisedTo: 63) hash = (2 raisedTo: 63) true
(SmallInteger maxVal + 1) hash = (SmallInteger maxVal + 1) true


>
> I must be missing something.  I can't believe we didn't notice this
> and went into trunk before asking this question...
>

Um, please.  I /did/ ask the question, I /did/ test.  I /do know/ that the
idea is for integers of 64-bits or less be their own hashes.  Your result
clearly indicates that you're using some erroneous configuration.


>
>
>
>
> > Ah, right, I forgot about that update. I was looking at an outdated
> 32-bit image.
> >
> > Thanks!
> > Dave
> >
> >
>
>

-- 
_,,,^..^,,,_
best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20190106/94337807/attachment.html>


More information about the Squeak-dev mailing list