feat(vcr-ra): per-rung recovery-stats counter + measured ladder map (#242)#478
Merged
Conversation
…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 Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Wires the per-rung counter the recovery-ladder map (#242) named as its next measurement. Frozen-safe (
SYNTH_RECOVERY_STATSis logging only — emitted bytes unchanged, frozen gate green).SYNTH_RECOVERY_STATS=1makesselect_directlog 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 fullscripts/reprocorpus (cortex-m4 --relocatable --all-exports):high_pressure_i32,control_step.wasm,msgq_put_359(1 of 5 fns)high_pressure_i64promotion_exhaustion_fallback(#474)So the local failure surface the recovery ladder covers is ~5 functions. Notable:
control_step— the canonical0x00210A55frozen 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_242pins the classification.Refs #242
🤖 Generated with Claude Code