[Etoys] How to distribute amd install MO for Apps

Karl karl.ramberg at comhem.se
Thu Nov 22 08:08:38 EST 2007


Yoshiki Ohshima wrote:
>>> Classes and methods except for Player subclasses are not included in 
>>> the project image segment currently.
>>>
>>>       
>> I see that SISSDictionaryForScanning has a forceAdd: method that we 
>> could give the classes in the current change set.
>> What do you think?
>>     
>
>   If I'm not mistaken, Bert was refering to
> #storeOnServerWithNoInteraction method with conventional (i.e.,
> non-SISS) format.
>
>   forceAdd: is a SISS version of DiskProxy and itself doesn't include
> the methods and code.
>
>   I fantasized an idea where methods in projects are 'half-compiled'.
> It would be a compact form of parse tree with holes, and the holes
> would be quickly filled with the global Associations and other
> literals upon loading...
I did a hack like this:

PasteUpMorph>>sissScanObjectsAsEtoysProject

    | dict ret classes |
    dict _ SISSDictionaryForScanning new initialize.
    self cleanUpReferences.
    dict boundaryObjects add: Utilities scrapsBook.
    Utilities scrapsBook pages do: [:p | dict boundaryObjects add: p].
    worldState ifNotNil: [self hands do: [:h | dict boundaryObjects add: 
h]].
    dict _ ChangeSet current changedClasses.
    ret _ dict sissScanObjectsFrom: self.
    ^ ret.

And it seems the project saves the classes in the image segment as the 
size is much bigger that without the hack.
On project load, class methodDictionaries are restored once class 
definitions are filed in, but the method bodies are lost.

Karl



More information about the Etoys mailing list