<br><br><div class="gmail_quote">On Wed, Jun 9, 2010 at 10:25 AM, 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 8 June 2010 19:15, Andreas Raab &lt;<a href="mailto:andreas.raab@gmx.de">andreas.raab@gmx.de</a>&gt; wrote:<br>
&gt;<br>
&gt; On 6/8/2010 7:41 AM, David T. Lewis wrote:<br>
&gt;&gt;<br>
&gt;&gt; What do the VM developers think with respect adopting the VM changes?<br>
&gt;&gt; The immutability bit is a scarce resource. Is it OK to allocate it<br>
&gt;&gt; for this purpose or are there likely to be other projects interested<br>
&gt;&gt; in using it for other reasons?<br>
&gt;<br>
&gt; Honestly, I don&#39;t thinnk the immutability bit carries its weight here.<br>
&gt; There&#39;s some fun stuff you can do with it, for sure, but outside of<br>
&gt; *extremely* specialized applications (oodbs) there will be little to no use<br>
&gt; for it. At least I don&#39;t see where you&#39;d make use of immutability in some<br>
&gt; random app that&#39;s not a database. If it were essentially free to add it, I<br>
&gt; wouldn&#39;t mind (like I said there&#39;s fun stuff that one can do) but given that<br>
&gt; we&#39;re talking about allocating a header bit I feel that there&#39;s just not<br>
&gt; enough mileage we get out of it...<br>
&gt;<br>
&gt; Just my random $.02.<br>
&gt;<br>
<br>
</div></div>my $.001<br>
my concern is not a header bit, but introduction of its check on each<br>
write operation,<br>
which will slow down things.<br></blockquote><div><br></div><div>My experience in VisualWorks and Newspeak was that the total cost was in of the order of a &lt; 5% slowdown over a broad range of benchmarks.  The cost is this small because at least for pointer writes (which includes inst var writes) there is already an expensive store check and adding a few more instructions which access data header data that is almost always already in the cache is a small additional cost.  The relative cost is also small for array writes because of the cost of the bounds check.</div>
<div><br></div><div>best</div><div>Eliot</div><div><br></div><div>P.S. with clever coding the check can be folded into the bounds check for pointer array writes.  The trick is to include the immutable bit into the inst size calculation so that compact header immutable arrays look as if they have no indexable fields because including the immutable bit makes it look like they have a lot of named inst vars.</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
&gt; Cheers,<br>
&gt;  - Andreas<br>
&gt;<br>
<font color="#888888"><br>
<br>
<br>
--<br>
Best regards,<br>
Igor Stasenko AKA sig.<br>
</font></blockquote></div><br>