Repository navigation
The clippy check DESIGN names as one of three is nearly inert over v1-compiler: the generated crate root allows clippy::all plus six rustc lint groups — measure what the step actually decides, and repair at the producer - #10110
gunbai-bot[bot] wants to merge 3 commits into
Conversation
…ppy gate decided nothing over 109k hand-written lines MEASURED (cargo clippy --all-targets -p v1-compiler, two BuildBuddy runs). The generated crate root allowed clippy::all plus six rustc lint groups, and an inner allow outranks -D warnings, so one of the three checks DESIGN names was inert over every module under that root -- including the 40 top-level and 27 cli_run modules written by hand. --force-warn over the crate: 32,188 suppressed, 28,717 generated / 3,471 hand-authored. Simulating the repair and running clippy at normal levels: 0 in generated code, 705 unique in hand-authored code. One is deny-by-default -- clippy::eq_op on v1_interpreter CanonKey::new -- which is correct code (a NaN-and-unmatched-variant reflexivity guard over Value::Float) the gate would have spoken on and did not. 258 of the 705 are clippy::disallowed_macros, the repo's own eprintln policy, suppressed in cli_run. REPAIRED AT THE PRODUCER. v1.compiler.emit_rust now owns generated_rust_lint_relaxations -- one list, two renderings -- and v1.compiler.stage0_crates imports it instead of respelling the identical literal beside it. emit_lib_rs emits the crate-level block only for a root whose modules are all generated; the stage0 host shell, the one root that mixes authorship, rides the relaxation on each generated pub mod decl, partition re-export, generated test module and the im alias, and leaves the 27 hand-maintained decls bare. Partition crates keep a crate-level block and stay byte-identical, which is honest there: every module they include by #[path] is generated in full. The eq_op site is repaired by naming it -- Value::is_reflexive, one site, one documented lint refusal -- not left under a blanket. The remaining 706 are rostered as narrow per-lint per-module allows in 41 files, one lint per line with its count, declared monotone non-increasing; a lint not named in a module's roster reds the build. cli_run.rs's own roster would have cascaded to its 27 submodules, so each restores to warn every name its parent allows and it does not itself trip. Admitted under gunbc.v1_maintenance_standing v1_seed_standing on the serves-the-self-host- program arm: this adds no v1 capability and changes no v1 semantics -- it repairs the emitter's description of its own output, and the seed is what v2 is emitted from. VERIFIED BY EXECUTION: cargo clippy --all-targets -- -D warnings green with the gate live; required-regen first_generation_equal=true; required-regen-fixed-point fixed_point_equal=true; emit-partition-crates reports every partition lib.rs matches. Follow-ups, deliberately not here: the ~255 mechanically autofixable findings, the 150 dead_code, and main.rs / bin/*.rs, which are hand-authored crate roots carrying their own hand-written clippy::all. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NaYej9KqftabgV7gshZw5j
…dings it unblankets The merge's only conflict was the generated mirror v1_compiler_emit_rust.rs, which is regenerated rather than resolved by hand: the seed was built from origin/main's mirror bytes, then three bootstrap rounds to convergence, because the first pass runs a binary that predates the emitter change it is emitting. first_generation_equal=true, fixed_point_equal=true. TWO FINDINGS ON MAIN BECOME VISIBLE HERE, and neither is authored by this branch. Both were suppressed by the crate-root blanket this change removes, so they are the first live evidence that the roster describes real findings: - clippy::unnecessary_map_or in cli_run.rs, repaired at the site with the lint's own suggestion rather than added to that module's roster. The roster declares itself monotone non-increasing, so absorbing a post-roster violation would contradict its stated direction. - clippy::four_forward_slashes in emitted_closure_compile_host.rs: `////` where `///` was meant. The author wrote a doc comment and Rust read an ordinary one, so the prose was never attached to the item it documents. That is the sharper specimen -- a blanket that hides clippy::all does not merely defer style, it let a paragraph fall off the documented surface silently. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NaYej9KqftabgV7gshZw5j
Second full integrate-rebuild-regen-fixed-point cycle. Both conflicts were the generated mirrors lib.rs and v1_compiler_emit_rust.rs, regenerated rather than resolved by hand; the seed was rebuilt from origin/main f363242's mirror bytes, then three bootstrap rounds to convergence, the same shape as the first cycle because the first pass necessarily runs a binary predating the emitter change it emits. first_generation_equal=true, fixed_point_equal=true, and cargo clippy --all-targets -- -D warnings exits 0 with the gate live. The per-item allow count on the crate root is 74 here against 75 before, because main's module set changed under #10037. The number is DERIVED from the generated module roster, not a constant this change carries -- worth stating so a future reader does not read the difference as drift. No new findings surfaced from the seven merged commits. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NaYej9KqftabgV7gshZw5j
|
Closing: this PR is a REVERT, not a re-proposal. It was auto-opened from Verified by content rather than by the title match. What merging it would actually do is delete 7,602 lines across 45 files of other people's work landed after this branch point — #9992's printed-chassis authorities, Deleting the branch so the auto-open cannot re-fire. The lane is complete: #10073 and #10081 are both merged. — sent from deep-stag-577 |
Auto-opened by session-dashboard for session
deep-stag-577.Pushing to
session/deep-stag-577advances this PR.Worker attestation
Before flipping this PR to ready for review, confirm each item:
npm test,cargo test) and the result.Closes #Ndirective.Summary
TODO: replace this paragraph with one or two sentences naming the change and its motivation. Reviewers read this first.
Test plan