[squeak-dev] Re: Boolean over-optimization #ifTrue:/#ifFalse:
Igor Stasenko
siguctua at gmail.com
Wed Mar 5 06:39:33 UTC 2008
On 05/03/2008, Paolo Bonzini <bonzini at gnu.org> wrote:
> Igor Stasenko wrote:
> > Hello,
> >
> > i currently tried to implement a proxy (subclass of ProtoObject) with
> > own IfTrue:/ifFalse: methods.
> > What i can't understand, is why VM throws me with #mustBeBoolean
> > message instead of doing real send if optimized pattern fails (when
> > receiver of #IfTrue: is a non-boolean)?
>
>
> Because you cannot distinguish #ifTrue:#ifFalse: sends from #whileTrue:
> for example, and because there are no BlockC{ontext,losure} objects for
> the argument blocks.
>
So, the only way is to compile method without optimization of #ifTrue #ifFalse:,
to make sure they do real sends?
If yes, i'd like to see optimizations optional, so people can do like:
Compiler turnOffOptimizations.
MyClass compileAll.
Compiler turnOnOptimizations.
>
> Paolo
>
>
--
Best regards,
Igor Stasenko AKA sig.
More information about the Squeak-dev
mailing list
|