Since DelayScheduler runs very often at the highest priority, the
desire is to have it highly optimised. One way to do this is put
everything into a very long method to avoid the overhead of message
sends.
Another might be to keep it logical split into several method for
readability, but have those methods in-lined. I'm sure how pragmatic
doing that would be, but it sparked my curiosity.... how do you go
about designating a method/message to be inlined.
I see OCASTTranslator>>visitMessageNode:
(presumably) calls RBMessageNode>>isInlined
which does a bundle of checks, for example RBMessageNode>>isInlineIf
checks (#(ifTrue: ifFalse: ifTrue:ifFalse: ifFalse:ifTrue:) includes:
self selector) ifFalse:
But there also seems to be an <inline> pragma per
WarpBlt>>rgbMap:from:to:
What are the trade-off between these approaches, particularly for the
special case where a method may have only one sender, where code is
broken into small "private" methods mainly for readability.
Also, do you need to manually supply the inlined bytecode yourself?
cheers -ben