This has been in preparation for quite a while and as I understand it, this is second to last major change before 1.0. From 1.0 progress/status (March 16):
While that’s going on, @mbauman has been making a series of PRs improving generic array code and broadcasting. Every PR that Matt makes is, in my mind, another a significant chunk of array brokenness that we would eventually have regretted that we now won’t have to live with until Julia 2.0. So I’m glad the optimizer work is giving him some time to get it done before 1.0-alpha.
Also note that the original PR was opened Jan 3, https://github.com/JuliaLang/julia/pull/25377 .