Bryce Kampjes bryce@kampjes.demon.co.uk wrote...
My plan current to introduce dynamic method inlining based heavily on Urs Holzle's Self work to Exupery after finishing a 1.0. That will completely remove the context creation costs from the most frequently used sends. Dynamic method inlining has the advantage that it can eliminate the sends from #do: loops as well as from leaf methods.
I agree that inlining is the ultimate way to go here. You can see lazy activation as a sort of lazy approach to inlining, but inlining is better because it eliminates the lookup and context switch times completely (when possible (which is typically very often)).
However, for Exupery, finishing 1.0 is much more important than adding dynamic method inlining. A mere 2.5 times gain in send performance is enough to provide a practical speed improvement. For now my time is better spent first debugging compiled blocks then fixing minor issues that limit Exupery's current usefulness.
I certainly agree that a bird in the hand is worth two in the bush, and I'm especially glad that you feel that way. Let's hear it for completion of 1.0!
- Dan