Rollup of 6 pull requests#152934
Conversation
Previously, `self.props.compile_flags.windows(2)` would return an empty iterator in the case where `self.props.compile_flags` was 1 or 0 length. This created incorrectness where tests like `tests/mir-opt/pre-codegen/copy_and_clone.rs` would pass when they should fail.
Same as 147495, just keeping it up-to-date.
…lignment from a vtable
…r=mati865 Tighten the `!range` bounds on alignments in vtables Right now we're only telling LLVM that they're non-zero, but alignments must be powers of two so can't be more than `isize::MAX+1`. And we actually never emit anything beyond LLVM's limit of 2²⁹, so outside of 16-bit targets the limit is that. (Pulled out from rust-lang#152867 which is starting to have too much in it.)
… r=jhpratt Stabilize `str_as_str` - Tracking issue: rust-lang#130366 - Needs FCP - `ByteStr` methods remain gated behind `bstr` feature gate (rust-lang#134915) Closes rust-lang#130366
Remove two more flaky assertions from `oneshot` tests These elapsed-time-upper-bound assertions are inherently flaky in CI, because CI runners will sometimes starve individual threads for a surprisingly long time, so the assertions can fail even if nothing went wrong. Similar changes for other flaky `oneshot` tests: - rust-lang#152145 - rust-lang#152648 Example flaky failure: - rust-lang#152747 (comment)
…al-sv-init, r=mati865
Error on attempt to construct scalable vector type
If you attempt to construct a scalable vector type rust will ICE.
E.g.:
```rust
#[rustc_scalable_vector(4)]
#[allow(non_camel_case_types)]
struct svint32_t(i32);
fn main() {
let foo = svint32_t(1);
// This will ICE
}
```
This PR adds a check that will emit an error if you attempt to use a SV constructor and a test to ensure it works.
…on-flag-check, r=clubby789,jieyouxu Improve runtest revision redundant cfg check While attempting to ingest rust-lang#148034 via ferrocene/ferrocene#2172 we noticed a test failure, as we add some `compile_flags` to tests. We saw a failure looking like this: ``` Testing stage1 with compiletest suite=mir-opt mode=mir-opt (x86_64-unknown-linux-gnu) running 2 tests 2026-02-20T20:21:28.846102Z ERROR compiletest::runtest: redundant cfg argument `copy` is already created by the revision [mir-opt] tests/mir-opt/pre-codegen/copy_and_clone.rs#COPY ... F . ``` While my Rust checkout passed: ``` Testing stage1 with compiletest suite=mir-opt mode=mir-opt (x86_64-unknown-linux-gnu) running 2 tests .. test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 381 filtered out; finished in 107.10ms ``` This caused me to add some debugging statements. Ferrocene: ``` 2026-02-20T21:05:39.808427Z ERROR compiletest::runtest: "copy": does ["--edition=2015", "--cfg=copy"] contain `"--cfg=copy"` or `["--cfg", "copy"]`? true 2026-02-20T21:05:39.808427Z ERROR compiletest::runtest: "clone": does ["--edition=2015"] contain `"--cfg=clone"` or `["--cfg", "clone"]`? false 2026-02-20T21:05:39.808435Z ERROR compiletest::runtest: redundant cfg argument `copy` is already created by the revision ``` Rust: ``` 2026-02-20T21:04:18.493158Z ERROR compiletest::runtest: "copy": does ["--cfg=copy"] contain `"--cfg=copy"` or `["--cfg", "copy"]`? false 2026-02-20T21:04:18.493158Z ERROR compiletest::runtest: "clone": does [] contain `"--cfg=clone"` or `["--cfg", "clone"]`? false ``` I noticed while reviewing the related functionality that there is a call to `.windows(2)` in the relevant check for redundant cfgs: https://github.com/rust-lang/rust/blob/0376d43d443cba463a0b6a6ec9140ea17d7b7130/src/tools/compiletest/src/runtest.rs#L507-L511 Noting: https://github.com/rust-lang/rust/blob/0376d43d443cba463a0b6a6ec9140ea17d7b7130/library/core/src/slice/mod.rs#L1064-L1066 Because of this, the revision check was getting an empty iterator when `self.props.compile_flags` was length 0 or 1. This fix adjusts the check to handle such cases. I went ahead and fixed the relevant test (4b3cd9b) that was impacted by this. I do not suspect there are others, at least within the scope that Ferrocene tests, as we have not previously seen this failure.
…-ld, r=jieyouxu Update wasm-component-ld Same as rust-lang#147495, just keeping it up-to-date.
|
@bors r+ rollup=never p=5 |
This comment has been minimized.
This comment has been minimized.
Rollup of 6 pull requests Successful merges: - #152929 (Tighten the `!range` bounds on alignments in vtables) - #151603 (Stabilize `str_as_str`) - #152878 (Remove two more flaky assertions from `oneshot` tests) - #152915 (Error on attempt to construct scalable vector type) - #152925 (Improve runtest revision redundant cfg check) - #152928 (Update wasm-component-ld)
|
💥 Test timed out after |
|
@bors retry |
This comment has been minimized.
This comment has been minimized.
|
📌 Perf builds for each rolled up PR:
previous master: 99246f4093 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 99246f4 (parent) -> 5fb2ff8 (this PR) Test differencesShow 88 test diffsStage 1
Stage 2
Additionally, 86 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 5fb2ff8611e5a4af4dc85977cfdecfbf3ffa6ade --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 |
|
Finished benchmarking commit (5fb2ff8): comparison URL. Overall result: ✅ improvements - BENCHMARK(S) FAILED@rustbot label: -perf-regression ❗ ❗ ❗ ❗ ❗
❗ ❗ ❗ ❗ ❗ cc @rust-lang/wg-compiler-performance 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 3.6%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (secondary 4.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: 482.582s -> 480.585s (-0.41%) |
|
Tracking the failure in rust-timer here: #152961 |
|
I was really scared from Jonathan's previous message that somehow the max alignment of |
|
Yeah that was just me doing some bad bisecting :P |
Successful merges:
!rangebounds on alignments in vtables #152929 (Tighten the!rangebounds on alignments in vtables)str_as_str#151603 (Stabilizestr_as_str)oneshottests #152878 (Remove two more flaky assertions fromoneshottests)r? @ghost
Create a similar rollup