Repository navigation
Conversation
[W + 1]u8, [(W + 1) * 2]u16, [H * 2]u64 with H: u32: the length text is parsed back and folded as a module constant is, as Zig folds the text t27c prints. Run-time names, calls and negative lengths are refused. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ts (Closes #7347) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…oses #7347) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rr-type # Conflicts: # tools/policy/foreign-exceptions.txt
…loses #7347) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…essions (Closes #7347) array_len_expr.t27 moves to pass; routes/memory.t27 now stops at FnDecl(frame size). Lab corpus at --jobs 2: 818 -> 819, mismatch 0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gHashTag
enabled auto-merge (squash)
October 7, 2026 08:40
This was referenced Oct 7, 2026
Merged
Merged
…rr-type # Conflicts: # docs/reports/t27b_expectations.json
This was referenced Oct 7, 2026
Closed
gHashTag
disabled auto-merge
October 7, 2026 10:05
gHashTag
marked this pull request as draft
October 7, 2026 10:05
This was referenced Oct 9, 2026
Merged
Takes master's ledger rows (the ratchet re-bless after the merge recounts max_not_pass and re-adds array_len_expr.t27), keeps both sides' source.rs tests and foreign-exception blocks, so GitHub's update-branch can merge master in without a conflict. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
lower.rs with master's auto-merge, source.rs with both sides' tests, master's current ledger rows (the ratchet re-bless recounts after the merge), and both sides' foreign-exception blocks -- so update-branch merges master in without a conflict. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…s append points Both files are appended to by master at the same tail the lane added to, which is what makes update-branch refuse. The lane's additions move into regions master has not touched since the merge base, so the server-side merge combines them cleanly. Content is unchanged, only position. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The spot after cli/tri/src/mutate.rs sits against master's newest hunk context; one more stable region down the two appends no longer touch. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…s additions The incremental resolutions had drifted (a lost blank, a dropped criteria_backfill.py line). source.rs and foreign-exceptions.txt are now byte-identical to master outside one insertion each, parked in regions master has not touched since the merge base, so update-branch merges without a conflict. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Contributor
6 tasks
Owner
Author
|
Superseded by #8666 (merged 2026-10-10): t27b reads an array length written as a constant expression (literals, + - * / %, parentheses, unary minus, named constants) in specs/tri/t27b/type_text.t27, with conformance/array_length_expr.t27. Closing this older branch; reopen if it covers a case #8666 does not. |
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.
Closes #7347. Refs #6063.
What
t27b refused an array type whose length is not a bare literal or a bare constant name (
type [N]T), for example[W*H]u8or[N]u8whereconst N = H * 5. The reference compiles these, so the refusal blocked files the reference passes.t27b now folds the length at compile time: integer literals, module constants (typed or untyped, including one defined by another expression),
+ - *, the wrapping forms, parentheses and unary minus. A length that does not fold to a non-negative integer is still refused: a division, a call, a run-time value, a negative length, or a typed constant that overflows its type. Typed module constants fold the same way, soconst R = Q +% 10withQ: u8 = 250is 4.const OV = B + 100withB: u8 = 200is refused, matching the reference's refusal.Evidence (lab, --jobs 2, no interpreter fallback, no skipped tests)
specs/tri/t27b/conformance/array_len_expr.t27: 5 pass, 0 vacuous in the reference; the same 5 in t27b, 16 runtime asserts./, a length using a call, and a 50 KB local array over the frame limit.cargo test -p t27b: 14 suites, 128 passed, 0 failed (at 7a7688c).routes/memory.t27, which now stops atFnDecl(frame size)instead oftype [N]T.docs/reports/t27b_expectations.jsonrecounted after merging master 05e633d (pass 534, vacuous 262, not_pass 25); no duplicate paths.Foreign code
cli/t27b/src/lower.rsandcli/t27b/tests/source.rsare Rust. The owner approved foreign Rust incli/t27bfor #6063 and asked agents to set theowner-approved-foreignlabel themselves. Both files are listed intools/policy/foreign-exceptions.txt.NOW entry:
docs/now/2026-10-07-t27b-array-len-expr.md.🤖 Generated with Claude Code