Uh oh!
There was an error while loading. Please reload this page.
Ensure Send/Sync impl for std::process::CommandArgs - #155113
Conversation
b60befa to
c08e6e4Comparerustbot
commented
Apr 11, 2026
@Mark-Simulacrum: no appropriate reviewer found, use |
Amanieu
commented
Apr 14, 2026
@rfcbot merge libs-api |
Team member @Amanieu has proposed to merge this. The next step is review by the rest of the tagged team members: No concerns currently listed. Once a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up! See this document for info about what commands tagged team members can give me. |
rust-rfcbot
commented
Apr 28, 2026
🔔 This is now entering its final comment period, as per the review above. 🔔 |
rust-rfcbot
commented
May 8, 2026
The final comment period, with a disposition to merge, as per the review above, is now complete. As the automated representative of the governance process, I would like to thank the author for their work and everyone else who contributed. |
Mark-Simulacrum
commented
Jun 11, 2026
r? libs |
clarfonthey
commented
Jun 11, 2026
Main apprehension right now is that the test is lifetime-based, which technically could fail for bad reasons if we only implemented the markers for static lifetimes, but I don't quite have in my head what the suitable alternative would be. |
Mark-Simulacrum
commented
Jun 11, 2026
Maybe it works to put My feeling is that the assertions are more defense in depth than anything else though, and I think it's very unlikely we'd have a lifetime-dependent Send or Sync (or any other auto trait) implementation. |
clarfonthey
commented
Jun 11, 2026
Oh, I agree with you there, I just think there may be a way to make it work in all cases anyway and want to try that out if we can. Might be as simple as adding a second function intermediary which has a lifetime parameter. |
Mark-Simulacrum
commented
Jun 12, 2026
Ah, right, |
clarfonthey
commented
Jun 12, 2026
To be clear, my plan was to actually do that, I just hadn't gotten around to it yet: basically, I'd like to try my hand at making a version that works so it can be useful as a template, but if I can't figure it out, I'll just merge as-is. |
clarfonthey
commented
Jun 12, 2026
After experimenting a bit, I guess that we have explicitly ensured this can't happen: and so: @bors r+ rollup |
Rollup of 24 pull requests Successful merges: - #157716 (update Enzyme, June'26) - #149793 (Add inline asm support for amdgpu) - #155299 (make repr_transparent_non_zst_fields a hard error) - #157612 (Add a test where subtyping inhibits coercion.) - #157626 (Autogenerate unstable compiler flag stubs for unstable-book) - #157667 (Rename typing modes to better describe real usage) - #149749 (Make `BorrowedBuf` and `BorrowedCursor` generic over the data) - #155113 (Ensure Send/Sync impl for std::process::CommandArgs) - #156212 (Additionally gate negative bounds behind new `-Zinternal-testing-features`) - #157342 (Reduce verbosity of cycle errors when possible) - #157366 (Add a regression test for an unconstrained TransmuteFrom ICE) - #157459 (rustc_target: callconv: powerpc64: Remove unreachable fallback code path) - #157658 (UnsafeCell: mention shared-ref-to-interior case, fix aliasing model inaccuracy) - #157698 (Remove an unnecessary cloning) - #157699 (Arg splat experiment - hir FnDecl impl) - #157713 (resolve: Remove exported imports from `maybe_unused_trait_imports`) - #157722 (Move create_scope_map to rustc_codegen_ssa.) - #157723 (Move uninhabited unreachable code lint to rustc_mir_transform) - #157725 (Keep generic suggestion for macro-expanded missing-type items) - #157733 (Remove old FIXMEs about nocapture attribute) - #157737 (Reorganize `tests/ui/issues` [7/N]) - #157746 (supports_c_variadic_definitions: extend checklist for new targets) - #157763 (Move unused target expression error to appropriate place and rename it) - #157768 (codegen_ssa: peel trans. wrappers on scalable vecs)
Uh oh!
There was an error while loading. Please reload this page.
Rollup merge of #155113 - Mark-Simulacrum:auto-trait-cmd, r=clarfonthey Ensure Send/Sync impl for std::process::CommandArgs This also adds static assertions to ensure this continues to hold across all targets. I think today this was just missing on cfg(unix) targets, but haven't checked too thoroughly. I think all tier 2+ targets continue to compile with the assertions (but we'll see what CI says). cc #154517
Rollup of 24 pull requests Successful merges: - rust-lang/rust#157716 (update Enzyme, June'26) - rust-lang/rust#149793 (Add inline asm support for amdgpu) - rust-lang/rust#155299 (make repr_transparent_non_zst_fields a hard error) - rust-lang/rust#157612 (Add a test where subtyping inhibits coercion.) - rust-lang/rust#157626 (Autogenerate unstable compiler flag stubs for unstable-book) - rust-lang/rust#157667 (Rename typing modes to better describe real usage) - rust-lang/rust#149749 (Make `BorrowedBuf` and `BorrowedCursor` generic over the data) - rust-lang/rust#155113 (Ensure Send/Sync impl for std::process::CommandArgs) - rust-lang/rust#156212 (Additionally gate negative bounds behind new `-Zinternal-testing-features`) - rust-lang/rust#157342 (Reduce verbosity of cycle errors when possible) - rust-lang/rust#157366 (Add a regression test for an unconstrained TransmuteFrom ICE) - rust-lang/rust#157459 (rustc_target: callconv: powerpc64: Remove unreachable fallback code path) - rust-lang/rust#157658 (UnsafeCell: mention shared-ref-to-interior case, fix aliasing model inaccuracy) - rust-lang/rust#157698 (Remove an unnecessary cloning) - rust-lang/rust#157699 (Arg splat experiment - hir FnDecl impl) - rust-lang/rust#157713 (resolve: Remove exported imports from `maybe_unused_trait_imports`) - rust-lang/rust#157722 (Move create_scope_map to rustc_codegen_ssa.) - rust-lang/rust#157723 (Move uninhabited unreachable code lint to rustc_mir_transform) - rust-lang/rust#157725 (Keep generic suggestion for macro-expanded missing-type items) - rust-lang/rust#157733 (Remove old FIXMEs about nocapture attribute) - rust-lang/rust#157737 (Reorganize `tests/ui/issues` [7/N]) - rust-lang/rust#157746 (supports_c_variadic_definitions: extend checklist for new targets) - rust-lang/rust#157763 (Move unused target expression error to appropriate place and rename it) - rust-lang/rust#157768 (codegen_ssa: peel trans. wrappers on scalable vecs)
This also adds static assertions to ensure this continues to hold across all targets. I think today this was just missing on cfg(unix) targets, but haven't checked too thoroughly. I think all tier 2+ targets continue to compile with the assertions (but we'll see what CI says).
cc #154517