Repository navigation
BS-25 to BS-34: ten front-end and tooling slices as language-1.2 source, landed together - #480
Conversation
…iter
The count cases BS-05 to BS-08 and BS-11 to BS-15 assert their counts in
stages, the cheapest first, so a landing that moves several of them
failed at the first stage, was mirrored by hand, run again, and failed
at the next: four rounds for SL-14, each a run of the nine parts and a
hand edit of seven files.
Each count check is now `crate::counts!(id, what, { CONSTANT: observed })`
(crates/conformance/src/counts.rs). Unset, `LEXLEAN_COUNTS` keeps the
assertion: a moved count fails the case with both tuples. Under
`report` every count is recorded in target/count-report/<id>.jsonl and
the case runs on; under `fast` it also stops before its evaluator and
rustc runs. Constants that drive the computation (the mutant draws of
BS-05, BS-07 and BS-08, the bounds) stay plain assertions, so they are
never reported as counts.
`cargo xtask counts [--write]` reads the report and rewrites each moved
constant whose literal holds the reported value; in the case's §31 row,
register statement and scenario, every number whose value no other
constant of the case holds, and each sum of one pair of its counts; and
in the prose of §17.23, a number the row's words follow there too, or
one every constant of every bootstrap case that holds it moves alike. It
prints the VERIFICATION.md rows of the landing and lists every number it
cannot place unambiguously, never guessing.
Checked: on release/v0.4 the nine parts under LEXLEAN_COUNTS=fast take
about four minutes and record 58 counts, none moved. On #415 (SL-13) one
fast pass and one write produced its whole count mirror: 23 constants,
the nine rows, statements and scenarios, 18 prose numbers including the
derived 2,927 of BS-06, with four numbers left to a reader (273 is also
a seeded-mutant count of BS-05; 117 is a timing).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
RP-05 holds the description of xtask/Cargo.toml to every task main.rs dispatches; `counts` is one now. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The one conflict is the CHANGELOG, where both entries stay, the writer's first as the later landing. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ing module The fifth slice of the front end as source (#269), on BS-24: the row (register 482 -> 483, the §31 table, the RP-07 check and its case), the scenario, the §17.23 prose, the CHANGELOG entry, the README's claim, the CI part, and the case, conformance_bs_27, which holds SurfaceTooling.printToolingModule, parseToolingModule, and declarationSpans to surface::tooling::{print_module, parse_module, declaration_spans} on hand-built vectors that reach every error and the limit on nesting at both depths, on the committed JSON files printed as modules and read and spanned back, on the committed tooling modules, and on seeded edits, with 20 planted defects each named by its vector. VERIFICATION.md records the first run: the evaluator agrees on 654 prints, 218 reads, and 229 spans, rustc on 5,098 runs, and every plant is detected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
bootstrap/src/SurfaceTooling.lex.tex over SurfaceGeneric: printToolingModule removes the spec and prints with printGeneric; parseToolingModule reads one object with parseGeneric and adds the implied spec in order of key; declarationSpans walks the members with a state machine over the tokens, reading a member with readFrom at depth 1 and an element of declarations at depth 2. Lean verifies the module and each root is eligible with exactly its declared effects, the printer's including recursion. The entrypoint, the lock, the three export roots, and the project README follow. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
BS-27 stacks on the combined landing of BS-22, BS-23, and BS-24 (#451), whose export, records and counts it takes; the merge is clean. The bootstrap lock follows the SurfaceTooling entrypoint on the merged tree. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The conflicts are generated bootstrap files only, taken from the line and regenerated in the commits that follow. The surface tooling part joins the Intel print lane that #450 requires of every BDD part. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
With the surface tooling, the production export of the bootstrap project is 135,273,215 bytes, beyond the 134,217,728 it configured (LLS8002 in the certificate phase). The maintainer raised the limit to 536,870,912, which leaves room for the further components of the driver; SPEC.md §17.23, the CHANGELOG, and the BS-27 record say so. A semantic input: the lock and every package move in the regeneration that follows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The local disk cannot hold the production export and verify records. This workflow repeats the local regeneration on a clean checkout and uploads the patch; it is deleted in the commit that applies that patch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Regenerated by regenerate.yml (run 43050104167) on this tree with the raised source limit; the temporary regen-452.yml is removed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… tooling packages Written by the count writer of #442 from LEXLEAN_COUNTS=fast runs of the nine parts on the regenerated tree, then validate-model --write. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…t record conformance_bs_27 passed whole with LEXLEAN_MEASURE_STACK=all on the regenerated tree and recorded the row of bootstrap/print_tooling_module (PD-08); VERIFICATION.md records the moved counts and how the tree was regenerated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # CHANGELOG.md
# Conflicts: # CHANGELOG.md # crates/conformance/src/cases/bootstrap/rust_lower.rs
# Conflicts: # CHANGELOG.md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… its components Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… and record whole The hunk-level merge had interleaved blocks that two slices added at one place; these files are rebuilt from their state before the slices with each slice's additions inserted whole, the register, tests and scenarios in ID order. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… in register order Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Regenerated by regenerate.yml (run 43112441927): the production export, build oracles, verify records, the counts of BS-05 to BS-08 and BS-11 to BS-15, the model documents, and the stack bounds of print_lse (BS-25) and build_manifest (BS-34). VERIFICATION.md records the moved counts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
check-golden --write after merging SM-38: the declarations files of the ten new bootstrap modules, and the bootstrap build manifest. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
BS-25, BS-26 and BS-28 to BS-30 predate the Intel lane plan, so their parts were in no lane; they join the lower lane, the shortest. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
afflom
left a comment
There was a problem hiding this comment.
Bounded integration review at707ed confirms actual5dcc ancestry and the493-row register with the ten BS-25–34 statement/scenario/test mirrors. The one-producer batch avoids ten competing regenerations. It still carries concrete findings already assigned to the existing owner:
- counts.rs remains blob a194f608: unchanged sum explanations are excluded before ambiguity resolution, and prose stops at the first matching anchor. Both #442 findings remain; the already reviewed #462 repair d8ee566 is absent. Integrate that existing coordinated repair rather than create a second implementation. A successful count run does not establish that the planner handles ambiguous inputs.
- BS-15 still promises3,190 in its authority/mirrors. Current rust_package.rs retains (349 manifests +182 rules +2000 mutants) +(330 accepted +137 render rules +330 render mutants)=3,328 compiled runs. Correct the authority and regenerate its mirrors through the official model writer; do not drop corpus cases to match stale prose. The BS-07 paragraph likewise says1,392 while specifying381 cases at each of four roots (=1,524).
- The inherited BS-27 VERIFICATION record still calls the third package render_tooling_latex instead of declaration_spans and attributes all three to the bounded subsets. The newer batch table does not correct that earlier causal claim. Make the record precise while preserving what the retained evidence actually shows.
The four separately retained SPEC numbers have plausible independent meanings (fixed windows/draws and historical timing); they should not be blindly rewritten. I did not retrieve their original counts.txt payload, so this is not an exact flag-to-line audit. The formerly missing BS-27 packages are present.
Producer43112441927 genuinely passed5/5 at583e917, but its output adoption and later SM-38/golden reconciliation are distinct from final707 qualification. Retain the existing producer/adoption receipts; no blanket regeneration, old-gate replay or log/artifact download was performed here. The full current gate remains nonterminal. This review covers selected integration findings, not all1,468 changed files or all ten feature implementations; #269/#274 and original components remain open until their actual delivered scope is established. Receipt dc3e3de8 records these limits.
afflom
left a comment
There was a problem hiding this comment.
Exact-head CI43135541484 is now terminal SUCCESS:64/64 materialized jobs,720/720 reported steps, including same-run honesty130910427049; repro43135541535 also passed. All74 listed artifacts are unexpired. This readback fetched no job logs or artifact payloads and repeated no tests or producers.
The head is unchanged, so the concrete source/count/provenance findings in review5867962064 remain unresolved. Passing execution does not establish that the count writer handles the ambiguity cases or correct the current source totals. Please batch the existing #462 repair and the already identified authority/mirror/history corrections before resulting-head qualification; no competing implementation or repeated old-head gate is requested. Existing owner retains the batch and landing; component issues and broad parents remain open.
|
Actual landing readback: this PR was externally merged at09:47:01 as aaf8455, ordered parents[5dccf9e,707ed976]. Tree e72ad3a57ca0423db1254f852d3094ab4fddef90 equals the reviewed head and recorded pre-merge synthetic b000f7e. Existing exact-head CI43135541484 (64/64 jobs,720 steps, same-run honesty) and repro43135541535 were reused without rerunning them or retrieving logs/artifact payloads. This confirms landing identity, not resolution of reviews5867962064/5869622192. The #462 count-writer repair is still absent; BS-15 remains3,328 versus3,190, BS-07 remains1,524 versus1,392, and the inherited BS-27 provenance wording remains inaccurate. No final source-clearance review preceded this external merge. Please retain these as concrete owner follow-ups rather than losing them when the component carriers close. Full-body reassessment keeps #269 and #274 open: BS-25–34 deliver slices, not the complete certified front end and every CLI command on all committed projects. The nine component PRs closed with explicit links to this merged PR remain superseded/unmerged; GitHub separately reports #442/#452 merged through reachable batch history. No further issue closure is justified by this bounded audit. |
Lands ten self-hosting slices of the compiler (#269, #274) together, with one regeneration and one CI gate, instead of ten.
What is in it
BS-25LexiconLse)BS-26LexiconLre)BS-27SurfaceTooling)BS-28SurfaceModule)BS-29Diagnostics)BS-30CliOutput)BS-31LockText)BS-32ContentId)BS-33ProjectText)BS-34ManifestText)It also carries the count writer of #442, which the regeneration needs to write the moved counts.
Not included: RB-24 (#419). It changes
language/semantics-1.2.toml, which moves every example's lock, UOR Atlas included, so it gets its own regeneration.How it was put together
release/v0.4at7eb816284, then Bootstrap count cases: report every moved count in one pass, and write them #442 and BS-27 (BS-27: the notation of a tooling module as language-1.2 source (#269) #452, already regenerated) merged in.CONFORMANCE.md,ERRORS.md, the bootstrap lock) were taken from the base and rewritten afterwards.vv-rows.json,intel-host-lanes.json,roots.json) were merged by content.bdd-parts.jsonwas merged as text, because it holds duplicate keys on release that a parse would drop.model/ids.toml,tests/conformance.rs,bootstrap.feature) were rebuilt with each slice's block whole, in ID order.b8f8cb3f4. Each batch slice's CHANGELOG entry gives the register size in landing order after SM-38's 483: BS-27 484, then BS-25 to BS-34 485 to 493.check-golden --writeadded the declarations files of the ten new modules (0e26b6914). No export, record or lock moved.regenerate.yml(ci: regenerate.yml, the write recipes on runners #467), run 43112441927. That covers the export, records and oracles, then the count writer, the model documents, and the stack bound of each new recursive package.Verified before this PR
cargo fmt --check,cargo clippy --workspace --all-targets --all-features -D warnings,validate-model(493 IDs),validate-spec-links, and all 17conformance_rp_*cases pass.LEXLEAN_COUNTS=fast. The writer moved every count for the 22 new packages (308 → 330). It flagged four SPEC numbers for a reader, and each stays as written (see VERIFICATION.md).print_lseandbuild_manifest, and measured them by running BS-25 and BS-34 whole. Both passed, which also checked the new counts.lexlean lock --checkis current.The full gate on this PR is the first time the ten cases run whole together.
🤖 Generated with Claude Code