No, please no more inilining hacks. :)
If someone wants to run everything at light speed - just code in C,
but leave smalltalk honoring the
message passing.
And besides, these tricks won't make any difference when having good
inlining JIT.
In bytecode, they just add a complexity to compiler and headache to developers.

2009/11/13 Nicolas Cellier <[email protected]>:
> There is also a difference between:
>
> [self atEnd ifTrue: [^nil].
> self next.
> true] whileTrue.
>
> and:
>
> [self atEnd ifTrue: [^nil]
> self next] repeat.
>
> Warning: it's quite easy to add Compiler inlining rules, a bit tougher
> to add corresponding Decompiler tricks.
>
> 2009/11/13 Marcus Denker <[email protected]>:
>>
>> On Nov 13, 2009, at 9:51 AM, Cédrick Béler wrote:
>>
>>> Hi,
>>>
>>> I noticed quite a difference between the two method who "looks" the same to 
>>> me. Is it normal ?
>>>
>>
>> Normal. to:do: is lnlined (compiled as jumps in the bytecode), whereas 
>> timesRepeat: is a message
>> send with a closure activation.
>>
>>        Marcus
>>
>> fun is the difference between:
>>
>>        (1 to : 10000) do:
>> and
>>        1 to: 10000 do:
>>
>> one is compiled to jumps, the other not and in addition creates a temp 
>> collection.
>>
>>        Marcus
>>
>>
>>
>>> I use a rc image (haven't tested in squeak). And it's the same on windows 
>>> and linux.
>>>
>>> count := 0.
>>> [1 to: 10000000 do: [:i | count :=count + 1]] timeToRun." 677"
>>> count := 0.
>>> [10000000 timesRepeat: [count := count + 1]] timeToRun" 2571"
>>>
>>> If not normal, I'll open a issue.
>>>
>>> Thanks
>>>
>>> --
>>> Cédrick
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [email protected]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [email protected]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>



-- 
Best regards,
Igor Stasenko AKA sig.

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to