This is a sort of halfway solution for #61. To be clear that issue should still be done, it's a very clear goal that will motivate getting the language somewhere usable, while providing direct utility to the project itself.
In the meantime, look at this (was shown to me by user ippsav on twitter)
https://github.com/ziglang/zig/blob/master/tools/lldb_pretty_printers.py
It looks amazing. this is how you make sense of packed structs. LLDB is extensible via Python.
Packed structs in the compiler:
@TypeOf(@as(NodeGen.MapEntry, undefined).block)Js.Tree.ObjectLiteral.KeyJs.Tree.StmtIf.KeyInternPool.Capture (unused)In addition, the enum(u32) pattern to represent type-safe indexes is used all over the place.
InternPool.ValueInternPool.TypeNullTerminatedString (few instances of these)Teg.Inst.IndexAir.Inst.IndexTree.Node.IndexInternPool.DeclIndexInternPool.NamespaceIndexInternPool.StringAnd some others on my mind
InternPool.String.WithLenExtra.Store stuff>This would also be a good time to make Ast use the Store struct and typed indices.
Milestone: later.