<div id="__MailbirdStyleContent" style="font-size: 12pt;font-family: calibri;color: #000000">
                                        
                                        
                                            
                                        
                                        
                                        Nice! Seems to work somehow. Graphics are kind of messed up:<div><br></div><div><img src="cid:21683d54-855e-4c93-a99d-006ba95c3939" width="auto" style="width: 644px; height: 554px;"></img></div><div><br></div><div>Still, it is running. It reacts to user input. :)</div><div><br></div><div>Best,</div><div>Marcel</div><div class="mb_sig"></div>
                                        
                                        <blockquote class="history_container" type="cite" style="border-left-style: solid;border-width: 1px;margin-top: 20px;margin-left: 0px;padding-left: 10px;min-width: 500px">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 19.10.2017 08:48:20 schrieb H. Hirzel <hannes.hirzel@gmail.com>:</p>Update: It is now possible to load a project such as home.pr into the<br>6.0a trunk image.<br>Drop a pr file (downloaded from<br>https://freudenbergs.de/bert/squeakjs/Etoys/Home.007.pr) onto the<br>desktop and it loads without blocking. This is due to fixes done this<br>month so far.<br><br>The following notes are written in a way that you can jump in helping<br>to finalize Etoys project loading and setup without having read the<br>earlier messages in this thread.<br><br><br><br>Issues:<br><br><br>1. Walkback window left on screen after loading<br>--------------------------------------------------------------------<br><br>A walk-back window still comes up after home.pr has been loaded.<br>The reason for this still needs to be found out. But just closing the<br>window does not seem to have  a negative effect to the functioning of<br>the etoys project.<br><br><br><br><br>2. Etoys tiles (TileMorph)<br>------------------------------------<br><br>Incrementing and decrementing values in tiles has been fixed so that<br>it is possible to use the project. It was a problem related to the<br>Environment code.<br><br>More tests using the tiles are needed to see if there are more<br>problems such as this.<br><br><br><br><br>3. Loading pr files<br>---------------------------<br><br>Please help testing with loading different pr files. Other loading<br>problems are likely to come up. Focus on projects created with Etoys5.<br>( http://squeakland.org/download/).<br><br>Etoys 5.0 uses the image format 6502<br>(http://wiki.squeak.org/squeak/6502). Loading of this format is done<br>in Smalltalk code (not VM code) in 6.0a trunk (class<br>LegacyImageSegment / ImageSegmentLoader). [1]<br><br>SmartRefStream does the conversion of the loaded objects if necessary.<br><br><br><br><br>4. Cleanup of a loaded project<br>-------------------------------------------<br><br>A loaded project is not yet properly set up.  The button 'previous<br>project' does not work.<br><br>To fix this<br><br>     EtoysProject >> #finalEnterActions:<br><br>needs to be set up.<br><br>The call<br><br>     self world actionMap removeKey: #aboutToLeaveWorld<br><br>as discussed earlier in this thread is one a cleanup actions to be here.<br><br><br>When loading a pr file an instance of  MorphicProject is created as currently<br><br>          MorphicProject->EtoysProject<br><br>has not been mapped yet in SmartRefStream initKnownRenames. This needs<br>to be done.<br><br><br>--Hannes<br><br><br><br>-------------------------------------------------------------<br><br>[1] There are quite a number of etoys pr files around which are not in<br>the 6502 format.<br>http://wiki.squeak.org/squeak/6502<br><br>To fix this other versions of LegacyImageSegment / ImageSegmentLoader<br>are probably necessary.<br><br>On 10/14/17, Marcel Taeumel <marcel.taeumel@hpi.de> wrote:<br>> Hi Hannes,<br>><br>> if you have project instances that need clean-up, you can put that code at<br>> one of several checkpoints:<br>><br>> - entering a project (EtoysProject >> #finalEnterActions:)<br>> - leaving a project (EtoysProject >> #finalExitActions:)<br>> - loading/merging a Monticello package (see postLoad scripts)<br>> - quitting the Squeak image (EtoysProject class >> #shutDown:)<br>> - resuming the Squeak image (EtoysProject class >> #startUp:)<br>> - loading a ChangeSet (see postLoad scripts)<br>><br>> Or if you plan to persist Etoys project in the file system, clean them up<br>> manually (e.g. with a workspace and object inspector) and write the clean<br>> version back to disk for everybody to share.<br>><br>> Best,<br>> Marcel<br>><br>> Am 14.10.2017 12:21:20 schrieb H. Hirzel <hannes.hirzel@gmail.com>:<br>> Thank you Dave for reviewing and merging and committing<br>> Morphic-hjh.1349.mcz.<br>><br>> One of the next issues is that the loaded Etoys project has a key<br>><br>> #aboutToLeaveWorld<br>><br>> in the actionMap which causes an error message to appear when leaving<br>> the project.<br>><br>> Executing<br>><br>> Project current world actionMap removeKey: #aboutToLeaveWorld<br>><br>> or just<br>><br>> self world actionMap removeKey: #aboutToLeaveWorld<br>><br>> if not called from a workspace<br>><br>> solves that problem.<br>><br>> But I am not sure if this is the right thing to do and where to put this.<br>><br>> The event mechanism is not used much in Squeak6.0a. (see thread:<br>> 'PasteUpMorph>>#removeModalWindow has been deprecated --- what do we<br>> need to do?', in particular answer by Bob Arning')<br>><br>><br>> Another issue is that<br>><br>> SugarNavigatorBar showSugarNavigator: true.<br>><br>> needs to be called.<br>><br>><br>> A third question: In which directory should the three projects to preload<br>> stay?<br>> ( Section 3 on http://wiki.squeak.org/squeak/6531)<br>><br>> Smalltalk imagePath<br>><br>> ?<br>><br>><br>> --Hannes<br>><br>> On 10/13/17, H. Hirzel wrote:<br>>> Thank you Bert for the links to the regular three projects (home,<br>>> gallery, tutorials) and the background information.<br>>><br>>><br>>> Update<br>>> -----------<br>>><br>>> for the most recent trunk image Squeak6.0a-17417 with<br>>> Morphic-hjh.1349.mcz loaded manually from the inbox:<br>>><br>>><br>>> https://freudenbergs.de/bert/squeakjs/Etoys/Home.007.pr<br>>><br>>> loads, and works but brings up an error window regarding a #script1.<br>>><br>>> The car is moving around.<br>>><br>>> To leave the project you need to open a workspace and paste and execute<br>>> Project current world actionMap removeKey: #aboutToLeaveWorld<br>>><br>>> The menu entry 'previous project' works fine.<br>>><br>>> - Hannes -<br>>><br>>> On 10/10/17, Bert Freudenberg wrote:<br>>>> On Sat, Oct 7, 2017 at 2:17 AM, David T. Lewis<br>>>> wrote:<br>>>><br>>>>> On Fri, Oct 06, 2017 at 03:48:56PM +0200, Bert Freudenberg wrote:<br>>>>> > It's all class-based. E.g. if the shape of a class changed (new /<br>>>>> > renamed<br>>>>> > inst vars) that class can provide a "conversion method" that creates<br>>>>> > an<br>>>>> > instance with the new layout from the old inst vars (that are loaded<br>>>>> > as<br>>>>> > a<br>>>>> > dictionary). There still is a preference (conversionMethodsAtFileOut)<br>>>>> that<br>>>>> > used to prompt people to provide these conversion methods when they<br>>>>> changed<br>>>>> > a class. But it didn't survive the transition to Monticello, we now<br>>>>> > have<br>>>>> to<br>>>>> > remember to write conversion methods for instances that may be stored<br>>>>> > in<br>>>>> a<br>>>>> > project.<br>>>>><br>>>>> To check my understanding, the "conversion method" might be something<br>>>>> like<br>>>>> #storeDataOn: and #readDataFrom:size: like what I described for<br>>>>> DateAndTime,<br>>>>> is that right?<br>>>>><br>>>><br>>>> ​No, it's those weirdly-named methods like Hannes just made<br>>>> in Morphic-hjh.1349.mcz. The store / read methods aren't used<br>>>> per-object.<br>>>> This<br>>>> would have been too expensive back in the interpreter days on slow CPUs,<br>>>> that's why the project is stored as an image-segment, and the segment is<br>>>> written to a SmartRefStream with its out-pointers (references to objects<br>>>> outside the segment, e.g. classes).<br>>>><br>>>> The SmartRefStream is only used to resolve the class references from the<br>>>> ImageSegment that stores the project.<br>>>><br>>>>> This is different from the Etoys home screen (the clouds and<br>>>>> drive-a-car)<br>>>>> > which is simply a project that would be loaded by the deployment<br>>>>> > script<br>>>>> > that creates an Etoys image. It does not have to ship with the<br>>>>> > general<br>>>>> > Squeak image.<br>>>>><br>>>>> I do not know if it will make sense, but I guess my mental image is an<br>>>>> Etoys "deployed image" hosted inside my regular Squeak trunk image. So<br>>>>> I<br>>>>> guess that I am thinking of the "clouds and drive-a-car" project being<br>>>>> loaded the first time that I create a new EtoysProject from normal<br>>>>> Squeak,<br>>>>> and that somehow the subsequent project navigation within that new<br>>>>> "hosted"<br>>>>> Etoys would behave is if I were in a stand-alone Etoys image. Finally,<br>>>>> I would want to be able to escape back to my normal Squeak.<br>>>><br>>>><br>>>> ​That sounds good :)<br>>>><br>>>> - Bert -​<br>>>><br>>><br>><br>><br><br></hannes.hirzel@gmail.com></marcel.taeumel@hpi.de>
                        </blockquote></div>