help-smalltalk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Help-smalltalk] faster sets project


From: Ralph Boland
Subject: [Help-smalltalk] faster sets project
Date: Tue, 14 Jul 2009 09:08:37 -0600

I recently released a project called FasterSets into the Squeak repository and
am trying to get it incorporated into the Squeak (and Pharo) base image.
Pharo looks like a go;  Squeak seems to move a little slower.

Meanwhile, my long term plan is to get FasterSets incorporated into all versions
of Smaltalk that I can, including of course, GNU Smalltalk; hence this posting.

The Idea behind FasterSets is to not do any element compares during a Set
(or any of its subclasses) grow operation; since during a grow operation
we know all the elements being added to the set are not already there and
so no compares are needed.  In Squeak this modification results in a reduction
in the average number of element compares during an add: operation of
around  14% (min 7% max 21%).

I see 4 scenarios:

1)  GNU Smalltalk does not want FasterSets.  FasterSets affects low level
      methods in class Set and its subclasses and can break user classes that
      are subclasses of Set and which override these same low level methods.
      (In Pharo FasterSets was tested against a number of packages including
      Seaside without problems.)

2)  In GNU Smalltalk Sets already work this way so there is no need
for FasterSets.

3)  FasterSets is a great idea.  But we want a GNU Smalltalk guru to implement
     this idea from scratch.  It is a simple idea after all.  Thanks
for the idea though.

4)  FasterSets is a great idea.  The originator (me) will create a
project in GNU
     Smalltalk containing the code.  Note that the version of FasterSets
     to be incorporated into Squeak/Pharo will be under the MIT license but the
     version for GNU Smalltalk will be under the GNU license.
     As the creator of the software I can create different licenses
for different
     versions.  I will need to sign the GNU Smalltalk release form.
Since I have
     never used GNU Smalltalk some help with testing project releases will be
     helpful.  Someone else will do the final integration into GNU Smalltalk
     once the project is released.
     This will be a great way for me to become familiar with GNU Smalltalk.

I look forward to feedback.

Ralph Boland




reply via email to

[Prev in Thread] Current Thread [Next in Thread]