Skip to content

Conversation

matthiaskrgr
Copy link
Member

@matthiaskrgr matthiaskrgr commented Aug 27, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

Manishearth and others added 14 commits July 2, 2025 13:15
…ier 2

It is not shipped with host tools, so it was located in the wrong group.
Call out early that the results returned can differ across calls /
aren't deterministic. This was already mentioned at the bottom of
examples, but I think it's worth calling out early, since this caused at
least one person (me!) great confusion.

[ Added a comma to the docs, reflowed commit message - Trevor ]
…illot

Use -Zmir-opt-level=0 in tests for MIR building

The mir-opt test suite currently defaults all tests in it to `-Zmir-opt-level=4`, so if a test is trying to test MIR _building_ not optimizations and it is in that directory, it _must_ override the default mir-opt-level.
…t, r=samueltardieu

Mention that casting to *const () is a way to roundtrip with from_raw_parts

See discussion on rust-lang#81513
…tardieu

Fix wrong cache line size of riscv64

see https://go-review.googlesource.com/c/go/+/526659,  All of riscv CPU using 64B for cache-line size.
Improve std::fs::read_dir docs

Call out early that the results returned can differ across calls / aren't deterministic. This was already mentioned at the bottom of examples, but I think it's worth calling out early, since this caused at least one person (me!) great confusion.
…k-Simulacrum

Move WTF-8 code from std into core and alloc

This is basically a small portion of rust-lang#129411 with a smaller scope. It *does not*\* affect any public APIs; this code is still internal to the standard library. It just moves the WTF-8 code into `core` and `alloc` so it can be accessed by `no_std` crates like `backtrace`.

> \* The only public API this affects is by adding a `Debug` implementation to `std::os::windows::ffi::EncodeWide`, which was not present before. This is due to the fact that `core` requires `Debug` implementations for all types, but `std` does not (yet) require this. Even though this was ultimately changed to be a wrapper over the original type, not a re-export, I decided to keep the `Debug` implementation so it remains useful.

Like we do with ordinary strings, the tests are still located entirely in `alloc`, rather than splitting them into `core` and `alloc`.

----

Reviewer note: for ease of review, this is split into three commits:

1. Moving the original files into their new "locations"
2. Actually modifying the code to compile.
3. Removing aesthetic changes that were made so that the diff for commit 2 was readable.

You can review commits 1 and 3 to verify these claims, but commit 2 contains the majority of the changes you should care about.

----

API changes: `impl Debug for std::os::windows::ffi::EncodeWide`
…, r=jieyouxu

Move `riscv64-gc-unknown-linux-musl` from Tier 2 with Host tools to Tier 2

It is not shipped with host tools, so it was located in the wrong group. The musl target is [here](https://github.com/rust-lang/rust/blob/467c89cd0b1c579edc247808c35941677918d29d/src/ci/docker/host-x86_64/dist-various-2/Dockerfile#L126) - no host tools.

Noticed in rust-lang/docker-rust#247.
@rustbot rustbot added A-tidy Area: The tidy tool O-windows Operating system: Windows S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. rollup A PR which is a rollup labels Aug 27, 2025
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Aug 27, 2025

📌 Commit 5fdc840 has been approved by matthiaskrgr

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 27, 2025
@bors
Copy link
Collaborator

bors commented Aug 27, 2025

⌛ Testing commit 5fdc840 with merge 4f808ba...

@bors
Copy link
Collaborator

bors commented Aug 27, 2025

☀️ Test successful - checks-actions
Approved by: matthiaskrgr
Pushing 4f808ba to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Aug 27, 2025
@bors bors merged commit 4f808ba into rust-lang:master Aug 27, 2025
11 checks passed
@rustbot rustbot added this to the 1.91.0 milestone Aug 27, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#142215 Use -Zmir-opt-level=0 in tests for MIR building 3c04bde41df92af71ba652234b0180e77cfbd48d (link)
#143341 Mention that casting to *const () is a way to roundtrip wit… 16b1793df6583cd847c6127cc25823ffe93fec18 (link)
#145078 Fix wrong cache line size of riscv64 75b0b979e5b1034c4d13d511079f2d5b8baf243f (link)
#145290 Improve std::fs::read_dir docs 6321d7d2fb6ab208d9cf0b249196ca39def6eff2 (link)
#145335 Move WTF-8 code from std into core and alloc 64fd961eb45bc91178ab1bd98267bd73f09d5745 (link)
#145904 Move riscv64-gc-unknown-linux-musl from Tier 2 with Host … 513b587cb576d8f1609f2eda3bc621085b39fdb1 (link)

previous master: 269d5b56bc

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

Copy link
Contributor

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 269d5b5 (parent) -> 4f808ba (this PR)

Test differences

Show 136 test diffs

Stage 1

  • sys_common::wtf8::tests::code_point_from_char: pass -> [missing] (J0)
  • sys_common::wtf8::tests::code_point_from_u32: pass -> [missing] (J0)
  • sys_common::wtf8::tests::code_point_to_char: pass -> [missing] (J0)
  • sys_common::wtf8::tests::code_point_to_char_lossy: pass -> [missing] (J0)
  • sys_common::wtf8::tests::code_point_to_lead_surrogate: pass -> [missing] (J0)
  • sys_common::wtf8::tests::code_point_to_string: pass -> [missing] (J0)
  • sys_common::wtf8::tests::code_point_to_trail_surrogate: pass -> [missing] (J0)
  • sys_common::wtf8::tests::code_point_to_u32: pass -> [missing] (J0)
  • sys_common::wtf8::tests::unwobbly_wtf8_plus_utf8_is_utf8: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wobbled_wtf8_plus_str_isnt_utf8: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8_as_str: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8_ascii_byte_at: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8_code_points: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8_encode_wide: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8_encode_wide_size_hint: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8_from_str: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8_len: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8_make_ascii_lowercase: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8_make_ascii_uppercase: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8_slice_from: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8_slice_from_not_code_point_boundary: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8_slice_not_code_point_boundary: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8_slice_to: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8_slice_to_not_code_point_boundary: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8_to_ascii_lowercase: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8_to_ascii_uppercase: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8_to_owned: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8_to_string_lossy: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8_utf8_boundary_between_surrogates: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8_utf8_boundary_inside_codepoint: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8_utf8_boundary_out_of_bounds: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8_valid_utf8_boundaries: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8buf_as_slice: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8buf_extend: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8buf_from_iterator: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8buf_from_str: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8buf_from_string: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8buf_from_wide: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8buf_into_string_lossy: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8buf_new: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8buf_push: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8buf_push_str: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8buf_push_wtf8: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8buf_show: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8buf_truncate: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8buf_truncate_around_non_bmp: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8buf_truncate_fail_code_point_boundary: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8buf_truncate_fail_longer: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8buf_truncate_splitting_non_bmp1: pass -> [missing] (J0)
  • sys_common::wtf8::tests::wtf8buf_truncate_splitting_non_bmp3: pass -> [missing] (J0)
  • wtf8::tests::code_point_from_char: [missing] -> pass (J1)
  • wtf8::tests::code_point_from_u32: [missing] -> pass (J1)
  • wtf8::tests::code_point_to_char: [missing] -> pass (J1)
  • wtf8::tests::code_point_to_char_lossy: [missing] -> pass (J1)
  • wtf8::tests::code_point_to_string: [missing] -> pass (J1)
  • wtf8::tests::code_point_to_trail_surrogate: [missing] -> pass (J1)
  • wtf8::tests::code_point_to_u32: [missing] -> pass (J1)
  • wtf8::tests::unwobbly_wtf8_plus_utf8_is_utf8: [missing] -> pass (J1)
  • wtf8::tests::wobbled_wtf8_plus_bytes_isnt_utf8: [missing] -> pass (J1)
  • wtf8::tests::wobbled_wtf8_plus_str_isnt_utf8: [missing] -> pass (J1)
  • wtf8::tests::wtf8_ascii_byte_at: [missing] -> pass (J1)
  • wtf8::tests::wtf8_clone_into: [missing] -> pass (J1)
  • wtf8::tests::wtf8_display: [missing] -> pass (J1)
  • wtf8::tests::wtf8_encode_wide: [missing] -> pass (J1)
  • wtf8::tests::wtf8_encode_wide_size_hint: [missing] -> pass (J1)
  • wtf8::tests::wtf8_from_str: [missing] -> pass (J1)
  • wtf8::tests::wtf8_len: [missing] -> pass (J1)
  • wtf8::tests::wtf8_make_ascii_lowercase: [missing] -> pass (J1)
  • wtf8::tests::wtf8_make_ascii_uppercase: [missing] -> pass (J1)
  • wtf8::tests::wtf8_slice: [missing] -> pass (J1)
  • wtf8::tests::wtf8_slice_from: [missing] -> pass (J1)
  • wtf8::tests::wtf8_slice_from_not_code_point_boundary: [missing] -> pass (J1)
  • wtf8::tests::wtf8_slice_not_code_point_boundary: [missing] -> pass (J1)
  • wtf8::tests::wtf8_slice_to: [missing] -> pass (J1)
  • wtf8::tests::wtf8_slice_to_not_code_point_boundary: [missing] -> pass (J1)
  • wtf8::tests::wtf8_to_owned: [missing] -> pass (J1)
  • wtf8::tests::wtf8_to_string_lossy: [missing] -> pass (J1)
  • wtf8::tests::wtf8_utf8_boundary_between_surrogates: [missing] -> pass (J1)
  • wtf8::tests::wtf8_utf8_boundary_inside_codepoint: [missing] -> pass (J1)
  • wtf8::tests::wtf8_utf8_boundary_inside_surrogate: [missing] -> pass (J1)
  • wtf8::tests::wtf8_utf8_boundary_out_of_bounds: [missing] -> pass (J1)
  • wtf8::tests::wtf8buf_as_slice: [missing] -> pass (J1)
  • wtf8::tests::wtf8buf_extend: [missing] -> pass (J1)
  • wtf8::tests::wtf8buf_from_iterator: [missing] -> pass (J1)
  • wtf8::tests::wtf8buf_from_str: [missing] -> pass (J1)
  • wtf8::tests::wtf8buf_from_string: [missing] -> pass (J1)
  • wtf8::tests::wtf8buf_from_wide: [missing] -> pass (J1)
  • wtf8::tests::wtf8buf_into_string: [missing] -> pass (J1)
  • wtf8::tests::wtf8buf_into_string_lossy: [missing] -> pass (J1)
  • wtf8::tests::wtf8buf_new: [missing] -> pass (J1)
  • wtf8::tests::wtf8buf_push: [missing] -> pass (J1)
  • wtf8::tests::wtf8buf_push_char: [missing] -> pass (J1)
  • wtf8::tests::wtf8buf_push_str: [missing] -> pass (J1)
  • wtf8::tests::wtf8buf_push_wtf8: [missing] -> pass (J1)
  • wtf8::tests::wtf8buf_show_str: [missing] -> pass (J1)
  • wtf8::tests::wtf8buf_truncate_around_non_bmp: [missing] -> pass (J1)
  • wtf8::tests::wtf8buf_truncate_fail_code_point_boundary: [missing] -> pass (J1)
  • wtf8::tests::wtf8buf_truncate_fail_longer: [missing] -> pass (J1)
  • wtf8::tests::wtf8buf_truncate_splitting_non_bmp2: [missing] -> pass (J1)
  • wtf8::tests::wtf8buf_truncate_splitting_non_bmp3: [missing] -> pass (J1)

(and 16 additional test diffs)

Additionally, 20 doctest diffs were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard 4f808ba6bf9f1c8dde30d009e73386d984491587 --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

  1. dist-aarch64-apple: 5794.4s -> 7951.7s (37.2%)
  2. aarch64-apple: 5139.6s -> 6291.0s (22.4%)
  3. x86_64-gnu-llvm-19-1: 3765.8s -> 3151.8s (-16.3%)
  4. x86_64-gnu-llvm-19: 2869.2s -> 2458.6s (-14.3%)
  5. x86_64-gnu-tools: 3851.3s -> 3353.1s (-12.9%)
  6. dist-aarch64-msvc: 6354.8s -> 5557.9s (-12.5%)
  7. aarch64-gnu-llvm-19-1: 3780.8s -> 3341.5s (-11.6%)
  8. test-various: 5184.0s -> 4664.6s (-10.0%)
  9. dist-ohos-aarch64: 4118.2s -> 4522.0s (9.8%)
  10. i686-gnu-1: 8427.9s -> 7617.0s (-9.6%)
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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-tidy Area: The tidy tool merged-by-bors This PR was explicitly merged by bors. O-windows Operating system: Windows rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants