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