<div dir="ltr">Hi Marcel,<div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 5, 2018 at 1:59 AM, Marcel Taeumel <span dir="ltr"><<a href="mailto:marcel.taeumel@hpi.de" target="_blank">marcel.taeumel@hpi.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id="m_-7122697846681493901__MailbirdStyleContent" style="font-size:12pt;font-family:calibri;color:#000000">
                                        
                                        
                                            
                                        
                                        
                                        Well, "ActiveWorld" is a dynamic variable that provides dynamic scope. Just like "ActiveEvent" and "ActiveHand". Useful and powerful in some cases. To be applied with caution. Yet, we have no alternative at the moment. Personally, I think we do not need any.</div></blockquote><div><br></div><div>Agreed.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id="m_-7122697846681493901__MailbirdStyleContent" style="font-size:12pt;font-family:calibri;color:#000000"><div><br></div><div>"World" is a global variable that we do not need anymore since the addition of "Project" and the projects concept some time ago.</div></div></blockquote><div><br></div><div>Agreed, given ActiveWorld.  But then shouldn't we use ActiveWorld rather than Project current world?</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id="m_-7122697846681493901__MailbirdStyleContent" style="font-size:12pt;font-family:calibri;color:#000000"><div><br></div><div>Then, each visible morph has its own reference to a world. Usually, code should refer to this world when passing an instance as message argument.</div></div></blockquote><div><br></div><div>Right.  self world wherever possible.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id="m_-7122697846681493901__MailbirdStyleContent" style="font-size:12pt;font-family:calibri;color:#000000"><div><br></div><div>---</div><div><br></div><div>Currently, we have 6 senders of "World" left. We should make it 0.</div><div>We also have 219 senders of "ActiveWorld" left. We should reduce that number to 10 or so in the core Morphic framework. Most of the other cases do not require ActiveWorld.</div><div><br></div><div>---</div><div><br></div><div>Dynamically-scoped variables are great for writing robust tests in such a primarily state-based environment. :-)</div></div></blockquote><div><br></div><div>Are you being sarcastic?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id="m_-7122697846681493901__MailbirdStyleContent" style="font-size:12pt;font-family:calibri;color:#000000"><div><br></div><div>Best,</div><div>Marcel</div><div><div class="h5"><div class="m_-7122697846681493901mb_sig"></div>
                                        
                                        <blockquote class="m_-7122697846681493901history_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 05.04.2018 10:36:57 schrieb Nicolas Cellier <<a href="mailto:nicolas.cellier.aka.nice@gmail.com" target="_blank">nicolas.cellier.aka.nice@<wbr>gmail.com</a>>:</p>
<div dir="ltr"><div><div><div><div><div>Hi Marcel,<br></div>yes, but the goal is rather to get rid of a global state (The single active World) and replace with a specific world passed by message or whatever.<br></div>In Project current world, we have messages that provide indirection levels instead of a direct access by global scope.<br></div>This is maybe more robust to future change (in balance with less simplicity).<br></div>But we still have a global state (The active world).<br></div>Maybe that's what Eliot was meaning (but I should rather let Eliot speak).<br></div><div class="gmail_extra"><br><div class="gmail_quote">2018-04-05 10:03 GMT+02:00 Marcel Taeumel <span dir="ltr"><<a href="mailto:marcel.taeumel@hpi.de" target="_blank">marcel.taeumel@hpi.de</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;min-width:500px"><div><div id="m_-7122697846681493901m_-7224496582747412338__MailbirdStyleContent" style="font-size:12pt;font-family:calibri;color:#000000">
                                        Ah, sorry. In my mind, I separate classes from other globals. I was referring to these other globals. Classes are fine -- even though one should always evaluate the need for any new class in the system, too.<div><br></div><div><div>Best,</div><div>Marcel</div></div><div><div class="m_-7122697846681493901h5"><div class="m_-7122697846681493901m_-7224496582747412338mb_sig"></div><blockquote class="m_-7122697846681493901m_-7224496582747412338history_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 05.04.2018 09:59:29 schrieb Nicolas Cellier <<a href="mailto:nicolas.cellier.aka.nice@gmail.com" target="_blank">nicolas.cellier.aka.nice@gmai<wbr>l.com</a>>:</p>
<div dir="ltr"><div>But we replaced a global World by another global Project.<br></div>It's more about limiting the number of globals to a set of more universal roots?<br><div><div><div class="gmail_extra"><br><div class="gmail_quote">2018-04-05 9:42 GMT+02:00 Marcel Taeumel <span dir="ltr"><<a href="mailto:marcel.taeumel@hpi.de" target="_blank">marcel.taeumel@hpi.de</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;min-width:500px"><div><div id="m_-7122697846681493901m_-7224496582747412338m_5825050922930680795__MailbirdStyleContent" style="font-size:12pt;font-family:calibri;color:#000000">
                                        Because with "Project current world" we have messaging (#current, #world) as point of variation. Pure state access via globals is too limited.<div><br></div><div>Best,</div><div>Marcel</div><div><div class="m_-7122697846681493901m_-7224496582747412338h5"><div class="m_-7122697846681493901m_-7224496582747412338m_5825050922930680795mb_sig"></div><blockquote class="m_-7122697846681493901m_-7224496582747412338m_5825050922930680795history_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 04.04.2018 20:18:58 schrieb Eliot Miranda <<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>>:</p>
<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Apr 3, 2018 at 11:44 PM, Marcel Taeumel <span dir="ltr"><<a href="mailto:marcel.taeumel@hpi.de" target="_blank">marcel.taeumel@hpi.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex;min-width:500px"><div><div id="m_-7122697846681493901m_-7224496582747412338m_5825050922930680795gmail-m_-5567125692038360107__MailbirdStyleContent" style="font-size:12pt;font-family:calibri;color:rgb(0,0,0)">
                                        It should be "Project current world" then.</div></div></blockquote><div><br></div><div>But World == Project current world. Why not just World?  (That's a sincere question, not an attempt to disagree)</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex;min-width:500px"><div><div id="m_-7122697846681493901m_-7224496582747412338m_5825050922930680795gmail-m_-5567125692038360107__MailbirdStyleContent" style="font-size:12pt;font-family:calibri;color:rgb(0,0,0)"><div><br></div><div>Best,</div><div>Marcel</div><div><div class="m_-7122697846681493901m_-7224496582747412338m_5825050922930680795gmail-h5"><div class="m_-7122697846681493901m_-7224496582747412338m_5825050922930680795gmail-m_-5567125692038360107mb_sig"></div><blockquote class="m_-7122697846681493901m_-7224496582747412338m_5825050922930680795gmail-m_-5567125692038360107history_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:rgb(170,170,170);margin-top:10px">Am 04.04.2018 06:17:03 schrieb <a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a> <<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>>:</p>Chris Muller uploaded a new version of Morphic to project The Trunk:<br><a href="http://source.squeak.org/trunk/Morphic-cmm.1408.mcz" target="_blank">http://source.squeak.org/trunk<wbr>/Morphic-cmm.1408.mcz</a><br><br>==================== Summary ====================<br><br>Name: Morphic-cmm.1408<br>Author: cmm<br>Time: 3 April 2018, 11:15:51.160237 pm<br>UUID: 35b2e2ad-c421-4510-a635-774bfd<wbr>84e597<br>Ancestors: Morphic-cmm.1407<br><br>The responsibility of #anyOpenWindowLikeMe, as indicated by its name, is to look in the actual World world for any open window like the receiver, not the receivers #world (which is nil, because because we wish to look in the real world first!).<br>   Fixes the Reuse Windows preference.<br><br>=============== Diff against Morphic-cmm.1407 ===============<br><br>Item was changed:<br>  ----- Method: SystemWindow>>anyOpenWindowLik<wbr>eMe (in category 'open/close') -----<br>  anyOpenWindowLikeMe<br>         <br>      self class reuseWindows ifFalse: [ ^Array empty ].<br>    ^ SystemWindow<br>+               windowsIn: World <br>-            windowsIn: self world <br>                satisfying: <br>                          [ : each |<br>                    each model class = self model class<br>                           and: [ (each model respondsTo: #representsSameBrowseeAs:) <br>                            and: [ each model representsSameBrowseeAs: self model ] ] ]<br>  !<br><br><br>
                        </blockquote>
                                        </div></div></div></div><br><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="m_-7122697846681493901m_-7224496582747412338m_5825050922930680795gmail_signature"><div dir="ltr"><div><span style="font-size:10pt;border-collapse:separate"><div>_,,,^..^,,,_<br></div><div>best, Eliot</div></span></div></div></div>
</div></div>

                        </blockquote>
                                        </div></div></div></div><br><br>
<br></blockquote></div><br></div></div></div></div>

                        </blockquote>
                                        </div></div></div></div><br><br>
<br></blockquote></div><br></div>

                        </blockquote></div></div></div><br><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><span style="font-size:small;border-collapse:separate"><div>_,,,^..^,,,_<br></div><div>best, Eliot</div></span></div></div></div>
</div></div>