<div dir="ltr"><div>Hey Hernan, <br></div><div><br></div>     <a href="http://lists.squeakfoundation.org/pipermail/squeak-dev/2000-January/006970.html" target="_blank">http://lists.squeakfoundation.org/pipermail/squeak-dev/2000-January/006970.html</a><br><br><div>Done!   :)</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Apr 15, 2020 at 7:02 PM Eliot Miranda <<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div>Hi Chris, Hi All,</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Apr 15, 2020 at 3:14 PM Chris Muller <<a href="mailto:asqueaker@gmail.com" target="_blank">asqueaker@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">But the hash can't always be copied over, so it's a tough decision what <br>
the default should be:<br>
- if the hash is not copied by default, the lack of rehashing will cause <br>
elements to be not found in the affected collections </blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
- if the hash is copied, runtime errors will be raised when coping the <br>
hash is not possible.<br></blockquote><div><br></div><div>I think a "lack of rehashing" issue could also occur in the latter case, too, if the target of the become (the argument) was in a identity hashed collection..</div></div></div></blockquote><div><br></div><div>Right.  The major use case for which copyHash being true is correct is class reshaping where new instances of the reshaped class are created and all existing instances are forwarded to the new instances.  Were the new instances' hashes too be left alone, all hell would break lose.</div><div><br></div><div>So I did the deed.  See commits below.  elementsForwardIdentityTo: now uses the primitive (number) that implicitly has copyHash false. elementsForwardIdentityAndHashTo: has the old behaviour with copyHash true; it is effectively the rename ing of the old elementsForwardIdentityTo:.  The become: wrappers have been moved down to Object from ProtoObject.  The ClassBuilder and ClassDescription have been changed to use elementsForwardIdentityAndHashTo: when migrating.  So hopefully the system should continue as normal except that a casual use of becomeForward: to a read-only object should now work as expected.</div><div><br></div><div>The change to the error c ode of the primitive will require new VMs.  Those should be ready by week's end. Apologies until then.</div><div><br></div><p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial;color:rgb(32,33,36)"><span>Name: Collections-eem.885</span></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial;color:rgb(32,33,36)"><span>Author: eem</span></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial;color:rgb(32,33,36)"><span>Time: 15 April 2020, 4:37:54.800631 pm</span></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial;color:rgb(32,33,36)"><span>UUID: 45d219d3-6ed0-4401-a820-44eebe21d71a</span></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial;color:rgb(32,33,36)"><span>Ancestors: Collections-eem.883, Collections-dtl.884</span></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial;min-height:15px"><span></span><br></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial;color:rgb(17,85,204)"><span style="color:rgb(32,33,36)">Switch elementsForwardIdentityTo: to not copy the hash, see <a href="http://forum.world.st/How-to-become-immediate-objects-td5114931.html" target="_blank"><span>http://forum.world.st/How-to-become-immediate-objects-td5114931.html</span></a>.</span></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial;color:rgb(32,33,36)"><span>Add elementsForwardIdentityAndHashTo: for the old behavior.</span></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial;color:rgb(32,33,36);min-height:15px"><span></span><br></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial;color:rgb(32,33,36)"><span>Name: Kernel-eem.1322</span></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial;color:rgb(32,33,36)"><span>Author: eem</span></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial;color:rgb(32,33,36)"><span>Time: 15 April 2020, 4:39:29.367332 pm</span></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial;color:rgb(32,33,36)"><span>UUID: 94e874d1-0572-4a1d-9934-edcf87b8ecb5</span></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial;color:rgb(32,33,36)"><span>Ancestors: Kernel-eem.1321</span></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial;min-height:15px"><span></span><br></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial;color:rgb(17,85,204)"><span style="color:rgb(32,33,36)">Move the become: methods from ProtoObject to Object.  See <a href="http://forum.world.st/How-to-become-immediate-objects-td5114931.html" target="_blank"><span>http://forum.world.st/How-to-become-immediate-objects-td5114931.html</span></a></span></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial;color:rgb(17,85,204);min-height:15px"><span style="text-decoration:underline"></span><br></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial;color:rgb(32,33,36)"><span>Name: Kernel-eem.1323</span></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial;color:rgb(32,33,36)"><span>Author: eem</span></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial;color:rgb(32,33,36)"><span>Time: 15 April 2020, 4:46:14.261016 pm</span></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial;color:rgb(32,33,36)"><span>UUID: 5ea740f0-f4c6-4808-b7b6-2e3aee87aa91</span></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial;color:rgb(32,33,36)"><span>Ancestors: Kernel-eem.1322</span></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial;min-height:15px"><span></span><br></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial;color:rgb(32,33,36)"><span>Update the ClassBuilder and instance migration, given the changes in Collections-eem.885.  See <a href="http://forum.world.st/How-to-become-immediate-objects-td5114931.html" target="_blank"><span>http://forum.world.st/How-to-become-immediate-objects-td5114931.html</span></a>.</span></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial;color:rgb(17,85,204);min-height:15px"><span style="text-decoration:underline"></span><br></p><div> </div></div><br clear="all"><div><br></div>-- <br><div dir="ltr"><div dir="ltr"><div><span style="font-size:small;border-collapse:separate"><div>_,,,^..^,,,_<br></div><div>best, Eliot</div></span></div></div></div></div></div>
<br>
</blockquote></div>