[squeak-dev] The Trunk: Kernel-ul.604.mcz

Eliot Miranda eliot.miranda at gmail.com
Sun Jul 10 19:13:03 UTC 2011


On Sun, Jul 10, 2011 at 12:02 PM, Levente Uzonyi <leves at elte.hu> wrote:

> 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. :)
>

+0.75.  :)


>
> 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<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
>>
>>
>


-- 
best,
Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20110710/d328e3bf/attachment.htm


More information about the Squeak-dev mailing list