Files
regorus/src
Anand Krishnamoorthi 5b7010ba16 chore(rvm): add debug-mode invariant assertions (#737)
Encode VM stack/context/register lifecycle invariants as
debug_assert!s. Zero cost in release; surfaces violations during
debug-mode tests and CI.

Invariants covered:
- reset_execution_state postcondition: all stacks empty, registers
  resized to base and Undefined, rule_cache reset, pc/executed
  counters zeroed, builtins_cache cleared, execution_state Ready.
- Per-opcode invariant check (assert_vm_invariants) invoked at the
  top of run_stackless_loop and jump_to iterations: state is
  Ready/Running, registers non-empty, rule_cache sized to program,
  execution stack bounded by a debug-only sanity ceiling
  (DEBUG_MAX_EXECUTION_STACK_DEPTH = 4096; not a production limit).
- resume() precondition: execution_state is Suspended.
- execute_suspendable_entry precondition: clean state (callers reset
  immediately before).
- Rule finalize: call_rule_stack pop matches the finalized rule_index.
- IterationState::advance: Single iterator not advanced past
  consumption, Array index not at usize::MAX before saturating_add.

All assertions are gated by #[cfg(debug_assertions)] (directly or via
debug_assert!) so release builds are unaffected.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-04 12:28:47 -05:00
..
2025-12-23 15:59:34 -06:00
2026-03-27 12:34:49 -05:00
2025-12-23 15:59:34 -06:00
2025-12-23 15:59:34 -06:00
2025-12-23 15:59:34 -06:00
2025-12-23 15:59:34 -06:00
2025-12-23 15:59:34 -06:00
2025-12-23 15:59:34 -06:00