<body><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">
                                        Hi all!<div><br></div><div>Thank you all for the clarification. Yes, please let's not copy the identity hash by default.</div><div><br></div><div>+1 on changing the default behind #becomeForward:</div><div><br></div><div>Best,</div><div>Marcel</div><div class="mb_sig"></div><blockquote class="history_container" type="cite" style="border-left-style:solid;border-width:1px; margin-top:20px; margin-left:0px;padding-left:10px;">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 15.04.2020 09:59:09 schrieb Levente Uzonyi <leves@caesar.elte.hu>:</p><div style="font-family:Arial,Helvetica,sans-serif">Hi Chris, <br> <br>On Tue, 14 Apr 2020, Chris Muller wrote: <br> <br>> Hi Eliot, <br>>   <br>> <br>>       Right.  A couple of questions are <br>> 1. what the f**k are become: becomeForward: becomeForward:copyHash: et al doing in ProtoObject?  (IMO, they should be in Object and have no business being in ProtoObject whatsoever). <br>>  <br>>  <br>> For Proxy's.  They don't typically inherit from Object, but must be able to become their normal object upon receiving a message it #doesNotUnderstand:.  Maybe you're implying those programs should be using the mirror <br>> primitives, but those weren't always available, so hopefully that at least answers your question. <br> <br>The primitives are defined on arrays. A proxy can and should always do <br> <br>      { self } elementsForwardIdentityTo: { proxiedObject } <br> <br>So, that's not a reason to have those methods implemented by ProtoObject. <br> <br>> <br>>       2. whether becomeForward: should do copyHash: true by default.  This seems wrong to me, and implementing is as copyHash: false makes more sense.  But I'm wondering if there are important use cases. <br>>  <br>>  <br>> Yes, changing the identityHash without changing the identity is basically "wrong", and even dangerous if it's a system Symbol used as keys in IdentityDictionary's like Environments, etc. <br>>  <br>>    Object new becomeForward: #size   "do it = lock up your image" <br> <br>The VM won't let you overwrite the Symbol's identityHash in current  <br>Trunk, you'll get an error instead. <br> <br> <br>Levente <br> <br>>  <br>>  - Chris <br>>  <br>><br></div></blockquote>
                                        </div></body>