Repository navigation
t27b: emit_kit test reads only bytes it wrote (Refs #9994) - #10103
Merged
Merged
Conversation
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>
This was referenced Oct 17, 2026
Merged
Contributor
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.
Refs #9994
Cause
bytes_and_numbers_are_written_where_askedinspecs/tri/t27b/emit_kit.t27(from #10065) wrote its second number atout[3 .. 13]of anundefinedbuffer, then calledholds(out, 13, ...).holdsscans fromout[0], so it readout[1]andout[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 byteholdsscans has been written. The seal is resaved. There is no Rust change and nogen/change: emit_kit's tests are not part of generated output.Evidence (Railway lab: t27b cross-built for aarch64, run under qemu-aarch64)
t27b test specs/tri/t27b/emit_kit.t27 --checkreproduces the MISMATCH and exits 4t27c 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