> it's really depressing that nobody's been able to improve it.
That's quite unfair, several people improved this already...
> why partial lookup can't be cached at a given call site
Well first you have no state at the call site in which you could store that.
But even if we did, a single callsite can render different template based on request parameters, e.g. `render "foo"` may be either `foo.en.html.rb` or `foo.fr.html.rb` based on the request locale. But then you also have format, format variants, etc etc. So the number of possibilities is huge.
> I wonder if it's time to consider backwards incompat?
Of course we consider it, the explicit locals declaration is one step in that direction, but it's not like we can break people's code willy nilly.
That's quite unfair, several people improved this already...
> why partial lookup can't be cached at a given call site
Well first you have no state at the call site in which you could store that.
But even if we did, a single callsite can render different template based on request parameters, e.g. `render "foo"` may be either `foo.en.html.rb` or `foo.fr.html.rb` based on the request locale. But then you also have format, format variants, etc etc. So the number of possibilities is huge.
> I wonder if it's time to consider backwards incompat?
Of course we consider it, the explicit locals declaration is one step in that direction, but it's not like we can break people's code willy nilly.