Documentation

Miri.Interpreter.ExecutionChoiceBindings

Source-point choice dictionaries. Each callback consumes from the same persistent tape, not a context-wide value reused at every callback invocation. Compiler, physical memory, host operations retain their dictionaries.

Source IteratorRandom::choose then independent random sign flip. The existing NaN relation enumerates [candidate,-candidate] pairs in source order; these two events map to that relation without merging duplicate payloads.

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

      Source success_rate = 1.0 - failure_rate is a rounded binary64 subtraction, not an exact rational complement. Preserve this distinction at endpoint rates.

      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
          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
              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
                  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

                      Source scheduling never samples an empty iterator. Fixed scheduling skips this callback in ThreadStacks.scheduleLocal; every enabled candidate is admitted.

                      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
                          def Miri.Interpreter.ExecutionChoiceBindings.threadClockReuse {K U C O X F A Aff : Type} (access : ExecutionChoices.Access (ThreadMachine.State K U)) (base : ThreadMachine.Hooks K U C O X F A Aff) :
                          ThreadMachine.Hooks K U C O X F A Aff

                          Source thread creation may reuse a vector clock only from the exact safe candidate set supplied by ThreadMachine. Consume one execution-tape index at that point; empty support is never sampled, and out-of-range tape inputs fail closed. The impossible post-index lookup remains a defensive invalid-program error. Explicit reuse overrides are handled by ThreadMachine before this hook is called.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For

                            The tape request runs at the source post-GC preemption point, and only outside fixed scheduling. Clock tick remains after the decision.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For