Skip to content

Repro scripts for findings 19, 20, 32, 33, 42; finding 32 corrected - #43

Merged
zmaril merged 1 commit into
mainfrom
mirth/repro-scripts
Oct 10, 2026
Merged

zmaril merged 1 commit into
mainfrom
mirth/repro-scripts

Conversation

@zmaril

@zmaril zmaril commented Oct 10, 2026

Copy link
Copy Markdown
Contributor

Self-contained reproduction scripts in docs/hunt/repro/. Each one:

  • creates a minimal Cargo project in a temporary directory, writing every file with a heredoc;
  • runs the exact commands (cargo +<toolchain> …, plus clang for the C side of the ABI cases);
  • checks the output and ends with REPRODUCED or NOT REPRODUCED.

Each script's header says how mirth found the bug. None came from a public crate.

Script Finding Severity Run here
19-riscv-stack-arg-extension.sh riscv64: an i32 passed on the stack to extern "C" isn't sign-extended (clang marks it signext) high (stable, tier 2, silent wrong values across FFI) REPRODUCED on stable and 1.80.0
20-riscv-float-pointer-struct.sh riscv64: struct { float; void* } goes in a float and an integer register; clang uses two integer registers high (same) REPRODUCED on stable and 1.80.0
33-rustdoc-empty-nested-use.sh cargo doc panics on use {{}};, which cargo build accepts; a nightly regression since 2026-09-26 medium REPRODUCED (09-25 is fine, 10-06 panics)
32-iter-chain-solver-regression.sh rejecting an iterator chain over the recursion limit takes about 8× the CPU and gives 75 errors instead of one under the new solver low REPRODUCED
42-dead-code-used-trait.sh dead_code calls two traits "never used", and deleting them breaks the build low (stable, warn-by-default) REPRODUCED on stable and 1.80.0

Correction to finding 32. It was first recorded as a medium compile-time regression on valid code. That was wrong: the 200-map program is over the recursion limit and every toolchain rejects it, and the original timings never checked the exit status. Under the limit (126 maps), the new solver isn't slower; it's faster. This PR rewrites the facts doc and the hunt.md row to say what does differ: how slowly and noisily the program is rejected. Severity is now low.

🤖 Generated with Claude Code

https://claude.ai/code/session_01QXiEXbESemwqMLYKaWLDbT

…finding 32 corrected: the 200-map chain is rejected by every toolchain, so it is a slow, noisy rejection (low), not a compile-time regression on valid code

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QXiEXbESemwqMLYKaWLDbT
@zmaril
zmaril merged commit 12faefa into main Oct 10, 2026
0 of 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