<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On 12 January 2014 21:53, Bert Freudenberg <span dir="ltr">&lt;<a href="mailto:bert@freudenbergs.de" target="_blank">bert@freudenbergs.de</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5"><br>
On 12.01.2014, at 20:42, David T. Lewis &lt;<a href="mailto:lewis@mail.msen.com">lewis@mail.msen.com</a>&gt; wrote:<br>
<br>
&gt; On Sun, Jan 12, 2014 at 02:02:08PM -0500, Colin Putney wrote:<br>
&gt;&gt; On Sun, Jan 12, 2014 at 1:45 PM, Tobias Pape &lt;<a href="mailto:Das.Linux@gmx.de">Das.Linux@gmx.de</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;&gt; Say you want to wrap every object in the system in a proxy.<br>
&gt;&gt;&gt; You would need to use #allObjectsDo:. but when we enumerate all<br>
&gt;&gt;&gt; object, the new ones too, we end up having proxies for proxies for<br>
&gt;&gt;&gt; proxies ad infinitum (endless non-loop?) and we can?t know it?<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Yeah, that&#39;s an example of creating objects faster than we can enumerate<br>
&gt;&gt; them. (Or, exactly as fast as we can enumerate them, I suppose). It<br>
&gt;&gt; wouldn&#39;t have worked pre-closures, either.<br>
&gt;&gt;<br>
&gt;&gt; The consensus so far is that we like the safety of a sentinel object, as it<br>
&gt;&gt; lets us do whatever we want within the loop, and potentially not seeing all<br>
&gt;&gt; the objects in the image is an acceptable trade-off for that safety. Fair<br>
&gt;&gt; enough.<br>
&gt;&gt;<br>
&gt;<br>
&gt; (Changing subject line because original discussion spans commit notices)<br>
&gt;<br>
&gt; The most recent inbox entry System-cwp.663 seems to work fine on an<br>
&gt; interpreter VM.<br>
&gt;<br>
&gt; For my understanding, can you clarify, with respect to the original concern<br>
&gt; that involves MC proxies - does the problem occur with the interpreter VM<br>
&gt; as well as Cog, or was it specific to one kind of VM?<br>
&gt;<br>
&gt; It is worth noting that allObjectsDo: relies on assumptions about how<br>
&gt; the objects memory works internally. It requires that #someObject will<br>
&gt; always answer the object at the lowest address in the object memory, and<br>
&gt; also that a newly allocated object will always be placed at a higher<br>
&gt; address location than all other objects. Either of these assumptions is<br>
&gt; likely to be a problem as new and better object memories and garbage<br>
&gt; collectors are implemented.<br>
&gt;<br>
&gt; Dave<br>
<br>
</div></div>Right (as Eliot&#39;s vm-dev post shows).<br>
<br>
So IMHO the only sensible semantics of allObjectsDo: is as in &quot;allObjects do:&quot; - which might be implemented as a primitive in some VMs soonish. It *should not* enumerate objects created after calling the method.<br>

<span class="HOEnZb"><font color="#888888"><br></font></span></blockquote><div>+1<br> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="HOEnZb"><font color="#888888">
- Bert -<br>
<br>
<br>
<br>
</font></span></blockquote></div><br><br clear="all"><br>-- <br>Best regards,<br>Igor Stasenko.
</div></div>