<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Oct 27, 2014 at 9:55 AM, Levente Uzonyi <span dir="ltr">&lt;<a href="mailto:leves@elte.hu" target="_blank">leves@elte.hu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> <br>On Mon, 27 Oct 2014, Eliot Miranda wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
See my message earlier in the thread.  Via a per-object isImmutable bit.<br>
</blockquote>
<br>
So you would set the bit for the CompiledMethod and all literals (including sub-arrays, floats, integers, booleans etc)?<br></blockquote><div><br></div><div>The literals, definitely.  Whether the bit is set for compiled methods or not depends on things like how easy you want to be able to update the source pointer or add/delete properties.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Does the set immutability bit also mean that the object can&#39;t be swapped with #become:?<br></blockquote><div><br></div><div>That&#39;s debatable, but in VW we disallowed two-way become: and allowed one-way become: for immutables.  I think that&#39;s right.  one-way become is about references to objects, two-way become is about changing objects themselves. </div><div> </div></div>-- <br>best,<div>Eliot</div>
</div></div>