Files
ARCADIA-Studio/harness/experiments/scenario-label-rounding-gates-20260913/README.md
T

2.9 KiB

Corridor rounding correction: verified isolated result

Tested source345f7b3d5b64cef6e75f907c4d47f5b5658f1eba corrects the corridor experiment previously tested on903d85d. It remains unwired. The earlier18 passing tests are preserved in ../scenario-label-gates-20260913/README.md; those tests missed the arithmetic counterexamples below. This record supersedes that earlier corridor candidate's acceptance, without rewriting its raw evidence.

Finding and correction

Independent source review found that admitting finite band endpoints did not ensure safe output after computing width=end-start. With x=f32::from_bits(0xfe79636e), width=f32::MAX, the reconstructed width becomes infinity although the right edge is finite. With band x=-999948.5625,width1000000 and an intersecting blocker starting at f32(2.1), naive reconstruction returns a right edge2.125, crossing the blocker.

The corrected conversion computes the difference in f64, caps it to finite f32 and rounds inward by one next_down step if nearest conversion overshot the admitted end. The guarantee is contained representable geometry, not exact-real arithmetic or raster-ink coverage. Two new tests explicitly establish the old arithmetic's failure before requiring a positive, finite, contained returned rectangle. A separate source re-review found no remaining issue in the conversion/use and confirmed one inward step is sufficient for these admitted finite f32 inputs. No native review is implied.

Executed gate

The exact portable wrapper compiled with rustc1.98.1 gnullvm and warnings denied. It listed20 tests. Normal execution passed19,0 failed,1 intentionally ignored (1.81s). The exact global-font mutation then passed alone in a fresh process:1 passed,0 failed,0 ignored,19 filtered (0.10s). Face count167→168 and Font Version0→1 accompanied rejection of every old-label consumer and old-session resolution. Thus all20 selected evaluators passed.

All five captured source/lock/wrapper inputs and the identified executable remained unchanged. Artifacts.json binds the raw successful compiler receipt/command, exact listing, test logs/receipts, input manifests, dependency identities and binary SHA256. The compiler emitted no output, so there is no successful compile.log. Reproduction method and third-party dependency limitations remain as documented in the prior result; this is an isolated rustc evaluator, not a desktop Cargo or WGPU/native gate. A separate local output directory allowed this small evaluator to use existing dependency artifacts while the independent navigation/rename Cargo build continued; it changed no shared Cargo output.

The production geometry/camera/paint/hit/navigation integration, native glyph-ink and self/reversed workflows, persistence and gesture behavior are still pending. Linux remains user-deferred. Live scope and continuation: Gitea issue20; combined Windows integration is issue27.