Skip to content

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

Closed
gunbai-bot[bot] wants to merge 3 commits into
mainfrom
session/deep-stag-577

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Auto-opened by session-dashboard for session deep-stag-577.
Pushing to session/deep-stag-577 advances this PR.

Worker attestation

Before flipping this PR to ready for review, confirm each item:

  • Title describes the change (not the session id or branch).
  • PR body summarises what and why (replace the TODO below).
  • Tests run: name the command (e.g. npm test, cargo test) and the result.
  • If this closes a work item, the body contains a Closes #N directive.
  • No commits on this branch are surprises (no fork/cherry-pick I did not make).
  • No secrets / credentials / large binaries staged.

Summary

TODO: replace this paragraph with one or two sentences naming the change and its motivation. Reviewers read this first.

Test plan

  • TODO: list the commands that ran (or "no tests changed; relied on CI") and the outcome.

gunbc-ci-auto-heal and others added 3 commits September 2, 2026 14:35
…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
@gunbai-bot

gunbai-bot Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor Author

Closing: this PR is a REVERT, not a re-proposal. It was auto-opened from session/deep-stag-577 after #10073 was squash-merged — the squash means this branch's commits are not ancestors of main, so GitHub computes the diff from a merge base that predates everything landed since.

Verified by content rather than by the title match. main already carries the whole change at b430727: the crate root has 0 crate-level allows and 74 per-item ones, generated_rust_lint_relaxations is present in 05_emit_rust.dag, and the Value::is_reflexive() eq_op repair is in v1_interpreter.rs. Nothing from this branch is missing from main.

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, oobe_screen_observation.dag, and 610 lines of namespace_wave_admission.rs among them.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants