<div dir="ltr"><div class="gmail_default" style="font-family:monospace,monospace">It is not clear to me what the semantics of such a selector would be.</div><div class="gmail_default" style="font-family:monospace,monospace">Consider this example:</div><div class="gmail_default" style="font-family:monospace,monospace"> t := [:x | x copy == x].</div><div class="gmail_default" style="font-family:monospace,monospace"> a := t value: 1.0e38.</div><div class="gmail_default" style="font-family:monospace,monospace"> b := t value: 1.0e308.</div><div class="gmail_default" style="font-family:monospace,monospace">What do you expect a and b to be?</div><div class="gmail_default" style="font-family:monospace,monospace">GNU Smalltalk: a=true, b=true.<br></div><div class="gmail_default" style="font-family:monospace,monospace">My Smalltalk, 32-bit or 64-bit: a=true, b=true.</div><div class="gmail_default" style="font-family:monospace,monospace">Squeak/Pharo, 32-bit: a=false, b=false.</div><div class="gmail_default" style="font-family:monospace,monospace">Squeak/Pharo, 64-bit: a=true, b=false.</div><div class="gmail_default" style="font-family:monospace,monospace">Squeak/Pharo, after a patch: a=true, b=true.</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">There are two quite different reasons why x copy == x</div><div class="gmail_default" style="font-family:monospace,monospace">might be true:</div><div class="gmail_default" style="font-family:monospace,monospace">* x is immutable (including its parts), and can be</div><div class="gmail_default" style="font-family:monospace,monospace">  thought of as a mathematical value, so that there</div><div class="gmail_default" style="font-family:monospace,monospace">  is no need to copy it</div><div class="gmail_default" style="font-family:monospace,monospace">  Examples: every kind of number, characters,</div><div class="gmail_default" style="font-family:monospace,monospace">  booleans, immutable collections, block closures<br></div><div class="gmail_default" style="font-family:monospace,monospace">* x is a way of accessing a unique resource, and</div><div class="gmail_default" style="font-family:monospace,monospace">  should not be copied, so making copy the identity</div><div class="gmail_default" style="font-family:monospace,monospace">  is a safety measure.</div><div class="gmail_default" style="font-family:monospace,monospace">  Examples: Semaphores, Mutexes, SharedQueues, data base</div><div class="gmail_default" style="font-family:monospace,monospace">  connections, some kinds of streams, singletons.</div><div class="gmail_default" style="font-family:monospace,monospace">* Laziness or error (inherited method not revised).</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">What is your use case?</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">  <br></div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 21 Feb 2019 at 07:32, Petr Fischer via Pharo-users <<a href="mailto:pharo-users@lists.pharo.org">pharo-users@lists.pharo.org</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">Hello, some classes, like Symbols or SmallIntegers, shares identity of value instances in the whole image (I may say it wrong), so:<br>
<br>
1 == 1 copy. [true]<br>
#aaa == #aaa copy. [true]<br>
<br>
all other classes not, like Strings, Objects etc., so:<br>
<br>
'aaa' == 'aaa' copy. [false]<br>
<br>
Is there any test method (maybe on the class side) I could ask for this (isXXX)?<br>
<br>
Thanks! pf<br>
<br>
</blockquote></div>