Eddie Cottongim writes:
It would be nice if the compiler could inline stuff like array first that boils down to a single send, I have no idea how the compiler works or if thats a sensible suggestion though. In some methods like the fallback character printing that are fixed-array access heavy, it makes around 25% difference between blah first second third etc and at:1 at:2 at:3 etc.
Full method inlining is, almost, the only major feature missing from Exupery for a 1.0 release. Compiling methods that create blocks is the other one. Both require specialised contexts for compiled methods so they're both really part of the same larger feature. With inlining hopefully Exupery will be faster than VisualWorks for sends as well as bytecodes.
Inlining with a native compiler isn't too hard. Doing so in a simple interpreter may be harder because there needs to be somewhere to place the inlined code. A more sophisticated interpreter such as one of Ian's Jitter's that has a threaded code cache could inline as easily as a native interpreter.
Bryce