[squeak-dev] The Trunk: Kernel-dtl.1096.mcz

David T. Lewis lewis at mail.msen.com
Fri Apr 21 00:10:25 UTC 2017


On Thu, Apr 20, 2017 at 05:14:50PM -0500, Chris Muller wrote:
> That's not the point.  I'm saying if you're going to commit a new
> version of Kernel solely to improve a comment, then make it something
> which can lead someone reading it, way in the future, to have a
> reference link to more information -- like Andres Valloud's name,
> and/or book title.

You're right, the commit notice should have had a reference to the squeak-dev
discussion for the benefit of future readers. Sorry!

It may seem odd to commit an entire Kernel version just for the sake of a
one line comment, but in this case it was a crucial comment that had been
accidentally omitted for the last 17 years, so I though it was worth the
noise. But I should have documented that in the commit notice.

Dave




> 
> On Thu, Apr 20, 2017 at 4:08 PM, Levente Uzonyi <leves at caesar.elte.hu> wrote:
> > Hi Chris,
> >
> > The recent mails of Andres Valloud answer your questions[1][2].
> >
> > Now that I took a deeper look at the function, I found the following issues:
> > 1. It'll overflow into LargeIntegers during computation for some
> > SmallInteger input. That can and should be fixed by adding a bitAnd:
> > 16r3FFF.
> > 2. It will accept negative integers, but I'm not sure if it will work the
> > same way the primitive does.
> >
> > Levente
> >
> > [1]
> > http://lists.squeakfoundation.org/pipermail/vm-dev/2017-April/024826.html
> > [2]
> > http://lists.squeakfoundation.org/pipermail/vm-dev/2017-April/024831.html
> >
> > On Thu, 20 Apr 2017, Chris Muller wrote:
> >
> >> Okay, but it's a given that hash functions are desired to be fast, so
> >> one can always assume optimized code in them.  I was hoping for a
> >> comment that would refer to the origin of this hash function, so one
> >> could research and possibly understand it...
> >>
> >>
> >> On Tue, Apr 18, 2017 at 10:59 AM,  <commits at source.squeak.org> wrote:
> >>>
> >>> David T. Lewis uploaded a new version of Kernel to project The Trunk:
> >>> http://source.squeak.org/trunk/Kernel-dtl.1096.mcz
> >>>
> >>> ==================== Summary ====================
> >>>
> >>> Name: Kernel-dtl.1096
> >>> Author: dtl
> >>> Time: 18 April 2017, 11:59:08.257358 am
> >>> UUID: 877ab97f-9ebe-4405-af31-fe9caab25eb6
> >>> Ancestors: Kernel-eem.1095
> >>>
> >>> SmallInteger>>hashMultiply comment provided by Andres Valloud
> >>>
> >>> =============== Diff against Kernel-eem.1095 ===============
> >>>
> >>> Item was changed:
> >>>   ----- Method: SmallInteger>>hashMultiply (in category 'bit
> >>> manipulation') -----
> >>>   hashMultiply
> >>> +       "Multiply by 1664525 mod 2^28 without overflowing into large
> >>> integers."
> >>>         | low |
> >>> -
> >>>         low := self bitAnd: 16383.
> >>>         ^(16r260D * low + ((16r260D * (self bitShift: -14) + (16r0065 *
> >>> low) bitAnd: 16383) * 16384))
> >>>                         bitAnd: 16r0FFFFFFF!
> >>>
> >>>
> >
> 


More information about the Squeak-dev mailing list