After the object rewrite there's still one part that sucks: The storage of tiny object-related bits on each object's type. Right now this is admittedly a mess. We have a couple viable approaches here:
- Screw space optimization, give each object/map type its own heap word to put its bits into: This wastes 63x space for things like method maps.
- Incrementally slice a well-known part of the object header: We can run out of header space easily. Also, I believe I've hit various Zig packed struct bugs while doing this with
ExecutableMap.