Rollup of 12 pull requests#155519
Conversation
similar to how constants in those modules for numeric types have been deprecated
The test array is sorted by name at compile time. When `--exact` is passed in, use binary search for O(f log n) lookups instead of an O(n) linear scan, under the assumption that f << n (which is true for the most relevant cases). This is important for Miri, where the interpreted execution makes the linear scan very expensive. I measured this against a repo with 1000 empty tests, running `cargo +stage1 miri nextest run test_00` (100 tests) under hyperfine: * Before (linear scan): 49.7s ± 0.6s * After (binary search): 41.9s ± 0.2s (-15.7%) I also tried a few other variations (particularly swapping matching tests to the front of the list + truncating the list), but the index + swap_remove approach proved to be the fastest. Questions: - [ ] To be conservative, I've assumed that test_main can potentially receive an unsorted list of tests. Is this assumption correct?
…parser The spdx-rs crate is no longer maintained and is behind on its own dependency updates. The only function that collect-license-metadata uses from it is `spdx_rs::parsers::spdx_from_tag_value`, which parses the output of the `reuse` tool to extract file names, licences and copyright text. Replace this with a small minimal parser that handles just the subset of the SPDX tag-value format that is needed: `Tag: Value` line pairs and multi-line `<text>...</text>` blocks. Coincidentally, this gets rid of the last transitive dependency on syn v1.
In `autolabel."T-compiler"`, several `./tests/*` dirs are listed. But many of them are missing from `assign.owners`. Add them all to `assign.owners` so reviewers are picked from the compiler group, and not from the small `assign.adhoc_groups.fallback` group.
Dead code elimination used to fail when a Drop impl contained a panic and a potentially-panicking external function was called after the value was created. This was fixed since 1.82 but no regression test was added. The test verifies that foo() compiles to just a call to unknown() and ret void, with no panic or panicking call in the function body. Signed-off-by: Naveen R. Iyer <iyernaveenr@gmail.com>
Addresses rust-lang#154406 in part. assert_eq will be done in a separate PR.
add msg
…4532-needs-test, r=Mark-Simulacrum Add regression test for dead code elimination with drop + panic Add a codegen test for rust-lang#114532. The bug was that dead code elimination failed when a `Drop` impl contained a `panic!` and a potentially-panicking external function was called after the value was created. This was fixed since 1.82 but no regression test was added. The test verifies that `foo()` compiles to just a call to `unknown()` + `ret void`, with no panic or panicking call in the function body. Closes rust-lang#114532
…Mark-Simulacrum Replace the spdx-rs dependency with a minimal in-tree SPDX tag-value parser The spdx-rs crate [is no longer maintained](https://github.com/doubleopen-project/spdx-rs/pulls) and is behind on its own dependency updates. It is currently used in [the collect-license-metadata tool](https://github.com/rust-lang/rust/tree/main/src/tools/collect-license-metadata), employing a single function therefrom: `spdx_rs::parsers::spdx_from_tag_value`, which parses the output of the `reuse` tool to extract file names, licences and copyright text. This PR replaces the use of said function with a small minimal parser that handles just the subset of the SPDX tag-value format that is needed: `Tag: Value` line pairs and multi-line `<text>...</text>` blocks. Coincidentally, this gets rid of the last transitive dependency on syn v1.
Add test for coalescing of diagnostic attribute duplicates There is an existing [test](github.com/rust-lang/rust/blob/main/tests/ui/diagnostic_namespace/on_unimplemented/report_warning_on_duplicated_options.rs) that warnings for duplicates are emitted, but not for the messages themselves.
triagebot.toml: Sync `assign.owners` with `autolabel."T-compiler"` In `autolabel."T-compiler"`, several `./tests/*` dirs are listed. But many of them are missing from `assign.owners`. Add them all to `assign.owners` so reviewers are picked from the compiler group, and not from the small `assign.adhoc_groups.fallback` group. Discovered in rust-lang#153941 (comment). CC fallback group @Mark-Simulacrum @jieyouxu who can maybe confirm that the old setup was not intentional? (Edit: I hope it was not intentional, because in that case I should have reached out to you personally beforehand.)
…-matches, r=Amanieu Add temporary scope to assert_matches Addresses rust-lang#154406 in part. `assert_eq` will be done in a separate PR.
…ark-Simulacrum deprecate `std::char` constants and functions similar to how constants in those modules for numeric types have been deprecated. The `std::char` module contains: Three stable constants that this PR deprecates. These already link to their associated constant equivalents. - `MAX` - `REPLACEMENT_CHARACTER` - `UNICODE_VERSION` two unstable constants that this PR removes. The constants are already stablized as associated constants on `char`. - `MAX_LEN_UTF8` - `MAX_LEN_UTF16` Four stable functions that this PR deprecates. These already link to their method equivalents. - `fn decode_utf16` - `fn from_digit` - `fn from_u32` - `fn from_u32_unchecked⚠` discussion at [#t-libs > should &rust-lang#96;std::char::{MIN, MAX}&rust-lang#96; be deprecated?](https://rust-lang.zulipchat.com/#narrow/channel/219381-t-libs/topic/should.20.60std.3A.3Achar.3A.3A.7BMIN.2C.20MAX.7D.60.20be.20deprecated.3F/with/579444750). r? libs-api
…ark-Simulacrum libtest: use binary search for --exact test filtering When `--exact` is passed in, use binary search for O(f log n) lookups instead of an O(n) linear scan, under the assumption that f << n (which is true for the most relevant cases). This is important for Miri, where the interpreted execution makes the linear scan very expensive. I measured this against a repo with 1000 empty tests, running `cargo +stage1 miri nextest run test_00` (100 tests) under hyperfine: * Before (linear scan): 49.7s ± 0.6s * After (binary search): 41.9s ± 0.2s (-15.7%) I also tried a few other variations (particularly swapping matching tests to the front of the list + truncating the list), but the index + swap_remove approach proved to be the fastest. Questions: - [ ] To be conservative, I've assumed that test_main can potentially receive an unsorted list of tests. Is this assumption correct?
…jhpratt add #[must_use] macros for floats try resolve rust-lang#154854
…=RalfJung c-variadic: add roundtrip test tracking issue: rust-lang#44930 Test that our `va_arg` implementation matches (as in, can decode) how LLVM passes c-variadic arguments. And some comment followup to rust-lang#152980 (cc @RalfJung, feel free to review this PR too btw). r? tgross35
…d, r=JonathanBrouwer Remove `AttributeLintKind` variants - part 2 Follow-up of rust-lang#154432. Part of rust-lang#153099. r? @JonathanBrouwer
Update Tidy python executable path Resolves rust-lang#155480 r? @Kobzol
…nBrouwer codegen-options docs: remove -Csoft-float This got removed in rust-lang#154106 but I didn't realize there are still docs mentioning it.
This comment has been minimized.
This comment has been minimized.
Rollup of 12 pull requests try-job: dist-various-1 try-job: test-various try-job: x86_64-gnu-aux try-job: x86_64-gnu-llvm-21-3 try-job: x86_64-msvc-1 try-job: aarch64-apple try-job: x86_64-mingw-1 try-job: i686-msvc-2
This comment has been minimized.
This comment has been minimized.
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 22cc674 (parent) -> 38799a3 (this PR) Test differencesShow 855 test diffsStage 1
Stage 2
Additionally, 842 doctest diffs were found. These are ignored, as they are noisy. Job group index
Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard 38799a320def5b1d32acc797d2eaf6bb6bf98445 --output-dir test-dashboardAnd then open Job duration changes
How to interpret the job duration changes?Job durations can vary a lot, based on the actual runner instance |
|
📌 Perf builds for each rolled up PR:
previous master: 22cc6747b1 In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
|
Finished benchmarking commit (38799a3): comparison URL. Overall result: ❌ regressions - no action needed@rustbot label: -perf-regression Instruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)Results (primary -1.6%, secondary 4.1%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary -3.1%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis perf run didn't have relevant results for this metric. Bootstrap: 492.081s -> 490.954s (-0.23%) |
Successful merges:
assign.ownerswithautolabel."T-compiler"#155352 (triagebot.toml: Syncassign.ownerswithautolabel."T-compiler")std::charconstants and functions #153873 (deprecatestd::charconstants and functions)AttributeLintKindvariants - part 2 #155504 (RemoveAttributeLintKindvariants - part 2)r? @ghost
Create a similar rollup