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
