I've been talking to a lot of the vapor folks and eventually we always talk about how Mirror is slow. Some of them have done benchmarks and have found that a lot of the work is just in demangling member types in the field records.
Could it be possible to emit relative metadata pointers for member types who are not generic? (Non-generic type metadata is always statically emitted no? or are there other cases?) Is this far fetched? Perhaps a flag to indicate this is a mangled type name or a metadata pointer? I'm sure there's some other reason why this can't be the case, but I'm curious to hear that answer if any.