[squeak-dev] The Inbox: ST80-ct.256.mcz

Levente Uzonyi leves at caesar.elte.hu
Sat Jun 13 22:26:50 UTC 2020


On Sat, 13 Jun 2020, Nicolas Cellier wrote:

> Hi Subbu,
> the or:/and:
> are inlined, so there is no block activated, just conditional jump byte codes like ifTrue:/ifFalse:
> | and & cost a message send. It would be interesting to study how sista inlining deals with it...

#| and #& will be slower even with inlining because they are the
non-short-circuit variants of #or: and #and:.


Levente

> 
> Le sam. 13 juin 2020 à 13:58, K K Subbu <kksubbu.ml at gmail.com> a écrit :
>       On 12/06/20 11:18 pm, Thiede, Christoph wrote:
>       > Marcel explicitly asked for duplicating these lines. However, one
>       > single condition would not be bad either, but why would you use #|
>       > instead of #or: here? Is this just in order to save one pair of
>       > brackets? ;-)
>
>       It is an simple boolean expression that can be evaluated in a single
>       sequence of bytecodes.
>
>       If the first part of the or: is false, then a block has to be activated
>       and evaluated for the result. If the block involves significant
>       computation then the overhead may not matter much. For simple
>       expressions, it is an overkill.
>
>       Regards .. Subbu
> 
> 
>


More information about the Squeak-dev mailing list