- Flip the switch on the concatenation deprecation (#8599)
- Deprecate partial linear indexing (#5396, #14770)
- ReshapedArrays (#10507, #15449, https://groups.google.com/d/msg/julia-dev/7M5qzmXIChM/kOTlGSIvAwAJ)
- Julia native bounds checking and removal (#7799, #14474)
- Drop dimensions indexed by a scalar (#13612)
- Full APL slicing (#15431)
- Disallow indexing with extra trailing singletons?
- Return slices as views (#9150).
- Allow any index type in non-scalar indexing (#12567)
- Transpose returns a covector or transpose type (#4774)
- Ditch special lowering of Ac_mul_Bt, use dispatch instead. (#5332)
- Remove default no-op behavior for (c)transpose (#13171)
I love the idea behind separating "arrays as containers" and "linear algebra," because the linear algebra seems much thornier. The big problem is that ReshapedArrays seem to get in the way of this plan. The performance benchmarks here show that we're fine (aka, awesome 😄) with reshaped
LinearFast
arrays, but not with reshapedLinearSlow
arrays. Trying to fix this is basically the motivation behind my recent push to come up with a more sophisticated API for iteration.However, if we're prepared to swallow that performance hit until 0.6, I actually think we could probably push ReshapedArrays over the line fairly quickly. There are only a handful of test failures left.
Before finishing #15449, it would be nice to know plans for having
[f(x) for x in X]
return an object of the same size (and dimensionality, obviously) asX
. "Definitely 0.5," something later, or never?