[Etoys] [ANN] Squeak/Etoys OLPC page available

Yoshiki Ohshima 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
    ChangeSorter. 

  - 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
    bit.

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.

-- Yoshiki
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Packager-yo.2.cs
Type: application/octet-stream
Size: 5691 bytes
Desc: not available
Url : http://lists.laptop.org/pipermail/etoys/attachments/20080512/7f587606/attachment.obj 


More information about the Etoys mailing list