Skip to content

feat(vcr-ra): per-rung recovery-stats counter + measured ladder map (#242)#478

Merged
avrabe merged 1 commit into
mainfrom
vcr-ra/recovery-rung-counter
Jun 24, 2026
Merged

feat(vcr-ra): per-rung recovery-stats counter + measured ladder map (#242)#478
avrabe merged 1 commit into
mainfrom
vcr-ra/recovery-rung-counter

Conversation

@avrabe

@avrabe avrabe commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Wires the per-rung counter the recovery-ladder map (#242) named as its next measurement. Frozen-safe (SYNTH_RECOVERY_STATS is logging only — emitted bytes unchanged, frozen gate green).

SYNTH_RECOVERY_STATS=1 makes select_direct log which exhaustion-recovery rung produced each function ([recovery-stats] rung=… result=…). This turns last pass's design-intent fixture→rung claims into measured facts across the full scripts/repro corpus (cortex-m4 --relocatable --all-exports):

rung functions
spill high_pressure_i32, control_step.wasm, msgq_put_359 (1 of 5 fns)
param-backing high_pressure_i64
promotion-off → spill promotion_exhaustion_fallback (#474)
base everything else (~44 fixtures)

So the local failure surface the recovery ladder covers is ~5 functions. Notable: control_step — the canonical 0x00210A55 frozen fixture — is produced via the spill rung, i.e. a base-attempt allocator would fail it. The spill rung is load-bearing for a shipped fixture, not just stress tests. That is the size of the surface a verified allocator (the #242 north star) must subsume on the first pass.

New CI test recovery_stats_rung_classification_242 pins the classification.

Refs #242

🤖 Generated with Claude Code

…242)

SYNTH_RECOVERY_STATS=1 makes select_direct log which exhaustion-recovery rung
produced each function's code ([recovery-stats] rung=… result=…). Logging only —
emitted bytes are unchanged, frozen byte gate green (verified).

This wires the per-rung counter the recovery-ladder map (#242) named as its next
measurement, and turns that doc's design-intent fixture→rung claims into measured
facts. Measured across the full scripts/repro corpus (cortex-m4 --relocatable
--all-exports): the recovery ladder fires for ~5 functions —
  spill:        high_pressure_i32, control_step.wasm, msgq_put_359 (1 of 5 fns)
  param-back:   high_pressure_i64
  promotion-off: promotion_exhaustion_fallback (#474, then spill)
Everything else compiles on the base attempt. Notable: control_step (the canonical
0x00210A55 frozen fixture) is produced via the SPILL rung — it sits at the
register-pressure edge, so the spill rung is load-bearing for a shipped fixture,
not just stress tests. That is the size of the failure surface a verified allocator
(#242 north star) must subsume.

New CI test recovery_stats_rung_classification_242 pins the classification.

Refs #242

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@codecov

codecov Bot commented Jun 24, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@avrabe avrabe merged commit 43eafd0 into main Jun 24, 2026
15 checks passed
@avrabe avrabe deleted the vcr-ra/recovery-rung-counter branch June 24, 2026 23:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant