[squeak-dev] The Trunk: EToys-ul.232.mcz

commits at source.squeak.org commits at source.squeak.org
Sun Sep 11 17:16:21 UTC 2016


Levente Uzonyi uploaded a new version of EToys to project The Trunk:
http://source.squeak.org/trunk/EToys-ul.232.mcz

==================== Summary ====================

Name: EToys-ul.232
Author: ul
Time: 11 September 2016, 7:15:09.419613 pm
UUID: 666e68e0-6e23-4f51-88d8-bdb6b9f4bd0e
Ancestors: EToys-dtl.231

(hopefully) Shave off a few extra minutes of EToys loading by using Schwartzian transform in Morph class >> #unfilteredCategoriesForViewer.
The real culprit is the "new" implementation of String >> #translated, which came with the EToys changes and is at least two magnitudes slower than the previous implementation.

=============== Diff against EToys-dtl.231 ===============

Item was changed:
  ----- Method: Morph class>>unfilteredCategoriesForViewer (in category '*Etoys') -----
  unfilteredCategoriesForViewer
  	"Answer a list of symbols representing the categories to offer in the viewer for one of my instances, in order of:
  	- masterOrderingOfCategorySymbols first
  	- others last in order by translated wording"
  	"
  	Morph unfilteredCategoriesForViewer
  	"
  
  	| aClass additions masterOrder |
  	aClass := self.
  	additions := OrderedCollection new.
+ 	[ aClass == Morph superclass ] whileFalse: [
- 	[aClass == Morph superclass ] whileFalse: [
  		additions addAll: (aClass allAdditionsToViewerCategories keys asArray
+ 			"#translated can be super slow, so use Schwartzian transform"
+ 			replace: [ :each | each -> each translated ];
+ 			sort: [ :a :b | a value <= b value ];
+ 			replace: [ :each | each key ]).
- 			sort: [ :a :b | a translated < b translated ]).
  		aClass := aClass superclass ]. 
  
  	masterOrder := EToyVocabulary masterOrderingOfCategorySymbols.
  
  	^(masterOrder intersection: additions), (additions difference: masterOrder).!



More information about the Squeak-dev mailing list