Skip to content

Replay seven past rustc bugs - #12

Merged
zmaril merged 1 commit into
mainfrom
mirth/regressions
Oct 7, 2026
Merged

zmaril merged 1 commit into
mainfrom
mirth/regressions

Conversation

@zmaril

@zmaril zmaril commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Stacked on #11.

The edits in results.md were written by someone who knew what mirth watches. This PR tests it on real bugs instead. Each merged fix is reverted on the pinned compiler, the compiler is rebuilt, and check.sh chain plus the same rustc suites are run. The write-up is docs/regressions.md.

PR the bug mirth rustc's tests (180 + 532 + 46)
#122891 implied predicates not encoded caught: list pass
#130201 async closure by-move body not encoded caught: the original ICE pass
#138678 doc link reference definitions encoded in hash order caught: P5, P5 threads, touch, P6 pass
#143247 metadata depends on the forever-red node, so it is never reused caught: touch rebuild pass
#82047 old .rmeta not removed before rename caught: list pass
#144050 no_mangle/link_section not encoded for rustdoc missed pass
#162910 DefPathHashMap order under -Zthreads missed pass

How to read this:

  • Only two catches needed nothing new. #122891 and #82047 were caught by what already existed. The other three each needed something added with the bug in mind:
    • a new check.sh step: an incremental rebuild after touch, with its record blessed;
    • an async closure in the fixture;
    • a doc comment with unused reference definitions in the fixture.
  • The selected rustc tests miss all seven, but that's mostly how they were chosen. Each fix added a regression test, and none of those tests is in the selection, which was made for the edits.
  • metadata-stub-incremental-reuse runs the reuse path and still passes under #143247. It checks that the build works, not that the metadata was reused.
  • #162910 is missed even with more builds. 16 threaded builds all matched. rustc's own parallel-reproducible-build test also passes with the revert.

Changes:

  • rustc/regressions/*.patch: seven reverts, each generated from the pristine pinned source.
  • rustc/edits.sh: EDITS=regressions selects the patches.
  • check.sh: two new steps, P5 with -Zthreads=8 and the touch rebuild (tests/rmeta/<fixture>.touch.txt). A build that fails now prints why.
  • The normaliser replaces incremental session directory names.
  • The chain fixture gets four additions, and its lists are blessed again.

🤖 Generated with Claude Code

https://claude.ai/code/session_018Mnrg9JXj9X1ht6Qkz2ybh

@zmaril
zmaril added this pull request to stack #19 October 7, 2026 20:17
Base automatically changed from mirth/run-make to main October 7, 2026 20:17
rustc/regressions holds seven patches that each revert a merged fix on the
pinned compiler: #122891, #130201, #138678, #143247, #82047, #144050 and
#162910. EDITS=regressions rustc/edits.sh applies, checks and reverts them,
writing docs/regressions/*.txt. docs/regressions.md has the results: mirth
catches five, the selected rustc tests none (the tests each fix added are
outside the selection), and three of the five needed something added
knowing the bug.

check.sh gains two steps: P5 for two builds with -Zthreads=8, and an
incremental rebuild after touching every source file, compared with
tests/rmeta/<fixture>.touch.txt, which shows whether metadata was reused
from the incremental cache. The normalisation replaces incremental session
directory names. A failed build now prints why.

The chain fixture gets an async closure called by value downstream, a trait
returning impl Trait, a #[no_mangle] function, and a doc comment with
unused reference definitions; the lists are blessed again.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Mnrg9JXj9X1ht6Qkz2ybh
@zmaril
zmaril force-pushed the mirth/regressions branch from c3ceec2 to 3e96936 Compare October 7, 2026 20:17
@zmaril
zmaril merged commit da368aa into main Oct 7, 2026
3 checks passed
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.

1 participant