> To start with, why do you CARE whether a particular > method is inlined or not?
I care because it makes “everything is a message” a lie! And I suspect (no proof and could be wrong) it’s an optimization that only made sense with the hardware constraints of 40+ years ago. Arguing against premature optimization is hardly something I just made up ;-) > This makes absolutely no sense to me. What makes you think that the > combination "_ isNil ifFalse: \[_\]" will NOT be inlined? I may have been unclear. My intent was to communicate: “I’d like to stop ALL\* inlining of messages by default if possible” \*or as many as practical > The thing that rings loud alarm bells for me is there being "long chains" in > the first place. I agree that it is in general a smell, but long chains was tangential to the intention above > Can you give an example? I don’t know if I can think of one that’s not contrived… Wrapping something external? Squeak’s AppleScript support used to mirror the underlying AS, which is pretty much exactly that. > In my own programming, I've generally found that nils turning up in the > middle of a chain indicates a serious design error somewhere. Agreed. See smell comment above.