sema: rework comptime mutation

Split Value into an immutable value that always has an InternPool.Index
representation, and a mutable value that is part of a new ComptimeMemory
abstraction.

Mainly, this deletes WipAnonDecl, deletes
InternPool.Key.Ptr.Addr.MutDecl, and then updates all comptime-mutable
allocations to happen via ComptimeMemory.

This makes no comptime mutable memory escape from the Sema instance in
which the comptime memory is allocated, reducing the amount of garbage
in the global InternPool, and forces comptime memory mutations to be
completely reworked in the compiler.

This has sweeping implications to the codebase, and will require quite a
few follow up changes to unbreak things
f34deec4e2Andrew Kelley committed on 2/6/2024, 1:04:58 AMparent0266017
32 files changedLine totals unavailable