<br><br><div class="gmail_quote">On Sun, Jul 10, 2011 at 12:02 PM, Levente Uzonyi <span dir="ltr"><<a href="mailto:leves@elte.hu">leves@elte.hu</a>></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'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, <<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>> 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 >> #= 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>>= (in category 'comparing') -----<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>