[Pharo-dev] Tuning Opal Optimizations

Marcus Denker marcus.denker at inria.fr
Tue Nov 19 10:20:34 EST 2013

On 19 Nov 2013, at 16:07, Sven Van Caekenberghe <sven at stfx.eu> wrote:

> Hi,
> It seems that #timesRepeat: is compiled/optimized away by Opal, which is probably good. BTW, what is the list of selectors that get this treatment ?
RBMessageNode has #isInlined that returns true… not all cases where the selector is send it is optimised, so a list would be one of “possiblyoptimized” selectors… 
maybe #isInlined could check first against that list to quickly return false for all the other selectors.

> In the PEGParser example of Xtreams #timesRepeat: is implemented for a non Integer class, which obviously leads to errors.
oh, yes, that is a problem. We started for ifTrue: to do an on-the-fly re-compiling and executing the ifTrue:, but it’s a bit of work to get it right for all cases… so we did not finish
that. But it would be possible...

> Is there a way to tune this ?
> Can it be set at a level higher than in each method ?

Yes, you can do it per class-hierarchy… you can implement on the class side a method to parametrize the compiler:

	^super compiler options: #(- optionInlineTimesRepeat)


More information about the Pharo-dev mailing list