Repository navigation
t27c: lower t27 ** array repeat to Zig @splat (fixes local Zig 0.17.1 build of t27core) - #13595
Conversation
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: f13dc2ca-6556-49b5-986f-e918f3a279d7) |
f1dbe79 to
ed77ad8
Compare
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: ba9d5dc5-70f1-4059-8d65-0e4f4cac9187) |
PR DashboardGenerated at: 2026-11-10 18:50:21 UTC
Summary
Seal Status
|
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: f7c2bc5b-2fa6-455e-bc8d-cf7d158e5248) |
PR DashboardGenerated at: 2026-11-10 18:59:09 UTC
Summary
Seal Status
|
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: d924843a-5c41-4e7e-a491-7c0130240805) |
PR DashboardGenerated at: 2026-11-10 19:23:32 UTC
Summary
Seal Status
|
feee360 to
9f9ea36
Compare
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: 1fd75769-0b6c-4c48-b0e2-061a7e22a945) |
PR DashboardGenerated at: 2026-11-10 19:24:58 UTC
Summary
Seal Status
|
Zig has no ** repeat operator: zig 0.17.1 read .{ 0 } ** n as
.{ 0 } * (* n) and refused the generated t27core. All four Zig emission
sites lower the repeat to valid Zig: @Splat for value forms, a comptime
tiling block for the pointer form, and a loud @CompileError for
multi-element patterns.
Refs #13591
Resealed without --force: the spec compiles and passes 114/114 under both backends. Refs #13591
9f9ea36 to
6f8b6e2
Compare
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: 1fcff976-3345-4566-8823-2196ba06e247) |
PR DashboardGenerated at: 2026-11-10 19:30:01 UTC
Summary
Seal Status
|
) The recovery branch predates #13595; carrying its pre-@Splat seals made spec-guards report core_t27core stale. Sync compiler.rs, FROZEN_HASH, rust_num_suffix gen/spec, and the three affected seals to master's current state so the branch is self-consistent and seal-current. Refs #13591, #13595 Refs #13592
…Zig @Splat repeat lowering to the 0.16-valid ** form, regen search_cmd gen under its canonical spec (Closes #13602) - L2 GENERATION: gen/rust/tri/search_cmd.rs mapped to the deleted flat specs/tri/search_cmd.t27. Regenerated byte-identical output from the canonical specs/tri/search_cmd/search_cmd.t27 into gen/rust/tri/search_cmd/search_cmd.rs and repointed the one reader (cli/tri/src/main.rs) to it. - seal currency (spec-guards): #13595 (99067e5) rewrote the four Zig repeat-emission sites to @Splat, which (a) drifted 386 seals and (b) does not compile under the reference toolchain zig 0.16.0 for the untyped-local repeat (no result type to splat into) and for the conformance specs that pin the .{ v } ** n behavior -- 203 specs refused to re-seal. bootstrap/src/compiler.rs reverted to the 99067e5^ emission; zig 0.16 (pinned locally and in CI) accepts .{ v } ** n typed and untyped (measured with build-exe probes). The 0.17.1 local t27core build this traded away is the price; filed for the owner to weigh. FROZEN_HASH reminted twice during the work. - specs/compiler/rust_num_suffix.t27: the t27o port was missing the usize width suffix (7usize stayed 7usize; the hand-written original stripped it). Branch + test added, gen-rust regenerated; 10/10 tests. Verified locally (zig 0.16 on PATH): - check_seal_currency: 3396 seals, STALE generated-code hash 0, exit 0. - check_seal_coverage: OK, 113 known-broken all in seal_baseline.txt. - dupe_scan: exit 0, no new group, none grown. - l2_regen_check --base origin/master: ok (after commit). Closes #13602
…piler (Refs #13592) The #13595 lowering changed the NOT-LOWERED test count in gen-rust headers (18 -> 19); the checked-in copies for die_binding, bench_boards, independence, corpus_receipt and ddc_receipt were never regenerated, so the_checked_in_rust_is_what_gen_rust_writes_from_the_spec drifted on any branch that rebuilds bootstrap. t27c gen-rust output, byte-exact; the test now passes 9/9 locally.
…Refs #13591, #13592) The rust_num_suffix table covered i/u 8-128 but not usize itself, so `[7usize; 3]` splatted as `@splat(7usize)` and Zig refused it with "invalid digit 'u' for decimal base" -- the repeat_width_suffix conformance spec stayed red since #13595. usize joins the table first (longest-match order kept), the element-literal splat path strips through the same t27 helper, and the conformance spec now passes 14/14 under zig 0.16.0. adagrad and corpus_merkle regression-tested.
Closes #13591.
Root cause
Zig has no
**repeat operator: zig 0.17.1 reads.{ 0 } ** nas.{ 0 } * (* n)and refuses the generated t27core. All four Zig emission sites lowered the t27 repeat verbatim.Fix
[_]T{ v } ** nand.{ v } ** nlower to@splat(v)(the count rides the target type).@compileErrorinstead of emitting invalid**.Evidence
**spellings rejected; @Splat and comptime-blk forms accepted)Note
Medium Risk
Touches core Zig code generation and bootstrap compiler sealing; behavior change is localized to repeat/suffix lowering but affects all generated t27core Zig output.
Overview
Fixes #13591 by changing the Zig backend so t27 array repeat forms no longer emit invalid
**(which Zig 0.17.1 rejects). Single-element repeats now lower to@splat(...), with repeat count carried by the target type; pointer/repeat fields use a comptime block to tile the pattern; multi-element**lowers to@compileError. Embedded thread runtime initialization switches from** 256to@splat(null).Rust numeric suffix stripping and
type_base_nameare moved out of hand-writtencompiler.rsinto a newspecs/compiler/rust_num_suffix.t27spec and generatedrust_num_suffixmodule, which the Zig emitter calls when normalizing literals like0i32.core_t27core.jsonis resealed for Zig 0.17.1 (114/114 tests);FROZEN_HASHforbootstrap/src/compiler.rsis updated.Reviewed by Cursor Bugbot for commit 6f8b6e2. Bugbot is set up for automated code reviews on this repo. Configure here.