- Notifications
You must be signed in to change notification settings - Fork 13.9k
Rollup of 8 pull requests #147838
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 8 pull requests #147838
Conversation
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.
…tion for reusing it
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.
iter repeat: panic on last rust-lang#146660 (comment)
…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.
@bors r+ rollup=never p=5 |
☀️ Test successful - checks-actions |
📌 Perf builds for each rolled up PR:
previous master: 32892a37b4 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 32892a3 (parent) -> ab1d244 (this PR) Test differencesShow 282 test diffsStage 1
Stage 2
Additionally, 270 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 ab1d2444533d829e2d5cff6634cd3c70de6d7103 --output-dir test-dashboard And 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 (ab1d244): comparison URL. Overall result: ❌ regressions - no action needed@rustbot label: -perf-regression 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 1.8%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary -2.1%)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: 475.327s -> 473.727s (-0.34%) |
Successful merges:
Debug
forEncodeWide
#140153 (ImplementDebug
forEncodeWide
)#[track_caller]
shim should not inherit#[no_mangle]
#145724 (the#[track_caller]
shim should not inherit#[no_mangle]
)-C panic=abort
on qnx; emit unwind tables by default #147454 (Fix backtraces with-C panic=abort
on qnx; emit unwind tables by default)r? @ghost
@rustbot modify labels: rollup
Create a similar rollup