-
Notifications
You must be signed in to change notification settings - Fork 13.7k
Rollup of 5 pull requests #146077
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rollup of 5 pull requests #146077
Conversation
...nces The RFC only limits hyphens at the beginning of lines and not if they are indented or embedded in other content. Sticking to that approach was confirmed by the T-lang liason at rust-lang#141367 (comment) There is a regression in error message quality which I'm leaving for someone if they feel this needs improving.
I left the additional asserts on {f16, f128}::MAX.recip() in a new test_max_recip tests.
...gross35 dedup recip, powi, to_degrees, and to_radians float tests Deduplicates recip, powi, to_degrees, and to_radians float tests. I had to fiddle and slightly increase the tolerances for a few comparisons, so maybe not all of the tests are worth deduplicating. Part of rust-lang#141726. Best reviewed commit-by-commit. r? `@tgross35`
coverage: Build an "expansion tree" and use it to unexpand raw spans Historically and currently, coverage instrumentation assumes that all of a function's spans are in the same file and have the same syntax context. The spans extracted directly from MIR don't satisfy that assumption, so there is an "unexpansion" step that walks up each span's expansion-call-site tree to find a suitable span in the same context as the function's body span. (That unexpansion step is what allows us to have somewhat reasonable coverage instrumentation for macros like `println!`, and for syntax like `for` and `?` that undergo desugaring expansion.) The current unexpansion code mostly works fine in that "flat" single-file single-context world. But it's not suitable for incremental work towards proper expansion-aware coverage instrumentation, which would allow a function's coverage spans to encompass multiple expansion contexts and multiple files. This PR therefore replaces the current unexpansion code with a more sophisticated system that uses the raw MIR spans to reconstruct an "expansion tree", and then uses that tree to help perform most of the unexpansion work. Building the tree is "overkill" for current unexpansion needs (though it does give some minor edge-case improvements), but my hope is that having the explicit tree available will be a big help when taking the next steps towards proper expansion-region support.
fix(lexer): Don't require frontmatters to be escaped with indented fences The RFC only limits hyphens at the beginning of lines and not if they are indented or embedded in other content. Sticking to that approach was confirmed by the T-lang liason at rust-lang#141367 (comment) There is a regression in error message quality which I'm leaving for someone if they feel this needs improving. Tracking issue: rust-lang#136889 Fixes rust-lang#141367
...gain, r=Noratrieb fixup nix dev shell again r? Noratrieb
compiletest: Capture panic messages via a custom panic hook Currently, output-capture of panic messages relies on special cooperation between `#![feature(internal_output_capture)]` and the default panic hook. That's a problem if we want to perform our own output capture, because the default panic hook won't know about our custom output-capture mechanism. We can work around that by installing a custom panic hook that prints equivalent panic messages to a buffer instead. The custom hook is always installed, but delegates to the default panic hook unless a panic-capture buffer has been installed on the current thread. A panic-capture buffer is only installed on compiletest test threads (by the executor), and only if output-capture is enabled. --- Right now this PR doesn't provide any particular concrete benefits. But it will be essential as part of further efforts to replace compiletest's use of `#![feature(internal_output_capture)]` with our own output-capture mechanism. r? jieyouxu
☀️ Test successful - checks-actions
Approved by: Zalathar
Pushing 84a1747 to master...
📌 Perf builds for each rolled up PR:
previous master: be4e9b77ab In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
What is this?
This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.Comparing be4e9b7 (parent) -> 84a1747 (this PR)
Test differences
Show 101 test diffs
Stage 1
floats::f128::test_to_degrees
: pass -> [missing] (J1)floats::f128::test_to_radians
: pass -> [missing] (J1)floats::f16::test_max_recip
: [missing] -> pass (J1)floats::f16::test_powi
: pass -> [missing] (J1)floats::f16::test_recip
: pass -> [missing] (J1)floats::f16::test_to_degrees
: pass -> [missing] (J1)floats::f16::test_to_radians
: pass -> [missing] (J1)floats::f32::test_powi
: pass -> [missing] (J1)floats::f32::test_recip
: pass -> [missing] (J1)floats::f32::test_to_degrees
: pass -> [missing] (J1)floats::f32::test_to_radians
: pass -> [missing] (J1)floats::f64::test_powi
: pass -> [missing] (J1)floats::f64::test_recip
: pass -> [missing] (J1)floats::f64::test_to_degrees
: pass -> [missing] (J1)floats::f64::test_to_radians
: pass -> [missing] (J1)floats::powi::test_f16
: [missing] -> pass (J1)floats::powi::test_f32
: [missing] -> pass (J1)floats::powi::test_f64
: [missing] -> pass (J1)floats::recip::const_::test_f128
: [missing] -> pass (J1)floats::recip::const_::test_f16
: [missing] -> pass (J1)floats::recip::const_::test_f32
: [missing] -> pass (J1)floats::recip::const_::test_f64
: [missing] -> pass (J1)floats::recip::test_f16
: [missing] -> pass (J1)floats::recip::test_f32
: [missing] -> pass (J1)floats::recip::test_f64
: [missing] -> pass (J1)floats::to_degrees::const_::test_f128
: [missing] -> pass (J1)floats::to_degrees::const_::test_f16
: [missing] -> pass (J1)floats::to_degrees::const_::test_f32
: [missing] -> pass (J1)floats::to_degrees::const_::test_f64
: [missing] -> pass (J1)floats::to_degrees::test_f128
: [missing] -> pass (J1)floats::to_degrees::test_f16
: [missing] -> pass (J1)floats::to_degrees::test_f32
: [missing] -> pass (J1)floats::to_degrees::test_f64
: [missing] -> pass (J1)floats::to_radians::const_::test_f128
: [missing] -> pass (J1)floats::to_radians::const_::test_f16
: [missing] -> pass (J1)floats::to_radians::const_::test_f32
: [missing] -> pass (J1)floats::to_radians::const_::test_f64
: [missing] -> pass (J1)floats::to_radians::test_f128
: [missing] -> pass (J1)floats::to_radians::test_f16
: [missing] -> pass (J1)floats::to_radians::test_f32
: [missing] -> pass (J1)floats::to_radians::test_f64
: [missing] -> pass (J1)[coverage-map] tests/coverage/rustfmt-skip.rs
: [missing] -> pass (J8)[coverage-run] tests/coverage/rustfmt-skip.rs
: [missing] -> ignore (ignored when the profiler runtime is not available) (J8)
Stage 2
floats::f128::test_to_degrees
: pass -> [missing] (J0)floats::f128::test_to_radians
: pass -> [missing] (J0)floats::f16::test_max_recip
: [missing] -> pass (J0)floats::f16::test_recip
: pass -> [missing] (J0)floats::f16::test_to_degrees
: pass -> [missing] (J0)floats::f16::test_to_radians
: pass -> [missing] (J0)floats::recip::test_f16
: [missing] -> pass (J0)floats::to_degrees::test_f128
: [missing] -> pass (J0)floats::to_degrees::test_f16
: [missing] -> pass (J0)floats::to_radians::test_f128
: [missing] -> pass (J0)floats::to_radians::test_f16
: [missing] -> pass (J0)floats::f128::test_powi
: pass -> [missing] (J2)floats::powi::test_f128
: [missing] -> pass (J2)floats::f32::test_powi
: pass -> [missing] (J3)floats::f32::test_recip
: pass -> [missing] (J3)floats::f32::test_to_degrees
: pass -> [missing] (J3)floats::f32::test_to_radians
: pass -> [missing] (J3)floats::f64::test_powi
: pass -> [missing] (J3)floats::f64::test_recip
: pass -> [missing] (J3)floats::f64::test_to_degrees
: pass -> [missing] (J3)floats::f64::test_to_radians
: pass -> [missing] (J3)floats::powi::test_f32
: [missing] -> pass (J3)floats::powi::test_f64
: [missing] -> pass (J3)floats::recip::const_::test_f128
: [missing] -> pass (J3)floats::recip::const_::test_f16
: [missing] -> pass (J3)floats::recip::const_::test_f32
: [missing] -> pass (J3)floats::recip::const_::test_f64
: [missing] -> pass (J3)floats::recip::test_f32
: [missing] -> pass (J3)floats::recip::test_f64
: [missing] -> pass (J3)floats::to_degrees::const_::test_f128
: [missing] -> pass (J3)floats::to_degrees::const_::test_f16
: [missing] -> pass (J3)floats::to_degrees::const_::test_f32
: [missing] -> pass (J3)floats::to_degrees::const_::test_f64
: [missing] -> pass (J3)floats::to_degrees::test_f32
: [missing] -> pass (J3)floats::to_degrees::test_f64
: [missing] -> pass (J3)floats::to_radians::const_::test_f128
: [missing] -> pass (J3)floats::to_radians::const_::test_f16
: [missing] -> pass (J3)floats::to_radians::const_::test_f32
: [missing] -> pass (J3)floats::to_radians::const_::test_f64
: [missing] -> pass (J3)floats::to_radians::test_f32
: [missing] -> pass (J3)floats::to_radians::test_f64
: [missing] -> pass (J3)floats::f128::test_max_recip
: [missing] -> pass (J4)floats::f128::test_recip
: pass -> [missing] (J4)floats::recip::test_f128
: [missing] -> pass (J4)floats::f16::test_powi
: pass -> [missing] (J5)floats::powi::test_f16
: [missing] -> pass (J5)[coverage-run] tests/coverage/rustfmt-skip.rs
: [missing] -> ignore (ignored when cross-compiling) (J6)[coverage-run] tests/coverage/rustfmt-skip.rs
: [missing] -> ignore (ignored when the profiler runtime is not available) (J7)[coverage-map] tests/coverage/rustfmt-skip.rs
: [missing] -> pass (J9)[coverage-run] tests/coverage/rustfmt-skip.rs
: [missing] -> pass (J10)
Additionally, 8 doctest diffs were found. These are ignored, as they are noisy.
Job group index
- J0: aarch64-apple, aarch64-gnu, aarch64-gnu-llvm-19-1, aarch64-msvc-1, arm-android, armhf-gnu, dist-i586-gnu-i586-i686-musl, i686-gnu-1, i686-gnu-nopt-1, i686-msvc-1, test-various, x86_64-gnu, x86_64-gnu-aux, x86_64-gnu-llvm-19-2, x86_64-gnu-llvm-20-2, x86_64-gnu-nopt, x86_64-gnu-stable, x86_64-msvc-1
- J1: pr-check-2, x86_64-gnu-llvm-19-3, x86_64-gnu-llvm-20-3
- J2: aarch64-gnu, aarch64-gnu-llvm-19-1
- J3: aarch64-apple, aarch64-gnu, aarch64-gnu-llvm-19-1, aarch64-msvc-1, arm-android, armhf-gnu, dist-i586-gnu-i586-i686-musl, i686-gnu-1, i686-gnu-nopt-1, i686-msvc-1, test-various, x86_64-gnu, x86_64-gnu-aux, x86_64-gnu-llvm-19-2, x86_64-gnu-llvm-20-2, x86_64-gnu-nopt, x86_64-gnu-stable, x86_64-mingw-1, x86_64-msvc-1
- J4: aarch64-gnu, aarch64-gnu-llvm-19-1, x86_64-gnu-aux
- J5: aarch64-apple, aarch64-gnu, aarch64-gnu-llvm-19-1, aarch64-msvc-1, arm-android, armhf-gnu, dist-i586-gnu-i586-i686-musl, i686-gnu-1, i686-gnu-nopt-1, i686-msvc-1, test-various, x86_64-gnu, x86_64-gnu-llvm-19-2, x86_64-gnu-llvm-20-2, x86_64-gnu-nopt, x86_64-gnu-stable, x86_64-msvc-1
- J6: arm-android, armhf-gnu, dist-i586-gnu-i586-i686-musl, test-various
- J7: aarch64-gnu-llvm-19-1, aarch64-msvc-1, i686-gnu-1, i686-gnu-nopt-1, i686-msvc-1, x86_64-gnu-llvm-19-2, x86_64-gnu-llvm-20-2, x86_64-gnu-nopt, x86_64-mingw-1
- J8: x86_64-gnu-llvm-19-3, x86_64-gnu-llvm-20-3
- J9: aarch64-apple, aarch64-gnu, aarch64-gnu-llvm-19-1, aarch64-msvc-1, arm-android, armhf-gnu, dist-i586-gnu-i586-i686-musl, i686-gnu-1, i686-gnu-nopt-1, i686-msvc-1, test-various, x86_64-gnu, x86_64-gnu-llvm-19-2, x86_64-gnu-llvm-20-2, x86_64-gnu-nopt, x86_64-gnu-stable, x86_64-mingw-1, x86_64-msvc-1
- J10: aarch64-apple, aarch64-gnu, x86_64-gnu, x86_64-gnu-stable, x86_64-msvc-1
Test dashboard
Run
cargo run --manifest-path src/ci/citool/Cargo.toml -- \ test-dashboard 84a17470220e7adf249b18d7c0178dfbede89462 --output-dir test-dashboard
And then open test-dashboard/index.html
in your browser to see an overview of all executed tests.
Job duration changes
- x86_64-gnu-llvm-19: 2794.3s -> 2368.8s (-15.2%)
- aarch64-gnu-llvm-19-2: 2580.1s -> 2237.7s (-13.3%)
- aarch64-apple: 5900.4s -> 6674.9s (13.1%)
- dist-apple-various: 3149.5s -> 3544.0s (12.5%)
- x86_64-gnu-llvm-19-2: 5656.6s -> 6193.5s (9.5%)
- dist-x86_64-apple: 6258.3s -> 6838.0s (9.3%)
- i686-gnu-2: 5730.7s -> 6181.5s (7.9%)
- pr-check-1: 1616.9s -> 1740.6s (7.7%)
- x86_64-mingw-1: 9750.1s -> 10495.3s (7.6%)
- x86_64-gnu-llvm-20-1: 3560.0s -> 3305.5s (-7.1%)
How to interpret the job duration changes?
Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.
Finished benchmarking commit (84a1747): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis benchmark run did not return any relevant results for this metric. Max RSS (memory usage)This benchmark run did not return any relevant results for this metric. CyclesResults (secondary -3.2%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 468.792s -> 468.417s (-0.08%) |
Uh oh!
There was an error while loading. Please reload this page.
Successful merges:
r? @ghost
@rustbot modify labels: rollup
Create a similar rollup