Repository navigation
The emitter shipped its own mirror one generation behind: main's regen has refused every run since #8691 - #8969
Merged
Merged
Conversation
…n has refused every run since #8691 #8691 taught the emitter to drop the no-op `sharing.iter_owned` receiver clone where syntactically provable safe, and committed a mirror of the emitter that was itself emitted by the OLD binary. So the new emitter has never been at its own fixed point: build the committed mirror, emit with it, and three sites come back without the clone the committed file still carries. - for p in parts.clone().iter().cloned() { + for p in parts.iter().cloned() { That is the whole drift -- three lines in one file, and exactly one file out of the 132-module candidate tree differs. `first_generation_equal=false` is the tool stating precisely this, and it is not a defect in #8691's change: the change is correct, only its second bootstrap generation was never taken. BISECT. main is green through f2d1ae7 and has failed EVERY witnesses run since 1caf8d5 (#8691) with one unchanging signature, `required-ci: regen FAIL generated surface drift: v1_compiler_emit_rust.rs`. Reproduced locally from origin/main byte-for-byte before any edit. THE FIX IS THE SANCTIONED ROUTE, NOT A HAND-EDIT. The mirror installed here is the candidate the regen itself produced at target/stage0-regen-candidate -- production precedes adjudication, so the artifact a refusal names is the artifact the author installs. Hand-authoring these three lines would have reached the same bytes and proved nothing; that is the laundering the fixed-point work closed one gate over, and it is not re-opened here. VERIFIED BY EXECUTION, on the rebuilt binary rather than the one that emitted it: - `--required-regen` generation 2: first_generation_equal=true, exit 0 - re-emitted candidate is byte-identical to the committed file - `cargo fmt --all --check` clean -- the artifact remains a fixed point of the formatter, so its two normalizing consumers still agree NOT CLAIMED: this restores the fixed point that #8691 left un-taken. It does not add anything that would have CAUGHT the gap -- nothing refuses a mirror that is one generation stale except the next run of the gate that just spent a day red, and closing that is a separate question from getting main green. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017HBx8dnz3oCiiHXoSBdtH2
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.
main has been red on
witnessessince #8691 merged. Every run since1caf8d519fails with one unchanging signature:The cause
#8691 taught the emitter to drop the no-op
sharing.iter_ownedreceiver clone, and committed a mirror of the emitter emitted by the old binary. The new emitter has therefore never been at its own fixed point. Build the committed mirror, emit with it, and three sites come back without the clone the committed file still carries:That is the entire drift: three lines, one file, and exactly one file out of the 132-module candidate tree differs.
first_generation_equal=falseis the tool saying precisely this. #8691's change is correct — only its second bootstrap generation was never taken.Bisect
f2d1ae7e11caf8d519(#8691)Reproduced locally from
origin/mainbyte-for-byte before making any edit.The fix is the sanctioned route, not a hand-edit
The mirror installed here is the candidate the regen itself produced at
target/stage0-regen-candidate. Production precedes adjudication, so the artifact a refusal names is the artifact the author installs. Hand-authoring these three lines would have reached identical bytes and proved nothing — that is the laundering the fixed-point work closed one gate over, and it is not re-opened here.Verified by execution
On the rebuilt binary, not the one that emitted the candidate:
--required-regengeneration 2 →first_generation_equal=true, exit 0cargo fmt --all --checkclean — the artifact remains a fixed point of the formatter, so both normalizing consumers still agreeNot claimed
This restores the fixed point #8691 left un-taken. It adds nothing that would have caught the gap. Nothing refuses a one-generation-stale mirror except the next run of the gate that just spent a day red; closing that is a separate question from getting main green.
Found while investigating unrelated CI failures on #8932. Two independent failures were in play — see the PR discussion for the
spawn rustfmt: No such file or directoryflake, which is a concurrency defect in the shared runner$HOMEand is not addressed here.🤖 Generated with Claude Code
https://claude.ai/code/session_017HBx8dnz3oCiiHXoSBdtH2