<br><br><div class="gmail_quote">On Sun, Jul 10, 2011 at 12:02 PM, Levente Uzonyi <span dir="ltr">&lt;<a href="mailto:leves@elte.hu">leves@elte.hu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Sun, 10 Jul 2011, Eliot Miranda wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Levente,<br>
<br>
   why not<br>
<br>
= aNumber<br>
      aNumber isInteger ifTrue:<br>
            [^aNumber class == self class<br>
             and: [(self digitCompare: aNumber) = 0]].<br>
      ^aNumber isNumber<br>
       and: [aNumber adaptToInteger: self andCompare: #=]<br>
<br>
or<br>
<br>
= aNumber<br>
      ^aNumber isInteger<br>
           ifTrue:<br>
               [aNumber class == self class<br>
                and: [(self digitCompare: aNumber) = 0]].<br>
            ifFalse:<br>
                [aNumber isNumber<br>
                 and: [aNumber adaptToInteger: self andCompare: #=]]<br>
</blockquote>
<br></div>
I&#39;ve been thinking about this after commiting, but I came to the conclusion that my version has slightly more efficient bytecodes, because it avoids jumps to the return bytecode. :)<br></blockquote><div><br></div><div>
+0.75.  :)</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><font color="#888888">
<br>
<br>
Levente</font><div><div></div><div class="h5"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
On Sun, Jul 10, 2011 at 7:36 AM, &lt;<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>&gt; wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Levente Uzonyi uploaded a new version of Kernel to project The Trunk:<br>
<a href="http://source.squeak.org/trunk/Kernel-ul.604.mcz" target="_blank">http://source.squeak.org/<u></u>trunk/Kernel-ul.604.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: Kernel-ul.604<br>
Author: ul<br>
Time: 10 July 2011, 4:36:20.467 pm<br>
UUID: f758876f-a507-404b-aa2f-<u></u>2c1038504b48<br>
Ancestors: Kernel-bf.603<br>
<br>
Optimized Integer &gt;&gt; #= for integer-integer comparisons. Return false for<br>
integers from different classes without further checking.<br>
<br>
=============== Diff against Kernel-bf.603 ===============<br>
<br>
Item was changed:<br>
 ----- Method: Integer&gt;&gt;= (in category &#39;comparing&#39;) -----<br>
 = aNumber<br>
+<br>
+       aNumber isInteger ifTrue: [<br>
+               aNumber class == self class ifFalse: [ ^false ].<br>
+               ^(self digitCompare: aNumber) = 0 ].<br>
+       aNumber isNumber ifFalse: [ ^false ].<br>
+       ^aNumber adaptToInteger: self andCompare: #=!<br>
-       aNumber isNumber ifFalse: [^ false].<br>
-       aNumber isInteger ifTrue:<br>
-               [aNumber negative == self negative<br>
-                       ifTrue: [^ (self digitCompare: aNumber) = 0]<br>
-                       ifFalse: [^ false]].<br>
-       ^ aNumber adaptToInteger: self andCompare: #=!<br>
<br>
<br>
<br>
</blockquote>
<br>
<br>
-- <br>
best,<br>
Eliot<br>
<br>
</blockquote>
<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>best,<div>Eliot</div><br>