<div dir="ltr">Hi Jakob,<div><br></div><div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, May 16, 2017 at 10:09 AM,  <span dir="ltr"><<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">A new version of System was added to project The Inbox:<br>
<a href="http://source.squeak.org/inbox/System-jr.948.mcz" rel="noreferrer" target="_blank">http://source.squeak.org/<wbr>inbox/System-jr.948.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: System-jr.948<br>
Author: jr<br>
Time: 5 May 2017, 12:08:58.857884 am<br>
UUID: 4a19b143-6a23-b549-ab15-<wbr>0d548da859f4<br>
Ancestors: System-ul.947<br>
<br>
incorporate behaviors from other environments in allBehaviorsDo:<br>
<br>
This enables senders/implementors and method searches across environments.<br>
<br>
=============== Diff against System-ul.947 ===============<br>
<br>
Item was changed:<br>
  ----- Method: SystemNavigation>><wbr>allBehaviorsDo: (in category 'query') -----<br>
  allBehaviorsDo: aBlock<br>
        "Evaluate the argument, aBlock, for each kind of Behavior in the system<br>
        (that is, Object and its subclasses and Traits).<br>
        ar 7/15/1999: The code below will not enumerate any obsolete or anonymous<br>
        behaviors for which the following should be executed:<br>
<br>
                Smalltalk allObjectsDo:[:obj| obj isBehavior ifTrue:[aBlock value: obj]].<br>
<br>
        but what follows is way faster than enumerating all objects."<br>
<br>
+       Environment allInstancesDo: [:environment |<br>
+               environment allClassesAndTraitsDo: [ :class |<br>
+                       aBlock value: class.<br>
+                       class isTrait ifFalse: [ "class of a Trait is Trait, there are no MetaTraits"<br>
+                               aBlock value: class class ] ] ]!<br>
-       self environment allClassesAndTraitsDo: [ :class |<br>
-               aBlock value: class.<br>
-               class isTrait ifFalse: [ "class of a Trait is Trait, there are no MetaTraits"<br>
-                       aBlock value: class class ] ]!<br></blockquote><div><br></div><div>Forgive me for being blunt but Environment allInstancesDo: is absurd and unacceptable.  Environments *must* build some kind of graph that can be enumerated without recourse to a hammer like allInstancesDo:.  This simply doesn't scale.  And it suffers the problem of enumerating environments that are no longer in use but have yet to be garbage collected.  Please roll back this change and take a better approach.</div><div><br></div></div><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>