Repository navigation
mirth: second batch of checks; all Python ported to mirth-lab (Rust) - #30
Merged
Merged
Conversation
…d and compiled); finding 29: lint fixes that break builds Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXiEXbESemwqMLYKaWLDbT
…unds, errors without a location, duplicates); finding 30 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXiEXbESemwqMLYKaWLDbT
…eyond the known parallel-frontend issues Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXiEXbESemwqMLYKaWLDbT
…table code); finding 31 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXiEXbESemwqMLYKaWLDbT
…link-probe (check 5: build-std and link for every target) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXiEXbESemwqMLYKaWLDbT
…uture size and stack frames over size-parameterized programs) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXiEXbESemwqMLYKaWLDbT
… JSON diagnostics and timeouts, driver with the frontier options, artifacts, miri, normalize) and opt-diff, solver-diff, crash-diff, diag-check, validated against the Python sweeps (same findings); mirth-rewrite split into a library and a binary Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXiEXbESemwqMLYKaWLDbT
…t-diff (identical to the Python sweep: 7,357 suggestions, 159 tests with findings) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXiEXbESemwqMLYKaWLDbT
…ts as Python, instr-check with the harness artifacts it surfaced fixed); spawn retried on ETXTBSY Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXiEXbESemwqMLYKaWLDbT
…c), abi-diff (typed differences; known and undecided classes labelled by variant); all 14 oracle tools ported Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXiEXbESemwqMLYKaWLDbT
…; docs name the mirth-lab subcommands; how to run them in checks.md Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXiEXbESemwqMLYKaWLDbT
…nd gap lists as callgraph.py on build-blk; ties ordered differently); coverage-report.sh uses it Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXiEXbESemwqMLYKaWLDbT
…ng -fprofile-generate fails the same link) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXiEXbESemwqMLYKaWLDbT
… the library; ui-solver-diff.py removed (solver-diff covers it) ui-fuzz: same options, outputs and finding classes as ui-fuzz.py on 48 tests (276 vs 283 edits; debuginfo and io-checks P5s; finding 18 reproduced on pinned-drop-sugar-no-core). Edits come from rand's StdRng seeded by the test path, so sequences differ from Python's random.Random. Unified diffs of the edit history from similar. mutations: the 16 edits of mutations.py; the lookbehinds done by hand. artifacts: collect and compare from artifacts.py (Collected), for the fuzz and replay ports. mutations.py and artifacts.py stay until fuzz.py, replay.py, flag-walk.py and coverage-flags.py are ported. ui-solver-diff.py: solver-diff on tests/ui/transmutability compiles the same 78 tests and finds the same 8 verdict differences; it notes the E0277/E0521 case. Not covered: a different first-error message under the same error code. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXiEXbESemwqMLYKaWLDbT
…overage, ui-coverage (validated against the Python scripts); shell callers build and use mirth-lab Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXiEXbESemwqMLYKaWLDbT
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXiEXbESemwqMLYKaWLDbT
… flag-tools port Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXiEXbESemwqMLYKaWLDbT
# Conflicts: # crates/mirth-lab/src/main.rs
…modules, to reconcile with port-ui) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXiEXbESemwqMLYKaWLDbT
… ui-coverage scripts removed (ported to mirth-lab); docs name the subcommands Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXiEXbESemwqMLYKaWLDbT
…y and artifacts.py removed fuzz, fuzz-replay and replay keep the Python options, output files and formats. The library's cargo module has what they share: Cargo's JSON messages, the compiler's verify-reuse and untracked-read lines, a process-group timeout that tells a hung rustc from a looping build script, and tree copies that keep modification times (Cargo's freshness depends on them). Comparison is artifacts::collect/compare and the edits are mutations, both from port-ui. A --seed names an edit sequence only within the Rust fuzzer. Validated: fuzz-replay printed the same per-step lines and differing .rmeta files as fuzz-replay.py on a 12-edit finding, also with --upto 3; replay wrote the same records as replay.py for bitflags commits 290-296; a 2-worker fuzz of fixtures/sink with rustc-verify12 found the same class (the known allocation-sharing verify-reuse report) with the same finding files. flag-walk.py and coverage-flags.py still import mutations.py and artifacts.py; they are being ported on mirth/port-flags. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXiEXbESemwqMLYKaWLDbT
…flag-fuzz, audit-options, coverage-flags; the Python versions removed Validated against the Python on the same inputs: flag-model byte-identical (15 variants); flag-universe options/singles/pairs/requires.json byte-identical (covering-array sizes differ by a row or few: another RNG); flag-rows, audit-options and flag-min identical output; flag-walk same per-row results on 3 rows; coverage-flags same statuses (site counts differ by the random edit). flag-fuzz calls `mirth-lab fuzz` (from mirth/port-fuzz). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXiEXbESemwqMLYKaWLDbT
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXiEXbESemwqMLYKaWLDbT
# Conflicts: # crates/mirth-lab/src/lib.rs # crates/mirth-lab/src/main.rs
…in rustc/ removed (artifacts.py, mutations.py); references updated Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXiEXbESemwqMLYKaWLDbT
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXiEXbESemwqMLYKaWLDbT
…s, bisected to nightly-2026-08-04 (#160254 the only solver PR in range); facts and the 200-map test Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXiEXbESemwqMLYKaWLDbT
…ed value ran every row; Python raised) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXiEXbESemwqMLYKaWLDbT
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.
Stacked on #29.
Second batch of checks (docs/checks.md)
#[rustc_main]on a struct ICEs.The Python is now Rust:
crates/mirth-labAll 36 scripts in
rustc/*.py(about 6,200 lines) are now one library plus 32 clap subcommands.--recheck/--known/--pause-on-finding), output normalization, Miri, artifact comparison, Cargo messages, coverage sites and the edit mutations.mirth-rewriteis split into a library sorewrite-diffcan run it in-process.Each script was compared against its Python version before it was deleted:
callgraphon build-blk; only the order of tied rows differs.flag-fuzzwas only smoke-tested.The shell callers build and call
mirth-lab, and the docs name the subcommands.ui-solver-diffwas removed becausesolver-diffcovers it.Python still in the repository: one-off research scripts under
docs/andur/.Commits
🤖 Generated with Claude Code
https://claude.ai/code/session_01QXiEXbESemwqMLYKaWLDbT