2009/7/14 Paolo Bonzini <[email protected]>: >> 2) In GNU Smalltalk Sets already work this way so there is no need >> for FasterSets. > > It's this. :-) > > Paolo >
I downloaded GNU Smalltalk and checked (which I should have done in the beginning) and determined that in fact GNU Smalltalk Sets and subclasses (and also Dictionary and its subclasses) do NOT avoid element compares during a grow operation! Thus set and dictionary adds of elements not already in the collection can be improved to do on average 14% fewer compares. So can I get a response on which of the remaining scenario's proposed is considered the best. Regards, Ralph Boland >> 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%). Note that in Squeak Dictionary is a subclass of Set so this improvement applies to Dictionary and its subclasses as well! >> 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. HA! >> 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 _______________________________________________ help-smalltalk mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-smalltalk
