[squeak-dev] The Trunk: Kernel-ul.604.mcz
Levente Uzonyi
leves at elte.hu
Sun Jul 10 19:02:41 UTC 2011
On Sun, 10 Jul 2011, Eliot Miranda wrote:
> Hi Levente,
>
> why not
>
> = aNumber
> aNumber isInteger ifTrue:
> [^aNumber class == self class
> and: [(self digitCompare: aNumber) = 0]].
> ^aNumber isNumber
> and: [aNumber adaptToInteger: self andCompare: #=]
>
> or
>
> = aNumber
> ^aNumber isInteger
> ifTrue:
> [aNumber class == self class
> and: [(self digitCompare: aNumber) = 0]].
> ifFalse:
> [aNumber isNumber
> and: [aNumber adaptToInteger: self andCompare: #=]]
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. :)
Levente
>
> On Sun, Jul 10, 2011 at 7:36 AM, <commits at source.squeak.org> wrote:
>
>> Levente Uzonyi uploaded a new version of Kernel to project The Trunk:
>> http://source.squeak.org/trunk/Kernel-ul.604.mcz
>>
>> ==================== Summary ====================
>>
>> Name: Kernel-ul.604
>> Author: ul
>> Time: 10 July 2011, 4:36:20.467 pm
>> UUID: f758876f-a507-404b-aa2f-2c1038504b48
>> Ancestors: Kernel-bf.603
>>
>> Optimized Integer >> #= for integer-integer comparisons. Return false for
>> integers from different classes without further checking.
>>
>> =============== Diff against Kernel-bf.603 ===============
>>
>> Item was changed:
>> ----- Method: Integer>>= (in category 'comparing') -----
>> = aNumber
>> +
>> + aNumber isInteger ifTrue: [
>> + aNumber class == self class ifFalse: [ ^false ].
>> + ^(self digitCompare: aNumber) = 0 ].
>> + aNumber isNumber ifFalse: [ ^false ].
>> + ^aNumber adaptToInteger: self andCompare: #=!
>> - aNumber isNumber ifFalse: [^ false].
>> - aNumber isInteger ifTrue:
>> - [aNumber negative == self negative
>> - ifTrue: [^ (self digitCompare: aNumber) = 0]
>> - ifFalse: [^ false]].
>> - ^ aNumber adaptToInteger: self andCompare: #=!
>>
>>
>>
>
>
> --
> best,
> Eliot
>
More information about the Squeak-dev
mailing list
|