Something that makes me slightly nervous is that I know of no way at all of mutating the sizes or relocating the data of an array with more than one dimension.
I could not see this assumption used anywhere, but I must confess that I don’t understand the other relevant parts of the code (gc, inference, codegen) where this could be hidden.
reshape / jl_reshape_array changes sizes. If it works without bugs now, then no one should assume that multi-dim arrays have fixed sizes.
Meh, no idea. I should read more code.