There was also this paper: “You can have it all: abstraction and good cache performance” https://dl.acm.org/doi/10.1145/3133850.3133861… which talks abstracting over struct of arrays (SoA) vs array of structs (AoS) representations.
There was also a follow up paper by the same group which seemed interesting: “Reshape your layouts, not your programs: A safe language extension for better cache locality”
I've also wondered if somehow you could levitate data descriptions, and then map those to low level memory layouts - thinking of how Rust has different optimizations packing structs and tagged unions, for example. Would be cool if the user could have control over that.
jnthn, who replied to your tweet, wrote that article (in 2010) and implemented it then as part of implementing the entire Rakudo toolchain (vm, virtual vm, compiler compiler, compiler frontend). User writes, eg, `class Foo is repr('Bar')`; to map class Foo onto memory layout Bar.