Skip to main content

Module time_travel

Module time_travel 

Source
Expand description

Time-travel debugging support for the Shape VM.

Captures VM state snapshots at configurable intervals during execution, allowing forward and backward navigation through execution history.

§Wave 6.5 R-async-time migration (ADR-006 §2.7.7 / §2.7.8)

Pre-bulldozer the snapshot stored Vec<ValueWord> for stack_snapshot and module_bindings, with a manual Clone that walked each element through the deleted value_word_drop::vw_clone and a Drop that ran vw_drop_slice. ValueWord is deleted (CLAUDE.md “Forbidden Patterns”) and the §2.7.7 stack ABI carries data in a Vec<u64> data track plus a parallel Vec<NativeKind> kinds track. The snapshot tracks adopt the same lockstep shape: *_data: Vec<u64> plus *_kinds: Vec<NativeKind>, with clone_with_kind / drop_with_kind (replacing vw_clone / vw_drop_slice) handling refcount discipline.

Index invariant — for every snapshot, stack_data.len() == stack_kinds.len() and module_bindings_data.len() == module_bindings_kinds.len(). The Clone and Drop impls walk both tracks in lockstep per ADR-006 §2.7.7.

Structs§

TimeTravel
Time-travel debugger state.
TimeTravelConfig
Configuration for the time-travel debugger.
VmSnapshot
A snapshot of VM state at a point in time.

Enums§

CaptureMode
When to capture VM snapshots.
CaptureReason
Why a snapshot was captured.