On Wed, Nov 19, 2014 at 11:33:41PM +0000, commits@source.squeak.org wrote:
Eliot Miranda uploaded a new version of Kernel to project The Trunk: http://source.squeak.org/trunk/Kernel-eem.885.mcz
==================== Summary ====================
Name: Kernel-eem.885 Author: eem Time: 19 November 2014, 3:33:32.003 pm UUID: 6e239e5b-b957-4ff6-a3ce-bb3ee10cf826 Ancestors: Kernel-eem.884
Steal the Smalltalk-80 V2 definition of SmallInteger>> digitAt: which doesn't assume max digit length.
Interesting. The 32-bit optimization in digitAt: has been in Squeak since 1999, but it seems to have very little performance benefit on my system (measured on a somewhat random combination of AMD Ubuntu with 64 bit image and interpreter VM to prevent any misleading optimizations).
Assuming that the 1999 optimizations were important for at least some platforms, I tried to adapt that method to accommodate 32 and 64 bit integer sizes. The result was slower than any of the previous implementations.
So +1 for adopting the unoptimized Smalltalk-80 V2 definition of SmallInteger>>digitAt:
Dave
On 20.11.2014, at 03:08, David T. Lewis lewis@mail.msen.com wrote:
On Wed, Nov 19, 2014 at 11:33:41PM +0000, commits@source.squeak.org wrote:
Eliot Miranda uploaded a new version of Kernel to project The Trunk: http://source.squeak.org/trunk/Kernel-eem.885.mcz
==================== Summary ====================
Name: Kernel-eem.885 Author: eem Time: 19 November 2014, 3:33:32.003 pm UUID: 6e239e5b-b957-4ff6-a3ce-bb3ee10cf826 Ancestors: Kernel-eem.884
Steal the Smalltalk-80 V2 definition of SmallInteger>> digitAt: which doesn't assume max digit length.
Interesting. The 32-bit optimization in digitAt: has been in Squeak since 1999, but it seems to have very little performance benefit on my system (measured on a somewhat random combination of AMD Ubuntu with 64 bit image and interpreter VM to prevent any misleading optimizations).
Assuming that the 1999 optimizations were important for at least some platforms, I tried to adapt that method to accommodate 32 and 64 bit integer sizes. The result was slower than any of the previous implementations.
So +1 for adopting the unoptimized Smalltalk-80 V2 definition of SmallInteger>>digitAt:
Yes, although IMHO the recursive call to digitAt: is trying to be too clever. I don't see why it couldn't use a bitShift: and bitAnd: directly.
- Bert -
squeak-dev@lists.squeakfoundation.org