Hi Igor,<br><br><div class="gmail_quote">On Wed, Jun 9, 2010 at 12:54 PM, Igor Stasenko <span dir="ltr">&lt;<a href="mailto:siguctua@gmail.com">siguctua@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div><div></div><div class="h5"><br>
On 9 June 2010 22:30, Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com">eliot.miranda@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; On Wed, Jun 9, 2010 at 11:51 AM, Andreas Raab &lt;<a href="mailto:andreas.raab@gmx.de">andreas.raab@gmx.de</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; On 6/8/2010 7:41 AM, David T. Lewis wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; What do the VM developers think with respect adopting the VM changes?<br>
&gt;&gt;&gt; The immutability bit is a scarce resource. Is it OK to allocate it<br>
&gt;&gt;&gt; for this purpose or are there likely to be other projects interested<br>
&gt;&gt;&gt; in using it for other reasons?<br>
&gt;&gt;<br>
&gt;&gt; Oh, and one thing that I&#39;m just realizing is that by far the biggest impact of immutability is in primitives and plugins. All primitives in all plugins must be rewritten to test for mutability of the objects they store into before this can work reliably. Ouch.<br>

&gt;<br>
&gt; Ouch indeed.  One can at least put a check in interpreterProxy to catch attempts and cause primitives to fail.  It won&#39;t be pretty but will serve as lint for the plugins.<br>
&gt; Off the top of your head which plugins are likely to do writes?<br>
<br>
</div></div>There is a good primitives and bad ones.<br>
A good ones, which use writes only to receiver. A bad ones, is those,<br>
which doing writes to other objects (arguments/indirectly fetched<br>
objects).<br>
With good ones we could deal very easily, by simply modifying a code<br>
generator to generate a write-check at the beginning of primitive. But<br>
there is no way to deal automatically with bad ones :(<br>
<div class="im"><br>
&gt; And which of those are likely to do writes to immutables?<br>
<br>
</div>well, if we introduce a per-object immutability flag, then any of them<br>
could eventually write to immutable object, isnt?<br></blockquote><div><br></div><div>This really isn&#39;t helpful.  I asked a specific question, not a general encouragement for FUD.  In my looking at plugins I see a few that create new objects, mutate these (obviously not an issue) and return results.  I see others that get passed in containers in which to receive results.  These latter ones need to be changed, not the former.  But I don&#39;t see that many of them.  One of the problems here is that the containers can often be written into by first asking the interpreterProxy for firstIndexableField: or firstFixedField: and then writing through the pointer which would circumvent any attempt by the interpreterProxy to enforce immutability.  But how common are these and how difficult would it be to scan for them?  There are certainly plenty of senders in my image.</div>
<div><br></div><div>cheers</div><div>Eliot</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div><div></div><div class="h5"><br>
&gt;&gt;<br>
&gt;&gt; Cheers,<br>
&gt;&gt;  - Andreas<br>
&gt;<br>
&gt;<br>
&gt;<br>
<br>
<br>
<br>
--<br>
Best regards,<br>
Igor Stasenko AKA sig.<br>
</div></div></blockquote></div><br>