Skip to content
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 7 pull requests #138714

Merged
merged 16 commits into from
Mar 20, 2025
Merged

Rollup of 7 pull requests #138714

merged 16 commits into from
Mar 20, 2025

Conversation

matthiaskrgr
Copy link
Member

Successful merges:

Failed merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

meithecatte and others added 16 commits March 7, 2025 16:16
A check for `#[non_exhaustive]` is often done in combination with
checking whether the type is local to the crate, in a variety of ways.
Create a helper method and standardize on it as the way to check for
this.
Eliminate any redundant, unobservable logic from the their default
method implementations.

The observable changes are that `Write::write_fmt` for both types now
ignores the formatting arguments, so a user fmt impl which has side
effects is not invoked, and `Write::write_all_vectored` for both types
does not advance the borrowed buffers. Neither behavior is guaranteed by
the docs and the latter is documented as unspecified.

`Empty` is not marked as vectored, so that `Chain<Empty, _>` and
`Chain<_, Empty>` are not forced to be vectored.
Introduce feature `const_split_off_first_last`
Mark `split_off_first`, `split_off_first_mut`, `split_off_last`, and
`split_off_last_mut` unstably const
This removes E0773 "A builtin-macro was defined more than once."
…r=tgross35

`MaybeUninit` inherent slice methods part 2

These were moved out of rust-lang#129259 since they require additional libs-api approval. Tracking issue: rust-lang#117428.

New API surface:

```rust
impl<T> [MaybeUninit<T>] {
    // replacing fill; renamed to avoid conflict
    pub fn write_filled(&mut self, value: T) -> &mut [T] where T: Clone;

    // replacing fill_with; renamed to avoid conflict
    pub fn write_with<F>(&mut self, value: F) -> &mut [T] where F: FnMut() -> T;

    // renamed to remove "fill" terminology, since this is closer to the write_*_of_slice methods
    pub fn write_iter<I>(&mut self, iter: I) -> (&mut [T], &mut Self) where I: Iterator<Item = T>;
}
```

Relevant motivation for these methods; see rust-lang#129259 for earlier methods' motiviations.

* I chose `write_filled` since `filled` is being used as an object here, whereas it's being used as an action in `fill`.
* I chose `write_with` instead of `write_filled_with` since it's shorter and still matches well.
* I chose `write_iter` because it feels completely different from the fill methods, and still has the intent clear.

In all of the methods, it felt appropriate to ensure that they contained `write` to clarify that they are effectively just special ways of doing `MaybeUninit::write` for each element of a slice.

Tracking issue: rust-lang#117428

r? libs-api
…y, r=m-ou-se

Implement default methods for `io::Empty` and `io::Sink`

Implements default methods of `io::Read`, `io::BufRead`, and `io::Write` for `io::Empty` and `io::Sink`. These implementations are equivalent to the defaults, except in doing less unnecessary work.

`Read::read_to_string` and `BufRead::read_line` both have a redundant call to `str::from_utf8` which can't be inlined from `core` and `Write::write_all_vectored` has slicing logic which can't be simplified (See on [Compiler Explorer](https://rust.godbolt.org/z/KK6xcrWr4)). The rest are optimized to the minimal with `-C opt-level=3`, but this PR gives that benefit to unoptimized builds.

This includes an implementation of `Write::write_fmt` which just ignores the `fmt::Arguments<'_>`. This could be problematic whenever a user formatting impl is impure, but the docs do not guarantee that the args will be expanded.

Tracked in rust-lang#136756.

r? `@m-ou-se`
… r=Nadrieril

mir_build: consider privacy when checking for irrefutable patterns

This PR fixes rust-lang#137999.

Note that, since this makes the compiler reject code that was previously accepted, it will probably need a crater run.

I include a commit that factors out a common code pattern into a helper function, purely because the fact that this was repeated all over the place was bothering me. Let me know if I should split that into a separate PR instead.
…, r=m-ou-se

core/slice: Mark some `split_off` variants unstably const

Tracking issue: rust-lang#138539

Add feature gate `#![feature(const_split_off_first_last)]`
Mark `split_off_first`, `split_off_first_mut`, `split_off_last`, and `split_off_last_mut` slice methods unstably const
…here-loop-body-help, r=petrochenkov

If a label is placed on the block of a loop instead of the header, suggest moving it to the header.

Fixes rust-lang#138585

If a label is placed on the block of a loop instead of the header, suggest to the user moving it to the loop header instead of ~~suggesting to remove it~~ emitting a tool-only suggestion to remove it.

```rs
fn main() {
    loop 'a: { return; }
}
```

```diff
 error: block label not supported here
  --> src/main.rs:2:10
   |
 2 |     loop 'a: { return; }
   |          ^^^ not supported here
+  |
+help: if you meant to label the loop, move this label before the loop
+  |
+2 -     loop 'a: { return; }
+2 +     'a: loop { return; }
+  |
```

Questions for reviewer:

* The "desired output" in the linked issue had the main diagnostic be "misplaced loop label". Should the main diagnostic message the changed instead of leaving it as "block label not supported here"?
* Should this be `Applicability::MachineApplicable`?
Fix next solver handling of shallow trait impl check

I'm trying to remove unnecessary direct calls to `select`, and this one seemed like a good place to start 😆

r? `@compiler-errors` or `@lcnr`
…ann,petrochenkov

Remove E0773 "A builtin-macro was defined more than once."

Error E0773 "A builtin-macro was defined more than once" is triggered when using the same `#[rustc_builtin_macro(..)]` twice. However, it can only be triggered in unstable code (using a `rustc_` attribute), and there doesn't seem to be any harm in using the same implementation from `compiler/rustc_builtin_macros/…` for multiple macro definitions.

By changing the Box to an Arc in `SyntaxExtensionKind`, we can throw away the `BuiltinMacroState::{NotYetSeen, AlreadySeen}` logic, simplifying things.
@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-libs Relevant to the library team, which will review and decide on the PR/issue. rollup A PR which is a rollup labels Mar 19, 2025
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Contributor

bors commented Mar 19, 2025

📌 Commit 966021d 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 Mar 19, 2025
bors added a commit to rust-lang-ci/rust that referenced this pull request Mar 19, 2025
…iaskrgr

Rollup of 7 pull requests

Successful merges:

 - rust-lang#135394 (`MaybeUninit` inherent slice methods part 2)
 - rust-lang#137051 (Implement default methods for `io::Empty` and `io::Sink`)
 - rust-lang#138001 (mir_build: consider privacy when checking for irrefutable patterns)
 - rust-lang#138540 (core/slice: Mark some `split_off` variants unstably const)
 - rust-lang#138589 (If a label is placed on the block of a loop instead of the header, suggest moving it to the header.)
 - rust-lang#138594 (Fix next solver handling of shallow trait impl check)
 - rust-lang#138613 (Remove E0773 "A builtin-macro was defined more than once.")

Failed merges:

 - rust-lang#138602 (Slim `rustc_parse_format` dependencies down)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors
Copy link
Contributor

bors commented Mar 19, 2025

⌛ Testing commit 966021d with merge 7c20879...

@rust-log-analyzer
Copy link
Collaborator

The job x86_64-mingw-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#hexagon_unknown_none_elf stdout ----

error in revision `hexagon_unknown_none_elf`: 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\x86_64-pc-windows-gnu\stage2\bin;D:\a\rust\rust\build\x86_64-pc-windows-gnu\stage0-bootstrap-tools\x86_64-pc-windows-gnu\release\deps;D:\a\rust\rust\build\x86_64-pc-windows-gnu\stage0\bin;D:\a\rust\rust\ninja;D:\a\rust\rust\mingw64\bin;C:\msys64\usr\bin;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.3.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\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.442-6\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" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnu\\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\\x86_64-pc-windows-gnu\\stage2" "--cfg" "hexagon_unknown_none_elf" "--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_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\\x86_64-pc-windows-gnu\\test\\assembly\\targets\\targets-elf.hexagon_unknown_none_elf\\libminicore.rlib" "-A" "unused" "-A" "internal_features" "-Crpath" "-Cdebuginfo=0" "-Lnative=D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnu\\native\\rust-test-helpers" "--target" "hexagon-unknown-none-elf" "-Cpanic=abort" "--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\\rustcbI4CFR"

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


---
test result: FAILED. 494 passed; 1 failed; 40 ignored; 0 measured; 0 filtered out; finished in 23.67s

Some tests failed in compiletest suite=assembly mode=assembly host=x86_64-pc-windows-gnu target=x86_64-pc-windows-gnu
Build completed unsuccessfully in 1:37:45
make: *** [Makefile:128: ci-mingw-x] Error 1
  local time: Wed Mar 19 20:50:01 CUT 2025
  network time: Wed, 19 Mar 2025 20:50:01 GMT
##[error]Process completed with exit code 2.
Post job cleanup.
[command]"C:\Program Files\Git\bin\git.exe" version

@bors
Copy link
Contributor

bors commented Mar 19, 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 Mar 19, 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 Mar 19, 2025
@matthiaskrgr matthiaskrgr added the CI-spurious-fail-mingw CI spurious failure: target env mingw label Mar 19, 2025
@bors
Copy link
Contributor

bors commented Mar 19, 2025

⌛ Testing commit 966021d with merge 2947be7...

@bors
Copy link
Contributor

bors commented Mar 20, 2025

☀️ Test successful - checks-actions
Approved by: matthiaskrgr
Pushing 2947be7 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Mar 20, 2025
@bors bors merged commit 2947be7 into rust-lang:master Mar 20, 2025
7 checks passed
@rustbot rustbot added this to the 1.87.0 milestone Mar 20, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#135394 MaybeUninit inherent slice methods part 2 9352ddfa043f2de72c6b405c0beeb570b68e0831 (link)
#137051 Implement default methods for io::Empty and io::Sink a65d76b53f65dda20a283fa304b6ffc1913d4ccb (link)
#138001 mir_build: consider privacy when checking for irrefutable p… d1677b8846738f7d745f8db0bd611284cebc4053 (link)
#138540 core/slice: Mark some split_off variants unstably const 11306db10b4cacf57974cb4989d0a660630d51be (link)
#138589 If a label is placed on the block of a loop instead of the … 55c973279d4c0e1592f3214098eb9df1bb7b84d3 (link)
#138594 Fix next solver handling of shallow trait impl check 9221868fa3993b3d576c94a041cacf6c2567bf98 (link)
#138613 Remove E0773 "A builtin-macro was defined more than once." a1bd3855e842671b1c1111b92884bff9da93be89 (link)

previous master: 1aeb99d248

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 1aeb99d (parent) -> 2947be7 (this PR)

Test differences

Show 201 test diffs
  • errors::verify_resolve_attempt_to_define_builtin_macro_twice_51 (stage 1): pass -> [missing] (J0)
  • errors::verify_resolve_attributes_starting_with_rustc_are_reserved_54 (stage 1): [missing] -> pass (J0)
  • errors::verify_resolve_attributes_starting_with_rustc_are_reserved_55 (stage 1): pass -> [missing] (J0)
  • errors::verify_resolve_cannot_find_builtin_macro_with_name_57 (stage 1): [missing] -> pass (J0)
  • errors::verify_resolve_cannot_find_builtin_macro_with_name_58 (stage 1): pass -> [missing] (J0)
  • errors::verify_resolve_cannot_use_through_an_import_55 (stage 1): [missing] -> pass (J0)
  • errors::verify_resolve_cannot_use_through_an_import_56 (stage 1): pass -> [missing] (J0)
  • errors::verify_resolve_generic_arguments_in_macro_path_53 (stage 1): [missing] -> pass (J0)
  • errors::verify_resolve_generic_arguments_in_macro_path_54 (stage 1): pass -> [missing] (J0)
  • errors::verify_resolve_is_private_52 (stage 1): [missing] -> pass (J0)
  • errors::verify_resolve_is_private_53 (stage 1): pass -> [missing] (J0)
  • errors::verify_resolve_name_reserved_in_attribute_namespace_56 (stage 1): [missing] -> pass (J0)
  • errors::verify_resolve_name_reserved_in_attribute_namespace_57 (stage 1): pass -> [missing] (J0)
  • errors::verify_resolve_tool_only_accepts_identifiers_59 (stage 1): [missing] -> pass (J0)
  • errors::verify_resolve_tool_only_accepts_identifiers_60 (stage 1): pass -> [missing] (J0)
  • errors::verify_resolve_tool_was_already_registered_58 (stage 1): [missing] -> pass (J0)
  • errors::verify_resolve_tool_was_already_registered_59 (stage 1): pass -> [missing] (J0)
  • errors::verify_resolve_trait_impl_mismatch_60 (stage 1): [missing] -> pass (J0)
  • errors::verify_resolve_trait_impl_mismatch_61 (stage 1): pass -> [missing] (J0)
  • errors::verify_resolve_variable_is_not_bound_in_all_patterns_51 (stage 1): [missing] -> pass (J0)
  • errors::verify_resolve_variable_is_not_bound_in_all_patterns_52 (stage 1): pass -> [missing] (J0)
  • [ui] tests/ui/loops/label-on-block-suggest-move.rs (stage 2): [missing] -> pass (J1)
  • [ui] tests/ui/macros/duplicate-builtin.rs (stage 2): pass -> [missing] (J1)
  • [ui] tests/ui/match/privately-uninhabited-issue-137999.rs (stage 2): [missing] -> pass (J1)
  • [ui] tests/ui/moves/assignment-of-clone-call-on-ref-due-to-missing-bound.rs (stage 2): pass -> [missing] (J1)
  • [ui] tests/ui/moves/assignment-of-clone-call-on-ref-due-to-missing-bound.rs#current (stage 2): [missing] -> pass (J1)
  • [ui] tests/ui/moves/assignment-of-clone-call-on-ref-due-to-missing-bound.rs#next (stage 2): [missing] -> pass (J1)
  • mem::uninit_empty_fill (stage 0): pass -> [missing] (J2)
  • mem::uninit_fill (stage 0): pass -> [missing] (J2)
  • mem::uninit_fill_clone_no_drop_clones (stage 0): pass -> [missing] (J2)
  • mem::uninit_fill_clone_panic_drop (stage 0): pass -> [missing] (J2)
  • mem::uninit_fill_from (stage 0): pass -> [missing] (J2)
  • mem::uninit_fill_from_mid_panic (stage 0): pass -> [missing] (J2)
  • mem::uninit_fill_from_no_drop (stage 0): pass -> [missing] (J2)
  • mem::uninit_fill_from_partial (stage 0): pass -> [missing] (J2)
  • mem::uninit_fill_with (stage 0): pass -> [missing] (J2)
  • mem::uninit_fill_with_mid_panic (stage 0): pass -> [missing] (J2)
  • mem::uninit_fill_with_no_drop (stage 0): pass -> [missing] (J2)
  • mem::uninit_over_fill (stage 0): pass -> [missing] (J2)
  • mem::uninit_write_filled (stage 0): [missing] -> pass (J2)
  • mem::uninit_write_filled_no_drop_clones (stage 0): [missing] -> pass (J2)
  • mem::uninit_write_filled_panic_drop (stage 0): [missing] -> pass (J2)
  • mem::uninit_write_iter (stage 0): [missing] -> pass (J2)
  • mem::uninit_write_iter_empty (stage 0): [missing] -> pass (J2)
  • mem::uninit_write_iter_mid_panic (stage 0): [missing] -> pass (J2)
  • mem::uninit_write_iter_no_drop (stage 0): [missing] -> pass (J2)
  • mem::uninit_write_iter_overfill (stage 0): [missing] -> pass (J2)
  • mem::uninit_write_iter_partial (stage 0): [missing] -> pass (J2)
  • mem::uninit_write_with (stage 0): [missing] -> pass (J2)
  • mem::uninit_write_with_mid_panic (stage 0): [missing] -> pass (J2)
  • mem::uninit_write_with_no_drop (stage 0): [missing] -> pass (J2)
  • mem::uninit_empty_fill (stage 1): pass -> [missing] (J3)
  • mem::uninit_fill (stage 1): pass -> [missing] (J3)
  • mem::uninit_fill_clone_no_drop_clones (stage 1): pass -> [missing] (J3)
  • mem::uninit_fill_clone_panic_drop (stage 1): pass -> [missing] (J3)
  • mem::uninit_fill_from (stage 1): pass -> [missing] (J3)
  • mem::uninit_fill_from_mid_panic (stage 1): pass -> [missing] (J3)
  • mem::uninit_fill_from_no_drop (stage 1): pass -> [missing] (J3)
  • mem::uninit_fill_from_partial (stage 1): pass -> [missing] (J3)
  • mem::uninit_fill_with (stage 1): pass -> [missing] (J3)
  • mem::uninit_fill_with_mid_panic (stage 1): pass -> [missing] (J3)
  • mem::uninit_fill_with_no_drop (stage 1): pass -> [missing] (J3)
  • mem::uninit_over_fill (stage 1): pass -> [missing] (J3)
  • mem::uninit_write_filled (stage 1): [missing] -> pass (J3)
  • mem::uninit_write_filled_no_drop_clones (stage 1): [missing] -> pass (J3)
  • mem::uninit_write_filled_panic_drop (stage 1): [missing] -> pass (J3)
  • mem::uninit_write_iter (stage 1): [missing] -> pass (J3)
  • mem::uninit_write_iter_empty (stage 1): [missing] -> pass (J3)
  • mem::uninit_write_iter_mid_panic (stage 1): [missing] -> pass (J3)
  • mem::uninit_write_iter_no_drop (stage 1): [missing] -> pass (J3)
  • mem::uninit_write_iter_overfill (stage 1): [missing] -> pass (J3)
  • mem::uninit_write_iter_partial (stage 1): [missing] -> pass (J3)
  • mem::uninit_write_with (stage 1): [missing] -> pass (J3)
  • mem::uninit_write_with_mid_panic (stage 1): [missing] -> pass (J3)
  • mem::uninit_write_with_no_drop (stage 1): [missing] -> pass (J3)
  • [ui] tests/ui/loops/label-on-block-suggest-move.rs (stage 1): [missing] -> pass (J4)
  • [ui] tests/ui/macros/duplicate-builtin.rs (stage 1): pass -> [missing] (J4)
  • [ui] tests/ui/match/privately-uninhabited-issue-137999.rs (stage 1): [missing] -> pass (J4)
  • [ui] tests/ui/moves/assignment-of-clone-call-on-ref-due-to-missing-bound.rs (stage 1): pass -> [missing] (J4)
  • [ui] tests/ui/moves/assignment-of-clone-call-on-ref-due-to-missing-bound.rs#current (stage 1): [missing] -> pass (J4)
  • [ui] tests/ui/moves/assignment-of-clone-call-on-ref-due-to-missing-bound.rs#next (stage 1): [missing] -> pass (J4)

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

Job group index

  • J0: aarch64-apple, aarch64-gnu, i686-gnu-2, i686-gnu-nopt-2, i686-mingw-2, i686-mingw-3, i686-msvc-2, x86_64-apple-1, x86_64-gnu, x86_64-gnu-llvm-18-3, x86_64-gnu-llvm-19-3, x86_64-gnu-nopt, x86_64-gnu-stable, x86_64-mingw-2, x86_64-msvc-2
  • J1: aarch64-apple, aarch64-gnu, arm-android, armhf-gnu, dist-i586-gnu-i586-i686-musl, i686-gnu-1, i686-gnu-nopt-1, i686-msvc-1, test-various, x86_64-apple-2, x86_64-gnu, x86_64-gnu-llvm-18-1, x86_64-gnu-llvm-18-2, x86_64-gnu-llvm-19-1, x86_64-gnu-llvm-19-2, x86_64-gnu-nopt, x86_64-gnu-stable, x86_64-mingw-1, x86_64-msvc-1
  • J2: mingw-check
  • J3: aarch64-apple, aarch64-gnu, arm-android, armhf-gnu, dist-i586-gnu-i586-i686-musl, i686-gnu-1, i686-gnu-nopt-1, i686-msvc-1, test-various, x86_64-apple-1, x86_64-gnu, x86_64-gnu-aux, x86_64-gnu-llvm-18-1, x86_64-gnu-llvm-18-2, x86_64-gnu-llvm-18-3, x86_64-gnu-llvm-19-1, x86_64-gnu-llvm-19-2, x86_64-gnu-llvm-19-3, x86_64-gnu-nopt, x86_64-gnu-stable, x86_64-mingw-1, x86_64-msvc-1
  • J4: x86_64-gnu-llvm-18-3, x86_64-gnu-llvm-19-3

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (2947be7): comparison URL.

Overall result: ❌✅ regressions and improvements - no action needed

@rustbot label: -perf-regression

Instruction count

This is the most reliable metric that we have; it was used to determine the overall result at the top of this comment. However, even this metric can sometimes exhibit noise.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
0.2% [0.2%, 0.2%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.2% [-0.2%, -0.2%] 2
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary 1.3%, secondary -1.7%)

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)
9.8% [9.8%, 9.8%] 1
Regressions ❌
(secondary)
1.9% [1.9%, 1.9%] 1
Improvements ✅
(primary)
-1.5% [-2.1%, -1.1%] 3
Improvements ✅
(secondary)
-2.3% [-3.8%, -1.3%] 7
All ❌✅ (primary) 1.3% [-2.1%, 9.8%] 4

Cycles

Results (secondary 3.2%)

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)
3.2% [1.4%, 4.7%] 9
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Binary size

Results (primary -0.0%)

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.1% [0.1%, 0.1%] 4
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-0.1% [-0.2%, -0.1%] 4
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -0.0% [-0.2%, 0.1%] 8

Bootstrap: 774.586s -> 774.968s (0.05%)
Artifact size: 365.51 MiB -> 365.49 MiB (-0.01%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI-spurious-fail-mingw CI spurious failure: target env mingw merged-by-bors This PR was explicitly merged by bors. 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-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.