mlugg 1120546f72
std.debug.SelfInfo: remove shared logic
There were only a few dozen lines of common logic, and they frankly
introduced more complexity than they eliminated. Instead, let's accept
that the implementations of `SelfInfo` are all pretty different and want
to track different state. This probably fixes some synchronization and
memory bugs by simplifying a bunch of stuff. It also improves the DWARF
unwind cache, making it around twice as fast in a debug build with the
self-hosted x86_64 backend, because we no longer have to redundantly go
through the hashmap lookup logic to find the module. Unwinding on
Windows will also see a slight performance boost from this change,
because `RtlVirtualUnwind` does not need to know the module whatsoever,
so the old `SelfInfo` implementation was doing redundant work. Lastly,
this makes it even easier to implement `SelfInfo` on freestanding
targets; there is no longer a need to emulate a real module system,
since the user controls the whole implementation!

There are various other small refactors here in the `SelfInfo`
implementations as well as in the DWARF unwinding logic. This change
turned out to make a lot of stuff simpler!
2025-09-30 14:18:26 +01:00
..
2025-09-30 13:44:51 +01:00
2025-09-30 13:44:54 +01:00
2025-09-03 01:48:46 -07:00
2025-07-07 22:43:51 -07:00
2025-09-24 03:08:12 +02:00
2025-09-18 22:39:33 -07:00
2025-09-30 13:44:54 +01:00
2025-09-03 21:46:01 -07:00
2025-09-30 13:44:54 +01:00
2025-09-18 22:39:33 -07:00
2025-08-29 17:14:26 -07:00
2025-09-30 13:44:54 +01:00
2025-09-18 22:39:33 -07:00
2025-08-31 12:49:18 -07:00
2025-08-28 18:30:57 -07:00
2025-09-30 13:44:51 +01:00
2025-09-30 13:44:54 +01:00
2025-09-30 13:44:49 +01:00
2025-09-20 14:34:18 -07:00
2024-08-22 08:44:08 +02:00
2025-09-30 13:44:53 +01:00
2025-09-11 00:18:37 -07:00
2025-07-31 22:10:11 -07:00
2025-08-29 17:14:26 -07:00
2025-08-29 17:14:26 -07:00
2025-08-29 17:14:26 -07:00
2025-09-18 22:39:33 -07:00
2025-09-30 13:44:51 +01:00
2025-09-25 11:38:38 -07:00
2025-08-29 17:14:26 -07:00
2025-08-29 17:14:26 -07:00
2025-09-30 13:44:55 +01:00
2025-07-22 09:41:44 -07:00
2025-09-30 13:44:51 +01:00
2025-08-28 18:30:57 -07:00
2025-08-31 12:49:18 -07:00
2025-08-31 12:49:18 -07:00
2025-07-16 10:27:39 -07:00
2025-09-24 20:01:18 -07:00
2025-08-29 17:14:26 -07:00