Skip to content

Conversation

matthiaskrgr
Copy link
Member

@matthiaskrgr matthiaskrgr commented Oct 18, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

thaliaarchi and others added 30 commits September 16, 2025 13:11
Since `std::os::windows::ffi::EncodeWide` was reexported from `std::sys_common::wtf8::EncodeWide`, which has `#![allow(missing_debug_implementations)]` in the parent module, it did not implement `Debug`. When it was moved to `core`, a placeholder impl was added; fill it in.
Co-authored-by: Josh Triplett <josh@joshtriplett.org>
Co-authored-by: Josh Triplett <josh@joshtriplett.org>
Co-authored-by: Josh Triplett <josh@joshtriplett.org>
Co-authored-by: Josh Triplett <josh@joshtriplett.org>
Update the docs to reflect that [Motor OS std library PR](rust-lang#147000) has been merged.
…hrisDenton Implement `Debug` for `EncodeWide` Since `std::os::windows::ffi::EncodeWide` was reexported from `std::sys_common::wtf8::EncodeWide`, which has `#![allow(missing_debug_implementations)]` in the parent module, it did not implement `Debug`. When it was moved to `core`, a placeholder impl was added; fill it in. This becomes insta-stable. r? libs-api
…ngle, r=fee1-dead the `#[track_caller]` shim should not inherit `#[no_mangle]` fixes rust-lang#143162 builds on rust-lang#143293 which introduced a mechanism to strip attributes from shims. cc `@Jules-Bertholet` `@workingjubilee` `@bjorn3` --- Summary: This PR fixes an interaction between `#[track_caller]`, `#[no_mangle]`, and casting to a function pointer. A function annotated with `#[track_caller]` internally has a hidden extra argument for the panic location. The `#[track_caller]` attribute is only allowed on `extern "Rust"` functions. When a function is annotated with both `#[no_mangle]` and `#[track_caller]`, the exported symbol has the signature that includes the extra panic location argument. This works on stable rust today: ```rust extern "Rust" { #[track_caller] fn rust_track_caller_ffi_test_tracked() -> &'static Location<'static>; } mod provides { use std::panic::Location; #[track_caller] // UB if we did not have this! #[no_mangle] fn rust_track_caller_ffi_test_tracked() -> &'static Location<'static> { Location::caller() } } ``` When a `#[track_caller]` function is converted to a function pointer, a shim is added to drop the additional argument. So this is a valid program: ```rust #[track_caller] fn foo() {} fn main() { let f = foo as fn(); f(); } ``` The issue arises when `foo` is additionally annotated with `#[no_mangle]`, the generated shim currently inherits this attribute, also exporting a symbol named `foo`, but one without the hidden panic location argument. The linker rightfully complains about a duplicate symbol. The solution of this PR is to have the generated shim drop the `#[no_mangle]` attribute.
…tables-qnx, r=wesleywiser Fix backtraces with `-C panic=abort` on qnx; emit unwind tables by default While syncing rust-lang#143613 into Ferrocene as part of ferrocene/ferrocene#1803, we noted a failure on our QNX targets: ``` ---- [ui] tests/ui/panics/panic-abort-backtrace-without-debuginfo.rs stdout ---- error: test did not exit with success! code=Some(134) so test would pass with `run-crash` status: exit status: 134 command: RUSTC="/home/ci/project/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" RUST_TEST_THREADS="1" "/home/ci/project/build/x86_64-unknown-linux-gnu/stage1-tools-bin/remote-test-client" "run" "0" "/home/ci/project/build/x86_64-unknown-linux-gnu/test/ui/panics/panic-abort-backtrace-without-debuginfo/a" --- stdout ------------------------------- uploaded "/home/ci/project/build/x86_64-unknown-linux-gnu/test/ui/panics/panic-abort-backtrace-without-debuginfo/a", waiting for result died due to signal 6 ------------------------------------------ --- stderr ------------------------------- thread 'main' (1) panicked at /home/ci/project/tests/ui/panics/panic-abort-backtrace-without-debuginfo.rs:39:9: ERROR: no `this_function_must_be_in_the_backtrace` in stderr! actual stderr: thread 'main' (1) panicked at /home/ci/project/tests/ui/panics/panic-abort-backtrace-without-debuginfo.rs:27:5: generate panic backtrace stack backtrace: 0: 0x4e66a53643 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h55e010263b1e3169 1: 0x4e66a68cd2 - core::fmt::write::h0d6e2e8752abc333 2: 0x4e66a16919 - std::io::Write::write_fmt::h71c4c024d832b384 3: 0x4e66a1f8e2 - std::sys::backtrace::BacktraceLock::print::hdd80dfdf90bb7100 4: 0x4e66a221e0 - std::panicking::default_hook::{{closure}}::h77758f25a686500f 5: 0x4e66a21f69 - std::panicking::default_hook::ha63f7d476af6c267 6: 0x4e66a22999 - std::panicking::panic_with_hook::h3a36a8a0f0dd8ccd 7: 0x4e66a21cac - std::panicking::begin_panic::{{closure}}::h570dedb92e232392 8: 0x4e66a1fa69 - std::sys::backtrace::__rust_end_short_backtrace::h5366eec354f92733 9: 0x4e669f9589 - std::panicking::begin_panic::h04a4bd4c33dd4056 10: 0x4e66a00aca - panic_abort_backtrace_without_debuginfo::and_this_function_too::h5b034b94cbe9c3d3 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace ------------------------------------------ ---- [ui] tests/ui/panics/panic-abort-backtrace-without-debuginfo.rs stdout end ---- failures: [ui] tests/ui/panics/panic-abort-backtrace-without-debuginfo.rs test result: FAILED. 19958 passed; 1 failed; 328 ignored; 0 measured; 0 filtered out; finished in 1827.71s Some tests failed in compiletest suite=ui mode=ui host=x86_64-unknown-linux-gnu target=x86_64-pc-nto-qnx710 Build completed unsuccessfully in 0:43:28 Exited with code exit status 1 ``` This patch applies the same fix as the one found in rust-lang#143613 of adding the `default_uwtable: true` to the target. I've run it locally, when ferrocene/ferrocene#1803 merges we'll know it has passed within our CI, which is about a close an analog as I can offer to Rust.
…=joshtriplett Implement fs api set_times and set_times_nofollow implementation of rust-lang#147455 r? ````@joshtriplett````
…hlin Undo CopyForDeref assertion in const qualif Fixes rust-lang#147733 caused by rust-lang#145513 This code in fact does not run only on runtime MIR.
…, r=petrochenkov use module_child index as disambiguator for external items When defining the items of an external module, if that item is an underscore we use it's index as the disambiguator. This is needed for parallel import resolution, which is being worked on in rust-lang#145108. r? `@petrochenkov`
docs: update Motor OS target docs Update the docs to reflect that [Motor OS std library PR](rust-lang#147000) has been merged.
@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 Oct 18, 2025
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Oct 18, 2025

📌 Commit 706f5fb 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 Oct 18, 2025
@bors
Copy link
Collaborator

bors commented Oct 18, 2025

⌛ Testing commit 706f5fb with merge ab1d244...

@bors
Copy link
Collaborator

bors commented Oct 18, 2025

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

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Oct 18, 2025
@bors bors merged commit ab1d244 into rust-lang:master Oct 18, 2025
12 checks passed
@rustbot rustbot added this to the 1.92.0 milestone Oct 18, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#140153 Implement Debug for EncodeWide 5e4173b0aa878aae5200e30b36bc6e271ffe405d (link)
#145724 the #[track_caller] shim should not inherit #[no_mangle] 9a99af4c0a3e27dab8ceada0d9fd1c7a4e662ff3 (link)
#147258 iter repeat: panic on last fd6968272f88a2c61670fcd70f6651da9227922a (link)
#147454 Fix backtraces with -C panic=abort on qnx; emit unwind ta… cb22efbd72d3d44bc4c5d6cd8cf87e66bdd222a7 (link)
#147468 Implement fs api set_times and set_times_nofollow e52d30844ae5dc849da228f0fea73ecd22560303 (link)
#147764 Undo CopyForDeref assertion in const qualif 3cef9a508683ff23785eb5cd2bcd3efd7dac8de5 (link)
#147805 use module_child index as disambiguator for external items 35404a9b96b125c46428efd912a6eed4c80907b3 (link)
#147824 docs: update Motor OS target docs b77d45f7ec6efcb649cf65cd6104dbf2cf2968a0 (link)

previous master: 32892a37b4

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 32892a3 (parent) -> ab1d244 (this PR)

Test differences

Show 282 test diffs

Stage 1

  • fs::tests::test_fs_set_times: [missing] -> pass (J1)
  • fs::tests::test_fs_set_times_follows_symlink: [missing] -> pass (J1)
  • fs::tests::test_fs_set_times_nofollow: [missing] -> pass (J1)
  • [ui] tests/ui/consts/precise-drop-nested-deref-ice.rs: [missing] -> pass (J3)
  • [ui] tests/ui/rfcs/rfc-2091-track-caller/shim-does-not-modify-symbol.rs: [missing] -> pass (J3)
  • wtf8::tests::wtf8_encode_wide_debug: [missing] -> pass (J5)

Stage 2

  • wtf8::tests::wtf8_encode_wide_debug: [missing] -> pass (J0)
  • [ui] tests/ui/consts/precise-drop-nested-deref-ice.rs: [missing] -> pass (J2)
  • [ui] tests/ui/rfcs/rfc-2091-track-caller/shim-does-not-modify-symbol.rs: [missing] -> pass (J2)
  • fs::tests::test_fs_set_times: [missing] -> pass (J4)
  • fs::tests::test_fs_set_times_follows_symlink: [missing] -> pass (J4)
  • fs::tests::test_fs_set_times_nofollow: [missing] -> pass (J4)

Additionally, 270 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 ab1d2444533d829e2d5cff6634cd3c70de6d7103 --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-gnu-gcc: 3062.7s -> 3571.8s (16.6%)
  2. x86_64-gnu-llvm-20: 2470.7s -> 2783.8s (12.7%)
  3. dist-various-1: 4295.8s -> 3776.3s (-12.1%)
  4. x86_64-rust-for-linux: 2696.3s -> 2998.8s (11.2%)
  5. i686-gnu-2: 5474.8s -> 6028.1s (10.1%)
  6. aarch64-gnu-llvm-20-1: 3299.7s -> 3603.0s (9.2%)
  7. arm-android: 5869.3s -> 6401.4s (9.1%)
  8. x86_64-msvc-ext3: 5990.0s -> 6531.8s (9.0%)
  9. i686-gnu-nopt-1: 7467.6s -> 8112.3s (8.6%)
  10. aarch64-gnu-llvm-20-2: 2279.1s -> 2463.8s (8.1%)
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 (ab1d244): comparison URL.

Overall result: ❌ regressions - no action needed

@rustbot label: -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

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

Max RSS (memory usage)

Results (primary 1.8%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

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

Cycles

Results (primary -2.1%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

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

Binary size

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

Bootstrap: 475.327s -> 473.727s (-0.34%)
Artifact size: 390.40 MiB -> 390.45 MiB (0.01%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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.