[Etoys] [ANN] Squeak/Etoys OLPC page available
yoshiki at vpri.org
Mon May 12 17:35:49 EDT 2008
Hi, Robert (and Robert),
I'm interested in speeding up the project loading for that kind of
projects as well, which mostly consist of Smalltalk code for new
classes and not much Etoys objects. Your games are this kind.
Currently, the standard way to include Smalltalk changes is to
have change set in the project and have it compiled by standard
Smalltalk compiler upon loading. However, you can actually include
CompiledMethods in a project and load them quicker than compiling. My
experiment is along this line.
I made a proof of concept tool for it. To try it:
- File in the attached change set into a relatively new image.
- Load one of your games (such as Pipe) into the image.
- Go to the project and *clear* the changeset of the project from
- Evaluate "ProjectPackager new open" somewhere. You'll get a small
window that is titled "Packager".
- In the upper pane of the Packager, type something like:
#(PlAbstractField PlAbstractFieldTest PlAdjacentBendPipeTest PlAdjacentCrossPipeTest PlAdjacentEndPipeTest PlAdjacentStartPipeTest PlAdjacentStopPipeTest PlAdjacentStraightPipeTest PlAdjacentTPipeTest PlBendPipe PlButtonMorph PlCrossPipe PlEasyPolicy PlEasyPolicyTest PlEmptyField PlEndPipe PlFieldMorph PlFieldMorphDragAndDropTest PlFieldMorphInitializationTest PlFileResourceManager PlFileResourceManagerTest PlFillingNotification PlFillingStrategy PlFloodingNotification PlGame PlGameMorph PlGameOverState PlGameState PlGameStateTest PlGameTest PlHardPolicy PlHardPolicyTest PlHighscoreMorph PlImageMorph PlInitState PlIntegrationTest PlMediumPolicy PlMediumPolicyTest PlMemoryResourceManager PlMenuMorph PlMockGame PlMockLevelPolicy PlMockPolicy PlPausedState PlPipe PlPipeSimpleFillingTest PlPipeSlowFillingTest PlPipeSupply PlPipeSupplyMorph PlPipeSupplyMorphTest PlPipeSupplyTest PlPlayfield PlPlayfieldMorph PlPlayfieldTest PlPresentationPolicy PlRandomizingDecorator PlResourc
eManager PlResourceManagerDecorator PlRulePolicy PlSARCreator PlScoreCounter PlScoreDisplayMorph PlScoreDisplayTest PlSimpleFillingStrategy PlSlowFillingStrategy PlStartedState PlStartPipe PlStopPipe PlStraightPipe PlThemingDecorator PlTimeLabelMorph PlTPipe PlWaterFlowState PlZipResourceManager)
and accept it. You'll see the list of classes. (You could enter
an expression like:
[:c | c name beginsWith: 'Pl']
but it would include other classes like PluggableTextMorph and
wouldn't quite do it for this.) Also, you could probably remove
all the Tests from the list above.
- Set the name of project from the ChangeSorter or the oval text in
the Sugar Bar.
- Now, press the "Save" button in the Packager. It will create a
project with CompiledMethods.
- Compare the performance of project loading; Pipe didn't give as
much boost as I saw other instances, but it speeds up it a little
It is *experimental* and it may as well turn out to be a bad idea.
But if you are interested in making loading these games faster, please
give it a try.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 5691 bytes
Desc: not available
Url : http://lists.squeakland.org/pipermail/etoys-dev/attachments/20080512/7f587606/Packager-yo.2.obj
More information about the etoys-dev