Skip to content

Rollup of 8 pull requests #140273

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

Merged
merged 25 commits into from
Apr 25, 2025
Merged

Rollup of 8 pull requests #140273

merged 25 commits into from
Apr 25, 2025

Conversation

matthiaskrgr
Copy link
Member

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

ehuss and others added 25 commits March 27, 2025 19:04
This renames `--runtool` and `--runtool-arg` to `--test-runtool` and
`--test-runtool-arg` to maintain consistency with other `--test-*`
arguments.
This removes the `--enable-per-target-ignores` and enables it
unconditionally.
…ib run-make test

Dynamic libraries on AIX have the ".a" extension. The c-link-to-rust-dylib
run-make test checks for the extension explicitly, so the extension for AIX
is also added to accommodate the test case on AIX.
…r=fmease

Stabilize flags for doctest cross compilation

This makes the following changes in preparation for supporting doctest cross-compiling in cargo:

- Renames `--runtool` and `--runtool-arg` to `--test-runtool` and `--test-runtool-arg` to maintain consistency with other `--test-*` arguments.
- Stabilizes the `--test-runtool` and `--test-runtool-arg`. These are needed in order to support cargo's `target.runner` option which specifies a runner to execute a cross-compiled doctest (for example, qemu).
- Stabilizes the `--enable-per-target-ignores` flag by removing it and making it unconditionally enabled. This makes it possible to disable a doctest on a per-target basis, which I think will be helpful for rolling out this feature.

These changes were suggested in https://rust-lang.zulipchat.com/#narrow/channel/266220-t-rustdoc/topic/stabilizing.20doctest.20xcompile/near/409281127

The intent is to stabilize the doctest-xcompile feature in cargo. This will help ensure that for projects that do cross-compile testing that their doctests are also covered. Currently there is a somewhat surprising behavior that they are ignored.

Closes rust-lang#64245

try-job: x86_64-msvc-1
CI: use aws codebuild for job dist-arm-linux

try-job: dist-arm-linux
…ests_AIX, r=jieyouxu

[AIX] Handle AIX dynamic library extensions within c-link-to-rust-dylib run-make test

Dynamic libraries on AIX have the ".a" extension. The c-link-to-rust-dylib run-make test checks for the extension explicitly, so the extension for AIX is also added to accommodate the test case on AIX.
Improved diagnostics for non-primitive cast on non-primitive types (`Arc`, `Option`)

here is a small fix that improving error messaging when user is trying to do something like this
```rust
let _ = "x" as Arc<str>;
let _ = 2 as Option<i32>;
```

before it looks like this
```rust
error[E0605]: non-primitive cast: `&'static str` as `Arc<str>`
 --> src\main.rs:3:13
  |
3 |     let _ = "x" as Arc<str>;
  |             ^^^^^^^^^^^^^^^ help: consider using the `From` trait instead: `Arc<str>::from("x")`

error[E0605]: non-primitive cast: `i32` as `Option<i32>`
 --> src\main.rs:4:13
  |
4 |     let _ = 2 as Option<i32>;
```
which looks horrible to be honest
so i made a small fix that make errors looks like this
```rust
error[E0605]: non-primitive cast: `&'static str` as `Arc<str>`
  |
3 |     let _ = "x" as Arc<str>;
  |             ^^^^^^^^^^^^^^^
  |
  = note: an `as` expression can only be used to convert between primitive types or to coerce to a specific trait object
help: consider using the `From` trait instead
  |
3 -     let _ = "x" as Arc<str>;
3 +     let _ = Arc::<str>::from("x");
  |

error[E0605]: non-primitive cast: `i32` as `Option<i32>`
  |
4 |     let _ = 2 as Option<i32>;
  |             ^^^^^^^^^^^^^^^^
  |
  = note: an `as` expression can only be used to convert between primitive types or to coerce to a specific trait object
help: consider using the `From` trait instead
  |
4 -     let _ = 2 as Option<i32>;
4 +     let _ = Option::<i32>::from(2);
```

**What improves?**
1) `Arc<str>::from("x")` which makes no sense because of missing `::`
2) readability

**Related Issue**
fixes rust-lang#135412
Work around cygwin issue on condvar timeout

This workaround *just works*... Actually I don't quite understand why does it work in such way. With a simple test on Cygwin, it seems that the maximum value of `tv_sec` could be 12899331056917, while the maximum value of `tv_nsec` should be a value floating around 464600000. A larger `timespec` could block the syscall forever.

r? `@joboet`
… r=petrochenkov

`DelimArgs` tweaks

r? `@petrochenkov`
…s-indent, r=notriddle

Fix impl block items indent

Fixes rust-lang#139771.

Now, all impl block "before impl block items" indent are the same (ie, item info and documentation).

With this fix, it looks like this:

![Screenshot From 2025-04-24 12-32-40](https://github.com./user-attachments/assets/907803a2-2949-4d01-afa5-fc3132d10ff2)

You can test it [here](https://rustdoc.crud.net/imperio/fix-impl-block-items-indent/foo/struct.Context.html).

r? `@notriddle`
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc O-unix Operating system: Unix-like labels Apr 24, 2025
@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure 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. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. rollup A PR which is a rollup labels Apr 24, 2025
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Apr 24, 2025

📌 Commit bc25dc2 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 Apr 24, 2025
@bors
Copy link
Collaborator

bors commented Apr 25, 2025

⌛ Testing commit bc25dc2 with merge 603744a...

bors added a commit to rust-lang-ci/rust that referenced this pull request Apr 25, 2025
…iaskrgr

Rollup of 8 pull requests

Successful merges:

 - rust-lang#137096 (Stabilize flags for doctest cross compilation)
 - rust-lang#140148 (CI: use aws codebuild for job dist-arm-linux)
 - rust-lang#140187 ([AIX] Handle AIX dynamic library extensions within c-link-to-rust-dylib run-make test)
 - rust-lang#140196 (Improved diagnostics for non-primitive cast on non-primitive types (`Arc`, `Option`))
 - rust-lang#140210 (Work around cygwin issue on condvar timeout)
 - rust-lang#140213 (mention about `x.py setup` in `INSTALL.md`)
 - rust-lang#140229 (`DelimArgs` tweaks)
 - rust-lang#140248 (Fix impl block items indent)

r? `@ghost`
`@rustbot` modify labels: rollup
@rust-log-analyzer
Copy link
Collaborator

The job i686-msvc-1 failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
failures:

---- [assembly] tests\assembly\targets\targets-elf.rs#mipsisa64r6_unknown_linux_gnuabi64 stdout ----

error in revision `mipsisa64r6_unknown_linux_gnuabi64`: auxiliary build of D:\a\rust\rust\tests\auxiliary\minicore.rs failed to compile: 
status: exit code: 1
command: PATH="D:\a\rust\rust\build\i686-pc-windows-msvc\stage2\bin;C:\Program Files (x86)\Windows Kits\10\bin\x64;C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x64;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.43.34808\bin\HostX64\x64;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.43.34808\bin\HostX64\x86;D:\a\rust\rust\build\i686-pc-windows-msvc\stage0-bootstrap-tools\i686-pc-windows-msvc\release\deps;D:\a\rust\rust\build\i686-pc-windows-msvc\stage0\bin;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Users\runneradmin\bin;D:\a\rust\rust\ninja;D:\a\rust\rust\sccache;C:\Program Files\MongoDB\Server\5.0\bin;C:\aliyun-cli;C:\vcpkg;C:\Program Files (x86)\NSIS;C:\tools\zstd;C:\Program Files\Mercurial;C:\hostedtoolcache\windows\stack\3.5.1\x64;C:\cabal\bin;C:\ghcup\bin;C:\mingw64\bin;C:\Program Files\dotnet;C:\Program Files\MySQL\MySQL Server 8.0\bin;C:\Program Files\R\R-4.4.2\bin\x64;C:\SeleniumWebDrivers\GeckoDriver;C:\SeleniumWebDrivers\EdgeDriver;C:\SeleniumWebDrivers\ChromeDriver;C:\Program Files (x86)\sbt\bin;C:\Program Files (x86)\GitHub CLI;C:\Program Files\Git\usr\bin;C:\Program Files (x86)\pipx_bin;C:\npm\prefix;C:\hostedtoolcache\windows\go\1.21.13\x64\bin;C:\hostedtoolcache\windows\Python\3.9.13\x64\Scripts;C:\hostedtoolcache\windows\Python\3.9.13\x64;C:\hostedtoolcache\windows\Ruby\3.0.7\x64\bin;C:\Program Files\OpenSSL\bin;C:\tools\kotlinc\bin;C:\hostedtoolcache\windows\Java_Temurin-Hotspot_jdk\8.0.452-9\x64\bin;C:\Program Files\ImageMagick-7.1.1-Q16-HDRI;C:\Program Files\Microsoft SDKs\Azure\CLI2\wbin;C:\ProgramData\kind;C:\ProgramData\Chocolatey\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files\dotnet;C:\Program Files\PowerShell\7;C:\Program Files\Microsoft\Web Platform Installer;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn;C:\Program Files\Microsoft SQL Server\150\Tools\Binn;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit;C:\Program Files (x86)\WiX Toolset v3.14\bin;C:\Program Files\Microsoft SQL Server\130\DTS\Binn;C:\Program Files\Microsoft SQL Server\140\DTS\Binn;C:\Program Files\Microsoft SQL Server\150\DTS\Binn;C:\Program Files\Microsoft SQL Server\160\DTS\Binn;C:\Strawberry\c\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\perl\bin;C:\ProgramData\chocolatey\lib\pulumi\tools\Pulumi\bin;C:\Program Files\CMake\bin;C:\ProgramData\chocolatey\lib\maven\apache-maven-3.9.9\bin;C:\Program Files\Microsoft Service Fabric\bin\Fabric\Fabric.Code;C:\Program Files\Microsoft SDKs\Service Fabric\Tools\ServiceFabricLocalClusterManager;C:\Program Files\nodejs;C:\Program Files\Git\cmd;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Program Files\GitHub CLI;C:\tools\php;C:\Program Files (x86)\sbt\bin;C:\Program Files\Amazon\AWSCLIV2;C:\Program Files\Amazon\SessionManagerPlugin\bin;C:\Program Files\Amazon\AWSSAMCLI\bin;C:\Program Files\Microsoft SQL Server\130\Tools\Binn;C:\Program Files\LLVM\bin;C:\Users\runneradmin\.dotnet\tools;C:\Users\runneradmin\.cargo\bin;C:\Users\runneradmin\AppData\Local\Microsoft\WindowsApps;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.43.34808\bin\HostX64\x86" "D:\\a\\rust\\rust\\build\\i686-pc-windows-msvc\\stage2\\bin\\rustc.exe" "D:\\a\\rust\\rust\\tests\\auxiliary\\minicore.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=C:\\Users\\runneradmin\\.cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=D:\\a\\rust\\rust\\vendor" "--sysroot" "D:\\a\\rust\\rust\\build\\i686-pc-windows-msvc\\stage2" "--cfg" "mipsisa64r6_unknown_linux_gnuabi64" "--check-cfg" "cfg(test,FALSE,aarch64_be_unknown_linux_gnu,aarch64_be_unknown_linux_gnu_ilp32,aarch64_be_unknown_netbsd,aarch64_kmc_solid_asp3,aarch64_linux_android,aarch64_nintendo_switch_freestanding,aarch64_unknown_freebsd,aarch64_unknown_fuchsia,aarch64_unknown_hermit,aarch64_unknown_illumos,aarch64_unknown_linux_gnu,aarch64_unknown_linux_gnu_ilp32,aarch64_unknown_linux_musl,aarch64_unknown_linux_ohos,aarch64_unknown_netbsd,aarch64_unknown_none,aarch64_unknown_none_softfloat,aarch64_unknown_nto_qnx700,aarch64_unknown_nto_qnx710,aarch64_unknown_nto_qnx710_iosock,aarch64_unknown_nto_qnx800,aarch64_unknown_openbsd,aarch64_unknown_redox,aarch64_unknown_teeos,aarch64_unknown_nuttx,aarch64_unknown_trusty,aarch64_wrs_vxworks,arm_linux_androideabi,arm_unknown_linux_gnueabi,arm_unknown_linux_gnueabihf,arm_unknown_linux_musleabi,arm_unknown_linux_musleabihf,armeb_unknown_linux_gnueabi,armebv7r_none_eabi,armebv7r_none_eabihf,armv4t_none_eabi,armv4t_unknown_linux_gnueabi,armv5te_none_eabi,armv5te_unknown_linux_gnueabi,armv5te_unknown_linux_musleabi,armv5te_unknown_linux_uclibceabi,armv6_unknown_freebsd,armv6_unknown_netbsd_eabihf,armv6k_nintendo_3ds,armv7_linux_androideabi,armv7_rtems_eabihf,armv7_sony_vita_newlibeabihf,armv7_unknown_freebsd,armv7_unknown_linux_gnueabi,armv7_unknown_linux_gnueabihf,armv7_unknown_linux_musleabi,armv7_unknown_linux_musleabihf,armv7_unknown_linux_ohos,armv7_unknown_linux_uclibceabi,armv7_unknown_linux_uclibceabihf,armv7_unknown_netbsd_eabihf,armv7_unknown_trusty,armv7_wrs_vxworks_eabihf,armv7a_kmc_solid_asp3_eabi,armv7a_kmc_solid_asp3_eabihf,armv7a_none_eabi,armv7a_none_eabihf,armv7a_nuttx_eabi,armv7a_nuttx_eabihf,armv7r_none_eabi,armv7r_none_eabihf,armv8r_none_eabihf,hexagon_unknown_linux_musl,hexagon_unknown_none_elf,i686_pc_nto_qnx700,i586_unknown_linux_gnu,i586_unknown_linux_musl,i586_unknown_netbsd,i586_unknown_redox,i686_linux_android,i686_unknown_freebsd,i686_unknown_haiku,i686_unknown_hurd_gnu,i686_unknown_linux_gnu,i686_unknown_linux_musl,i686_unknown_netbsd,i686_unknown_openbsd,i686_wrs_vxworks,loongarch64_unknown_linux_gnu,loongarch64_unknown_linux_musl,loongarch64_unknown_linux_ohos,loongarch64_unknown_none,loongarch64_unknown_none_softfloat,m68k_unknown_linux_gnu,m68k_unknown_none_elf,mips64_openwrt_linux_musl,mips64_unknown_linux_gnuabi64,mips64_unknown_linux_muslabi64,mips64el_unknown_linux_gnuabi64,mips64el_unknown_linux_muslabi64,mips_unknown_linux_gnu,mips_unknown_linux_musl,mips_unknown_linux_uclibc,mips_mti_none_elf,mipsel_mti_none_elf,mipsel_sony_psp,mipsel_sony_psx,mipsel_unknown_linux_gnu,mipsel_unknown_linux_musl,mipsel_unknown_linux_uclibc,mipsel_unknown_netbsd,mipsel_unknown_none,mipsisa32r6_unknown_linux_gnu,mipsisa32r6el_unknown_linux_gnu,mipsisa64r6_unknown_linux_gnuabi64,mipsisa64r6el_unknown_linux_gnuabi64,msp430_none_elf,powerpc64_unknown_freebsd,powerpc64_unknown_linux_gnu,powerpc64_unknown_linux_musl,powerpc64_unknown_openbsd,powerpc64_wrs_vxworks,powerpc64le_unknown_freebsd,powerpc64le_unknown_linux_gnu,powerpc64le_unknown_linux_musl,powerpc_unknown_freebsd,powerpc_unknown_linux_gnu,powerpc_unknown_linux_gnuspe,powerpc_unknown_linux_musl,powerpc_unknown_linux_muslspe,powerpc_unknown_netbsd,powerpc_unknown_openbsd,powerpc_wrs_vxworks,powerpc_wrs_vxworks_spe,riscv32_wrs_vxworks,riscv32e_unknown_none_elf,riscv32em_unknown_none_elf,riscv32emc_unknown_none_elf,riscv32gc_unknown_linux_gnu,riscv32gc_unknown_linux_musl,riscv32i_unknown_none_elf,riscv32im_risc0_zkvm_elf,riscv32im_unknown_none_elf,riscv32ima_unknown_none_elf,riscv32imac_esp_espidf,riscv32imac_unknown_none_elf,riscv32imac_unknown_xous_elf,riscv32imafc_unknown_none_elf,riscv32imafc_esp_espidf,riscv32imc_esp_espidf,riscv32imc_unknown_none_elf,riscv64_linux_android,riscv64_wrs_vxworks,riscv64gc_unknown_freebsd,riscv64gc_unknown_fuchsia,riscv64gc_unknown_hermit,riscv64gc_unknown_linux_gnu,riscv64gc_unknown_linux_musl,riscv64gc_unknown_netbsd,riscv64gc_unknown_none_elf,riscv64gc_unknown_openbsd,riscv64imac_unknown_none_elf,s390x_unknown_linux_gnu,s390x_unknown_linux_musl,sparc64_unknown_linux_gnu,sparc64_unknown_netbsd,sparc64_unknown_openbsd,sparc_unknown_linux_gnu,sparc_unknown_none_elf,sparcv9_sun_solaris,thumbv4t_none_eabi,thumbv5te_none_eabi,thumbv6m_none_eabi,thumbv7em_none_eabi,thumbv7em_none_eabihf,thumbv7m_none_eabi,thumbv7neon_linux_androideabi,thumbv7neon_unknown_linux_gnueabihf,thumbv7neon_unknown_linux_musleabihf,thumbv8m_base_none_eabi,thumbv8m_main_none_eabi,thumbv8m_main_none_eabihf,wasm32_unknown_emscripten,wasm32_unknown_unknown,wasm32v1_none,wasm32_wasip1,wasm32_wasip1_threads,wasm32_wasip2,wasm32_wali_linux_musl,wasm64_unknown_unknown,x86_64_fortanix_unknown_sgx,x86_64_linux_android,x86_64_lynx_lynxos178,x86_64_pc_nto_qnx710,x86_64_pc_nto_qnx710_iosock,x86_64_pc_nto_qnx800,x86_64_pc_solaris,x86_64_unikraft_linux_musl,x86_64_unknown_dragonfly,x86_64_unknown_freebsd,x86_64_unknown_fuchsia,x86_64_unknown_haiku,x86_64_unknown_hurd_gnu,x86_64_unknown_hermit,x86_64_unknown_illumos,x86_64_unknown_l4re_uclibc,x86_64_unknown_linux_gnu,x86_64_unknown_linux_gnux32,x86_64_unknown_linux_musl,x86_64_unknown_linux_ohos,x86_64_unknown_linux_none,x86_64_unknown_netbsd,x86_64_unknown_none,x86_64_unknown_openbsd,x86_64_unknown_redox,x86_64_unknown_trusty,x86_64_wrs_vxworks,thumbv6m_nuttx_eabi,thumbv7a_nuttx_eabi,thumbv7a_nuttx_eabihf,thumbv7m_nuttx_eabi,thumbv7em_nuttx_eabi,thumbv7em_nuttx_eabihf,thumbv8m_base_nuttx_eabi,thumbv8m_main_nuttx_eabi,thumbv8m_main_nuttx_eabihf,riscv32imc_unknown_nuttx_elf,riscv32imac_unknown_nuttx_elf,riscv32imafc_unknown_nuttx_elf,riscv64imac_unknown_nuttx_elf,riscv64gc_unknown_nuttx_elf)" "-O" "-Cdebug-assertions=no" "-C" "prefer-dynamic" "-o" "D:\\a\\rust\\rust\\build\\i686-pc-windows-msvc\\test\\assembly\\targets\\targets-elf.mipsisa64r6_unknown_linux_gnuabi64\\libminicore.rlib" "-A" "unused" "-A" "internal_features" "-Crpath" "-Cdebuginfo=0" "--target" "mipsisa64r6-unknown-linux-gnuabi64" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--crate-type" "rlib" "-Cpanic=abort"
stdout: none
--- stderr -------------------------------
error: couldn't create a temp dir: Access is denied. (os error 5) at path "C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\rustci2WbwQ"

error: aborting due to 1 previous error
------------------------------------------


---
test result: FAILED. 468 passed; 1 failed; 70 ignored; 0 measured; 0 filtered out; finished in 26.54s

Some tests failed in compiletest suite=assembly mode=assembly host=i686-pc-windows-msvc target=i686-pc-windows-msvc
Build completed unsuccessfully in 1:42:11
make: *** [Makefile:113: ci-msvc-py] Error 1
  local time: Fri Apr 25 05:58:11 CUT 2025
  network time: Fri, 25 Apr 2025 05:58:11 GMT
##[error]Process completed with exit code 2.
Post job cleanup.
[command]"C:\Program Files\Git\bin\git.exe" version

@bors
Copy link
Collaborator

bors commented Apr 25, 2025

💔 Test failed - checks-actions

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Apr 25, 2025
@Zalathar Zalathar added the CI-spurious-fail-msvc CI spurious failure: target env msvc label Apr 25, 2025
@matthiaskrgr
Copy link
Member Author

@bors retry

@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 Apr 25, 2025
@bors
Copy link
Collaborator

bors commented Apr 25, 2025

⌛ Testing commit bc25dc2 with merge 5c54aa7...

@bors
Copy link
Collaborator

bors commented Apr 25, 2025

☀️ Test successful - checks-actions
Approved by: matthiaskrgr
Pushing 5c54aa7 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Apr 25, 2025
@bors bors merged commit 5c54aa7 into rust-lang:master Apr 25, 2025
7 checks passed
@rustbot rustbot added this to the 1.88.0 milestone Apr 25, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#137096 Stabilize flags for doctest cross compilation a128a3c9a91a82aa084d79771d57e0c06e74c23a (link)
#140148 CI: use aws codebuild for job dist-arm-linux 3e20f341cc45331fbf30eb81f1cd5482ec6b6237 (link)
#140187 [AIX] Handle AIX dynamic library extensions within c-link-t… a1059875e589878bf493681de3c5f15e226b75e1 (link)
#140196 Improved diagnostics for non-primitive cast on non-primitiv… 7a9c05dd538a6cb0083ede04b07cf2b8fe77713b (link)
#140210 Work around cygwin issue on condvar timeout 6056b79df97f75c43767d883b5365110a87ecdb1 (link)
#140213 mention about x.py setup in INSTALL.md bd6d30f30d5459966beb51de070da725de96f7ba (link)
#140229 DelimArgs tweaks 0df1e32a026786199b5fb333aa1b527114765134 (link)
#140248 Fix impl block items indent baa299ebd13c4e35c05169fd0afc593b83a5eaf5 (link)

previous master: 862156d6f2

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

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 862156d (parent) -> 5c54aa7 (this PR)

Test differences

Show 33065 test diffs

Stage 1

  • sort::tests::stable::correct_u128_ascending: [missing] -> ignore (J0)
  • sort::tests::unstable::correct_cell_i32_random_d20: [missing] -> ignore (J0)
  • sort::tests::unstable::correct_f128_random_s95: [missing] -> ignore (J0)
  • sort::tests::unstable::correct_string_ascending: [missing] -> ignore (J0)
  • sort::tests::unstable::deterministic_string_saw_mixed: [missing] -> ignore (J0)
  • sort::tests::unstable::violate_ord_retain_orig_set_i32_ascending: [missing] -> ignore (J0)
  • ascii::test_is_ascii_graphic: [missing] -> pass (J1)
  • btree_set_hash::test_hash: [missing] -> pass (J1)
  • char::test_is_numeric: [missing] -> pass (J1)
  • cmp::test_mut_int_totalord: [missing] -> pass (J1)
  • f32::test_minimum: [missing] -> pass (J1)
  • io::tests::take_eof: [missing] -> pass (J1)
  • iter::test_multi_iter: [missing] -> pass (J1)
  • mpsc::oneshot_single_thread_peek_close: [missing] -> pass (J1)
  • num::bignum::test_is_zero: [missing] -> pass (J1)
  • num::i16::test_rem_euclid: [missing] -> pass (J1)
  • num::test_try_i64i16: [missing] -> pass (J1)
  • num::u8::test_isqrt: [missing] -> pass (J1)
  • rc::shared_from_iter_normal: [missing] -> pass (J1)
  • str::utf8_char_counts: [missing] -> pass (J1)
  • sys_common::wtf8::tests::wtf8buf_as_slice: [missing] -> pass (J1)
  • thread::tests::test_park_timeout_unpark_called_other_thread: [missing] -> pass (J1)
  • vec::test_extend_from_slice: [missing] -> pass (J1)
  • vec::test_vec_dedup_empty: [missing] -> pass (J1)
  • clean::types::tests::is_same_generic: [missing] -> pass (J2)
  • error::verify_middle_erroneous_constant_15: [missing] -> pass (J2)
  • error_reporting::traits::on_unimplemented_format::errors::verify_trait_selection_missing_options_for_on_unimplemented_attr_7: [missing] -> pass (J2)
  • errors::verify_builtin_macros_asm_duplicate_arg_75: [missing] -> pass (J2)
  • errors::verify_codegen_ssa_invalid_monomorphization_return_integer_type_105: [missing] -> pass (J2)
  • errors::verify_const_eval_thread_local_access_4: [missing] -> pass (J2)
  • errors::verify_resolve_ident_bound_more_than_once_in_same_pattern_3: [missing] -> pass (J2)
  • errors::verify_resolve_lending_iterator_report_error_46: [missing] -> pass (J2)
  • html::render::write_shared::tests::hack_external_crate_names: [missing] -> pass (J2)
  • json::tests::span_before_crlf: [missing] -> pass (J2)
  • session_diagnostics::verify_attr_parsing_expected_single_version_literal_21: [missing] -> pass (J2)
  • spec::tests::aarch64_pc_windows_msvc: [missing] -> pass (J2)
  • spec::tests::aarch64_unknown_linux_gnu_ilp32: [missing] -> pass (J2)
  • spec::tests::loongarch64_unknown_linux_gnu: [missing] -> pass (J2)
  • spec::tests::riscv32imac_unknown_nuttx_elf: [missing] -> pass (J2)
  • spec::tests::x86_64_unknown_none: [missing] -> pass (J2)
  • tests::bench_typed_arena_clear: [missing] -> pass (J2)
  • tests::test_union_info_roundtrip: [missing] -> pass (J2)
  • ascii::is_ascii::unaligned_both_long::case00_libcore: [missing] -> pass (J3)
  • ascii::is_ascii::unaligned_both_medium::case00_libcore: [missing] -> pass (J3)
  • ascii::medium::is_ascii: [missing] -> pass (J3)
  • binary_heap::bench_into_sorted_vec: [missing] -> pass (J3)
  • iter::bench_max_by_key2: [missing] -> pass (J3)
  • iter::bench_skip_sum: [missing] -> pass (J3)
  • iter::bench_zip_copy: [missing] -> pass (J3)
  • net::tcp::tests::read_vectored: [missing] -> pass (J3)
  • num::int_log::u64_log_geometric: [missing] -> pass (J3)
  • sort::tests::unstable::panic_retain_orig_set_i32_random_d2: [missing] -> pass (J3)
  • sort::tests::unstable::panic_retain_orig_set_string_random_s95: [missing] -> pass (J3)
  • stats::tests::test_pois25lambda30: [missing] -> pass (J3)
  • str::char_count::ru_small::case01_filter_count_cont_bytes: [missing] -> pass (J3)
  • vec::bench_retain_100000: [missing] -> pass (J3)

Stage 2

  • sort::tests::stable::deterministic_string_random: ignore -> [missing] (J0)
  • sort::tests::stable::self_cmp_cell_i32_ascending: ignore -> [missing] (J0)
  • ascii_char::test_display: pass -> [missing] (J1)
  • collections::btree::set::tests::test_retain: pass -> [missing] (J1)
  • collections::linked_list::tests::test_cursor_mut_insert: pass -> [missing] (J1)
  • collections::vec_deque::tests::test_remove: pass -> [missing] (J1)
  • f64::test_exp: pass -> [missing] (J1)
  • fmt::builders::debug_tuple::test_nested_non_exhaustive: pass -> [missing] (J1)
  • io::copy::tests::copy_copies: pass -> [missing] (J1)
  • iter::adapters::chain::test_iterator_chain_size_hint: pass -> [missing] (J1)
  • iter::adapters::peekable::test_peekable_non_fused: pass -> [missing] (J1)
  • mpsc::oneshot_single_thread_peek_data: pass -> [missing] (J1)
  • mpsc::oneshot_single_thread_try_send_open: pass -> [missing] (J1)
  • nonzero::test_match_option_empty_string: pass -> [missing] (J1)
  • num::bignum::test_mul_small: pass -> [missing] (J1)
  • num::dec2flt::massive_exponent: pass -> [missing] (J1)
  • num::i16::test_count_ones: pass -> [missing] (J1)
  • num::test_try_i8u64: pass -> [missing] (J1)
  • num::test_try_u8i8: pass -> [missing] (J1)
  • rwlock::panic_while_mapping_read_unlocked_no_poison: pass -> [missing] (J1)
  • slice::test_chunks_mut_nth: pass -> [missing] (J1)
  • slice::test_rchunks_mut_next_back: pass -> [missing] (J1)
  • slice::test_rsplit_iterator: pass -> [missing] (J1)
  • thread::tests::test_park_unpark_before: pass -> [missing] (J1)
  • vec_deque::test_append_double_drop: pass -> [missing] (J1)
  • errors::verify_codegen_ssa_unexpected_parameter_name_25: pass -> [missing] (J2)
  • errors::verify_mir_build_irrefutable_let_patterns_while_let_14: pass -> [missing] (J2)
  • errors::verify_monomorphize_unknown_cgu_collection_mode_7: pass -> [missing] (J2)
  • errors::verify_parse_async_move_block_in_2015_60: pass -> [missing] (J2)
  • errors::verify_parse_colon_as_semi_59: pass -> [missing] (J2)
  • errors::verify_parse_compound_assignment_expression_in_let_43: pass -> [missing] (J2)
  • errors::verify_resolve_lowercase_self_13: pass -> [missing] (J2)
  • graph::scc::tests::diamond: pass -> [missing] (J2)
  • lints::verify_lint_missing_fragment_specifier_118: pass -> [missing] (J2)
  • opaque::tests::test_bool: pass -> [missing] (J2)
  • parser::tests::multiline_notes: pass -> [missing] (J2)
  • session_diagnostics::verify_attr_parsing_soft_no_args_26: pass -> [missing] (J2)
  • spec::tests::s390x_unknown_linux_musl: pass -> [missing] (J2)
  • ascii::is_ascii::unaligned_tail_long::case03_align_to_unrolled: pass -> [missing] (J3)
  • net::tcp::tests::shutdown_smoke: pass -> [missing] (J3)
  • num::bench_i32_from_str: pass -> [missing] (J3)
  • sort::tests::stable::correct_u128_random_d2: pass -> [missing] (J3)
  • str::trim_ascii_char::long_lorem_ipsum: pass -> [missing] (J3)
  • tests::exclude_should_panic_option: pass -> [missing] (J3)

(and 16446 additional test diffs)

Additionally, 16519 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 5c54aa781f97ae95ef01a3120650907b87d385d3 --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. x86_64-apple-2: 1227.6s -> 5685.9s (363.2%)
  2. test-various: 2232.1s -> 4273.7s (91.5%)
  3. x86_64-gnu-aux: 4182.6s -> 6017.5s (43.9%)
  4. dist-arm-linux: 5474.5s -> 3393.4s (-38.0%)
  5. aarch64-apple: 3180.8s -> 3994.8s (25.6%)
  6. x86_64-apple-1: 5978.7s -> 7418.8s (24.1%)
  7. dist-powerpc-linux: 5882.6s -> 5237.1s (-11.0%)
  8. x86_64-mingw-2: 6915.0s -> 7428.2s (7.4%)
  9. dist-aarch64-apple: 5906.6s -> 5485.9s (-7.1%)
  10. dist-x86_64-msvc-alt: 7299.4s -> 7813.1s (7.0%)
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.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (5c54aa7): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

Results (primary 2.6%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
2.6% [1.5%, 3.8%] 2
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 2.6% [1.5%, 3.8%] 2

Cycles

Results (primary -0.5%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-0.5% [-0.5%, -0.4%] 3
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -0.5% [-0.5%, -0.4%] 3

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 777.547s -> 776.42s (-0.14%)
Artifact size: 365.15 MiB -> 365.20 MiB (0.01%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-attributes Area: Attributes (`#[…]`, `#![…]`) A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc CI-spurious-fail-msvc CI spurious failure: target env msvc merged-by-bors This PR was explicitly merged by bors. O-unix Operating system: Unix-like 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-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure 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. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output.
Projects
None yet
Development

Successfully merging this pull request may close these issues.