Skip to content

t27b: emit_kit test reads only bytes it wrote (Refs #9994) - #10103

Merged
gHashTag merged 1 commit into
masterfrom
claude/emit-kit-uninit
Oct 17, 2026
Merged

gHashTag merged 1 commit into
masterfrom
claude/emit-kit-uninit

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

Refs #9994

Cause

bytes_and_numbers_are_written_where_asked in specs/tri/t27b/emit_kit.t27 (from #10065) wrote its second number at out[3 .. 13] of an undefined buffer, then called holds(out, 13, ...). holds scans from out[0], so it read out[1] and out[2], which were never written. t27b's JIT read whatever was there and passed. Its interpreter refused the read (Fault("1-byte read at stack+0x1 of bytes never written")), so t27b-native-ratchet reported a JIT/interpreter MISMATCH against a ledger row that says pass (run 39059475192, job 117474296580).

Fix

The second number is now written at out[1], right after the first one, so every byte holds scans has been written. The seal is resaved. There is no Rust change and no gen/ change: emit_kit's tests are not part of generated output.

Evidence (Railway lab: t27b cross-built for aarch64, run under qemu-aarch64)

  • master: t27b test specs/tri/t27b/emit_kit.t27 --check reproduces the MISMATCH and exits 4
  • this branch: 4 passed, 0 mismatches, 17 runtime asserts, exit 0. This matches t27c test-report (5/1/2/9, 0 vacuous).
  • ts_emit.t27: 4/4. verilog_emit.t27: 8/8. Neither has a mismatch.

The other unexpected failure on #10097 (rust_convert.t27) is already red on master and is not touched here.

🤖 Generated with Claude Code

bytes_and_numbers_are_written_where_asked wrote its second number at
out[3 .. 13] of an undefined buffer, then asked holds(out, 13, ...),
which scans from out[0]: out[1] and out[2] were never written. t27b's
JIT read whatever was there and passed; its interpreter refused the read
(Fault "1-byte read at stack+0x1 of bytes never written"), so
t27b-native-ratchet called the spec a JIT/interpreter mismatch against a
ledger row that says pass. The number is now written at out[1], right
after the first one, so every byte holds scans was written first.

Measured on the Railway lab, t27b cross-built for aarch64 and run under
qemu: `t27b test emit_kit.t27 --check` on master gives the mismatch and
exit 4; with this change 4 passed, 0 mismatches, 17 runtime asserts,
matching t27c test-report (5/1/2/9). ts_emit 4/4 and verilog_emit 8/8 pass
the same check. Seal resaved.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-17 19:23:15 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 49
PRs with All Checks Green 1
READY 0
FAILING 49
PENDING 0
NO CHECKS YET 0

These columns do not partition: 0 + 49 + 0 + 0 = 49, and there are 50 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=e769ef021713 != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

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