Source whole-machine provenance visitor composition. Views project actual runtime records, not caller-chosen root lists. No machine read, retag, callback, host operation or descriptor drop is executed while collecting roots.
Exact machine.rs saved pointer fields. Their absent state is represented by None only when the corresponding source machine field is absent.
- mainReturn : Option (MPlaceTy Memory.Provenance)
- argc : Option (Memory.Pointer Memory.Provenance)
- argv : Option (Memory.Pointer Memory.Provenance)
- commandLine : Option (Memory.Pointer Memory.Provenance)
Instances For
Required actual storage projections. There is intentionally no generic "remaining roots" callback or empty default for unported runtime fields. FDs are included to make their source-empty visitor an explicit operation.
- stacks : User → ThreadStacks.Registry
- tls : User → ThreadTlsMachine.Data
- errnoPlaces : User → Array (Memory.AllocId × MPlaceTy Memory.Provenance)
- unwindPayloads : User → Unwind.PayloadStore
- extras : User → MemoryExtras.Registry Payload
- environment : User → EnvVars.State (Option Memory.Provenance) Os
- directories : User → UnixDirectories.Table ReadDir
- descriptors : User → Files.Table (Files.Description Handle Directory Other)
- ownership : User → FileOwnership.Registry (Files.Description Handle Directory Other)
- entry : User → EntryPointers
- externStatics : User → ExternStatic.State
Instances For
files.rs:101–105,584–588 explicitly assumes all source FileDescription instances carry no provenance. Numeric FD identities and host/peer handles do not become allocation roots. This does not license arbitrary new extensions with provenance-bearing description fields to omit their own source visitor.
Equations
- Miri.Interpreter.MachineGCRoots.visitFiles roots _table _ownership = roots
Instances For
unix/fs.rs:228–236 visits stream.entry only, not the host ReadDir, FD number/identity, next-id counter, or special-entry strings.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Thread.visit visits last_error even for terminated retained records. Unused side-table entries are not source-owned errno places and are not roots.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Full user portion of machine.rs:1093–1110, plus actual inactive-thread stacks and allocation-local weak-buffer visitors. The active stack and live allocation bytes/tree tags are visited by ProvenanceGC.run itself.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The lawful address lens points at the SAME canonical address and symbolic alignment maps used by function pointers, casts and alignment checks. GC never creates a parallel cache or reconstructs addresses from allocation identity.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Actual source collection and TB/dead/address metadata pruning in one machine action. Root extraction has no memory-access hooks or initialization checks, and source error prefixes are retained by ProvenanceGC.run.
Equations
- Miri.Interpreter.MachineGCRoots.run views addresses = Miri.Interpreter.ProvenanceGC.run (Miri.Interpreter.MachineGCRoots.hooks views addresses)
Instances For
Bind the actual miri_provenance_gc foreign arm to this whole-machine walk.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Concrete root-bearing source storage. Runtime state adapters can directly use these fields rather than maintaining GC-only shadow copies. Callbacks are real thread-runtime state, deliberately excluded by the pinned thread visitor.
- threads : ThreadMachine.Runtime Aff
- tls : ThreadTlsMachine.Data
- errnoPlaces : Array (Memory.AllocId × MPlaceTy Memory.Provenance)
- unwindPayloads : Unwind.PayloadStore
- extras : MemoryExtras.Registry Payload
- environment : EnvVars.State (Option Memory.Provenance) Os
- directories : UnixDirectories.Table R
- descriptors : Files.Table (Files.Description H D O)
- ownership : FileOwnership.Registry (Files.Description H D O)
- entry : EntryPointers
- externStatics : ExternStatic.State
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
The active stack is StepState.stack and inactive stacks are the actual ThreadStacks registry. Address state exists once, in the nested PointerMachine user. All other projections read the source runtime fields above directly.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Entire source GC operation for this concrete runtime composition.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.