Pinned clock.rs. Host time is an explicit environment, never substituted with virtual time. Nanoseconds are exact integers; u128 saturation, Duration's u64 seconds bound, mixed-clock assertions and host checked-add fallback are preserved. No particular host clock trace is a proof over all environments.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Equations
@[instance_reducible]
Equations
def
Miri.Interpreter.Clock.instReprInstant.repr
{Host✝ : Type}
[Repr Host✝]
:
Instant Host✝ → Nat → Std.Format
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Miri.Interpreter.Clock.instReprMonotonic.repr
{Host✝ : Type}
[Repr Host✝]
:
Monotonic Host✝ → Nat → Std.Format
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Equations
@[instance_reducible]
instance
Miri.Interpreter.Clock.instReprDeadline
{Host✝ System✝ : Type}
[Repr Host✝]
[Repr System✝]
:
Equations
def
Miri.Interpreter.Clock.instReprDeadline.repr
{Host✝ System✝ : Type}
[Repr Host✝]
[Repr System✝]
:
Deadline Host✝ System✝ → Nat → Std.Format
Equations
- One or more equations did not get rendered due to their size.
Instances For
- monotonic : TimeoutClock
- realTime : TimeoutClock
Instances For
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Equations
- relative : TimeoutStyle
- absolute : TimeoutStyle
Instances For
@[instance_reducible]
@[instance_reducible]
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[reducible, inline]
Equations
Instances For
Instances For
def
Miri.Interpreter.Clock.addHostLossy
{H S : Type}
(checkedAdd : H → Duration → M S (Option H))
(time : H)
(duration : Duration)
:
M S H
On host overflow the source retries exactly one hour, then asserts that this succeeds. It does not clamp to a fabricated maximum host timestamp.
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Miri.Interpreter.Clock.Instant.durationSince
{Host System S : Type}
(h : HostHooks Host System S)
(instant earlier : Instant Host)
:
Equations
- One or more equations did not get rendered due to their size.
- Miri.Interpreter.Clock.Instant.durationSince h (Miri.Interpreter.Clock.Instant.host instant_2) (Miri.Interpreter.Clock.Instant.host earlier_2) = h.durationSince instant_2 earlier_2
- Miri.Interpreter.Clock.Instant.durationSince h instant earlier = throw (Miri.Interpreter.StepError.invalidProgram "all clock instants must be of the same kind")
Instances For
def
Miri.Interpreter.Clock.Monotonic.tick
{Host : Type}
(checkedArithmetic : Bool)
(clock : Monotonic Host)
:
Rust's virtual tick uses ordinary u128 addition. The source build's arithmetic overflow-check setting is explicit, rather than silently saturating.
Equations
- One or more equations did not get rendered due to their size.
- Miri.Interpreter.Clock.Monotonic.tick checkedArithmetic (Miri.Interpreter.Clock.Monotonic.host a) = pure (Miri.Interpreter.Clock.Monotonic.host a)
Instances For
def
Miri.Interpreter.Clock.Monotonic.sleep
{Host System S : Type}
(h : HostHooks Host System S)
(clock : Monotonic Host)
(duration : Duration)
:
Equations
- One or more equations did not get rendered due to their size.
- Miri.Interpreter.Clock.Monotonic.sleep h (Miri.Interpreter.Clock.Monotonic.host a) duration = do h.sleep duration pure (Miri.Interpreter.Clock.Monotonic.host a)
Instances For
Equations
Instances For
def
Miri.Interpreter.Clock.Monotonic.now
{Host System S : Type}
(h : HostHooks Host System S)
(clock : Monotonic Host)
:
Equations
- Miri.Interpreter.Clock.Monotonic.now h (Miri.Interpreter.Clock.Monotonic.host a) = do let __do_lift ← h.monotonicNow pure (Miri.Interpreter.Clock.Instant.host __do_lift)
- Miri.Interpreter.Clock.Monotonic.now h (Miri.Interpreter.Clock.Monotonic.virtual a) = pure (Miri.Interpreter.Clock.Instant.virtual a)
Instances For
def
Miri.Interpreter.Clock.timeout
{Host System S : Type}
(h : HostHooks Host System S)
(clock : Monotonic Host)
(communicate : Bool)
(kind : TimeoutClock)
(style : TimeoutStyle)
(duration : Duration)
:
Preserve source effect ordering: RealTime checks communication before
reading the host; Absolute monotonic uses epoch without reading now.
Equations
- One or more equations did not get rendered due to their size.