I noticed that 1.11 is continuously being developped as though 1.12 is already there, which is an exception to the normal behavior: minor updates to 1.11 should stop once minor updates to 1.12 started.
This is going on for a while now… Is there a specific reason for this ?
It basically boils down to relatively large changes being made to the internals in 1.12 and that certain important packages which depend on the internals are taking time to upgrade to 1.12. Thus there has been sufficient incentive to make some additional bugfix releases for 1.11.
As far as I understand, important packages mostly mean auto-differentiation, which by their design work very close to the compiler details.
It’s more what is special about v1.12, which is the change to the representation of arrays, i.e. the definition of arrays as non-primitive and the introduction of the memory type, which was a major change to the internals. This made a lot packages that go deep into the compiler like autodiff very difficult to update.
Oh yeah v1.12 was redefinition of constants. But yeah… the memory changes took so long that they didn’t even finish in the v1.11 time frame and bled into v1.12 with the ecosystem changes. Enzyme didn’t support v1.11 until probably a month or so before v1.12, so it’s all kind of blurred together. No one really kept going after the memory stuff and everyone needed to take a break . During this time frame, code changes are being messed by sheer mass and quantity due to the number of changes required.