<div dir="ltr">Hi Alexandre,<br><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, May 4, 2014 at 1:09 PM, Alexandre Bergel <span dir="ltr">&lt;<a href="mailto:alexandre.bergel@me.com" target="_blank">alexandre.bergel@me.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="auto"><div>Why is immutability related to the memory management? </div>
</div></blockquote><div><br></div><div>It isn&#39;t.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="auto"><div>Are you referring to the change in the header, therefore the garbage collector has to be aware of the extra bit?</div></div></blockquote><div><br></div><div>The object representation needs to make room for the bit in the header, but the GC ignores it completely.  However, the memory manager (of which the GC is a component) implements the core of e.g. the become primitive and that primitive can reasonably be expected to fail an attempt to become an immutable object.</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="auto"><div><br></div><div>Cheers,</div>
<div>Alexandre</div><div><br>Le 04-05-2014 à 12:05, Clément Bera &lt;<a href="mailto:bera.clement@gmail.com" target="_blank">bera.clement@gmail.com</a>&gt; a écrit :<br><br></div><div><div class="h5"><blockquote type="cite">
<div><div dir="ltr">Hello,<div><br></div><div>Immutability needs to be implemented in the VM. It is quite some work on the current memory manager. Few people have enough skills to do this kind of changes nicely and efficiently, and none of them had enough time to do it. However, things are now moving quicker and quicker and some work and immutability has started.</div>


<div><div><br></div><div>Right now part of the VM work is focusing the new memory manager Spur that will be released for Pharo 4. This new memory manager will feature immutability (1 bit in the object header is now reserved for this purpose). However, although immutability is required by some projects and people, it is quite far away on the To Do list right now (firstly, the new memory manager needs to work efficiently, be stable, be in production, ...). Therefore, you may have to wait for Pharo 5 (2 years from now) to have immutability in production.</div>


<div><br></div></div><div>Best,</div><div>Clement</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-05-04 8:40 GMT-07:00 Aaron Rosenzweig <span dir="ltr">&lt;<a href="mailto:aaron@chatnbike.com" target="_blank">aaron@chatnbike.com</a>&gt;</span>:<br>


<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word"><div>Hello,</div><div><br>
</div><div>Why is the concept of “immutability” special to VisualWorks? Is it something hard to add to other Smalltalk dialects such as Pharo or are there other reasons for not having it?</div>

<div><br></div><div>When I read the docs for the GOODS database client it says the following:</div><div><br></div>“The GOODS client uses this immutability support for change detection.”<div><br></div><div>It goes on to say that this is only for VisualWorks. For Pharo it says that it is generally slow to commit changes because the client to the OODB has to spent extra time detecting change detection. I guess for VisualWorks it is basically “free” to detect a change in an object. </div>


<div><br></div><div><div><div>Thank you,<table style="margin-top:0.5em;margin-left:0.5em;margin-bottom:30px" border="0"><tbody><tr><td colspan="2" style="padding-bottom:0.3em"><span style="font-family:&#39;Trebuchet MS&#39;,helvetica,San-Serif;font-size:11px;color:rgb(136,136,136);line-height:22px"><b style="color:rgb(17,174,171);text-transform:uppercase;letter-spacing:2px">Aaron Rosenzweig</b> / <a href="http://www.chatnbike.com" title="visit Chat &#39;n Bike" style="text-decoration:none;border-bottom-width:1px;border-bottom-style:dotted;border-bottom-color:rgb(136,136,136);color:rgb(136,136,136)" target="_blank">Chat &#39;n Bike</a></span><br>



                        <span style="font-family:&#39;Trebuchet MS&#39;,helvetica,San-Serif;font-size:11px;color:rgb(178,178,178)"><b style="color:rgb(136,136,136)">e:</b>  <a href="mailto:aaron@chatnbike.com" title="email Aaron" style="text-decoration:none;border-bottom-width:1px;border-bottom-style:dotted;border-bottom-color:rgb(178,178,178);color:rgb(178,178,178)" target="_blank">aaron@chatnbike.com</a>  <b style="color:rgb(136,136,136)">t:</b>  <a href="tel:%28301%29%20956-2319" value="+13019562319" target="_blank">(301) 956-2319</a></span>
                </td>
        </tr>
        <tr>
                <td>
                        <img src="http://www.chatnbike.com/WebObjects/FamilyCycleGroupOrder.woa/Contents/WebServerResources/images/chat_n_bike_logo_small.png" alt="Chat &#39;n Bike" height="100">
                </td>
                <td>
                        <img src="http://www.chatnbike.com/WebObjects/FamilyCycleGroupOrder.woa/Contents/WebServerResources/images/dealers/usa.jpg" alt="Chat &#39;n Bike" height="100">
                </td>
        </tr>
</tbody></table>

</div>
<br></div></div></div></blockquote></div><br></div>
</div></blockquote></div></div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>best,<div>Eliot</div>
</div></div>