Skip to content

More properties on the same corpus; finding 8 reduced and confirmed - #20

Merged
zmaril merged 9 commits into
mainfrom
mirth/props
Oct 9, 2026
Merged

zmaril merged 9 commits into
mainfrom
mirth/props

Conversation

@zmaril

@zmaril zmaril commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Follows the merged stack.

  • #162202 workaround (docs/hunt/threads-def-order-stopgap.patch, testing only): definitions that queries create are made on one thread, in order, before rustc's commit_end_of_determinism. Threaded fuzzing on the unmodified fixtures/sink is now clean (644+ rebuilds).
  • New properties (docs/props.md), on sink and the ten replayed crates:
    • MIR validation at -Zmir-opt-level=0..4 × -Copt-level=0/3: 110 builds, no failures.
    • Tests at -Copt-level=0 vs 3: 2,239 tests, none differ; sink's 60 runtime checks identical.
    • Old vs new trait solver: everything compiles both ways; the same 2,239 test results.
  • Finding 8: with -Zmir-opt-level=3, an incremental rebuild encodes an allocation from MIR inlined from core twice. Found by fuzzing at -Zmir-opt-level=4, named by the reuse check (whose sharing reports now print the allocation), reduced to one line (pub fn f<T>(v: &[T]) -> Option<&[T]> { v.get(..3) }), on 1.60.0 through the nightly. An experimental cache change (docs/hunt/upstream-alloc-reference.patch) that refers to upstream allocations instead of copying them confirms the mechanism; one fuzzer case has another source.
  • rustc/regen-patches.sh regenerates the patch files and checks the stack reproduces the compiler tree; fuzz-replay.py keeps the last builds' output.

🤖 Generated with Claude Code

https://claude.ai/code/session_018Mnrg9JXj9X1ht6Qkz2ybh

zmaril and others added 9 commits October 7, 2026 21:32
…-opt-level=3

The difference needs MIR inlining from core; a generic local helper, a
non-generic function or level 2 do not show it. All the level-4 fuzz
differences go away with -Zinline-mir=no.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Mnrg9JXj9X1ht6Qkz2ybh
…ver, threads

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Mnrg9JXj9X1ht6Qkz2ybh
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Mnrg9JXj9X1ht6Qkz2ybh
… test results

docs/hunt/upstream-alloc-reference.patch makes the incremental cache refer to
allocations decoded from another crate's metadata instead of copying them;
both reproductions then build the same incrementally as clean. One fuzzer
case remains. The tests of the ten crates give the same results under
-Znext-solver=globally as under the old solver.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Mnrg9JXj9X1ht6Qkz2ybh
…its limits

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Mnrg9JXj9X1ht6Qkz2ybh
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Mnrg9JXj9X1ht6Qkz2ybh
…ches kept locally

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Mnrg9JXj9X1ht6Qkz2ybh
…age attributes, mixed_site hygiene, inlining across crates

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Mnrg9JXj9X1ht6Qkz2ybh
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Mnrg9JXj9X1ht6Qkz2ybh
@zmaril
zmaril marked this pull request as draft October 8, 2026 16:36
@zmaril
zmaril marked this pull request as ready for review October 9, 2026 11:32
@zmaril
zmaril added this pull request to stack #23 October 9, 2026 14:15
@zmaril
zmaril merged commit afc9b12 into main Oct 9, 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