Skip to content

Rollup of 5 pull requests - #148642

Closed
GuillaumeGomez wants to merge 15 commits into
rust-lang:masterfrom
GuillaumeGomez:rollup-qdothm9
Closed

Rollup of 5 pull requests#148642
GuillaumeGomez wants to merge 15 commits into
rust-lang:masterfrom
GuillaumeGomez:rollup-qdothm9

Conversation

@GuillaumeGomez

@GuillaumeGomezGuillaumeGomez commented Nov 7, 2025

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

folkertdevand others added 15 commits November 6, 2025 12:49
Adds missing test coverage for rustdoc's `--test-builder` option.
The existing test only covered the error case (non-executable builder). This PR
adds:
- A custom test builder that logs arguments and forwards to rustc
- A test verifying that `--test-builder` successfully invokes the custom
builder with rustc-style arguments
- Improved comments explaining both the error and success test scenarios
The test validates that custom builders can properly intercept and handle
doctest compilation.
Signed-off-by: Osama Abdelkader <osama.abdelkader@gmail.com>
Updated email addresses for several contributors in the mailmap.
… r=Amanieu
Stabilize s390x `vector` target feature and `is_s390x_feature_detected!` macro
closesrust-lang#145649closesrust-lang#135413
cc: rust-lang#130869
reference PR: rust-lang/reference#1972
# Stabilization report
## Summary
This PR stabilizes the following s390x target features:
- `vector`
- `vector-enhancements-1`
- `vector-enhancements-2`
- `vector-enhancements-3`
- `vector-packed-decimal`
- `vector-packed-decimal-enhancement`
- `vector-packed-decimal-enhancement-2`
- `vector-packed-decimal-enhancement-3`
- `nnp-assist`
- `miscellaneous-extensions-2`
- `miscellaneous-extensions-3`
- `miscellaneous-extensions-4`
Additionally, it stabilizes the `std::arch::is_s390x_feature_detected!` macro itself and stably accepts the target features listed above.
## Tests & ABI details
Only the `vector` target feature changes the ABI, much like e.g. `avx2` it will, depending on the ABI, pass vector types in vector registers. This behavior is tested extensively:
- [tests/assembly-llvm/s390x-vector-abi.rs](https://github.com/rust-lang/rust/blob/22a86f8280becb12c34ee3efd952baf5cf086fa0/tests/assembly-llvm/s390x-vector-abi.rs)
- [tests/codegen-llvm/s390x-simd.rs](https://github.com/rust-lang/rust/blob/22a86f8280becb12c34ee3efd952baf5cf086fa0/tests/assembly-llvm/s390x-vector-abi.rs)
- [tests/ui/abi/simd-abi-checks-s390x.rs ](https://github.com/rust-lang/rust/blob/22a86f8280becb12c34ee3efd952baf5cf086fa0/tests/ui/abi/simd-abi-checks-s390x.rs )
The remaining features don't influence the ABI, they only influence instruction selection. In stdarch we test that the expected instructions are in fact generated when the target feature is enabled.
## Implementation history
For `is_s390x_feature_detected!`:
- rust-lang/stdarch#1699
- rust-lang#138275
- rust-lang/stdarch#1720
- rust-lang/stdarch#1832
For `vector` and friends
- rust-lang#127506
- rust-lang#135630
- rust-lang#141250
## Unresolved questions
There is a fixme in [tests/ui/abi/simd-abi-checks-s390x.rs](https://github.com/rust-lang/rust/blob/22a86f8280becb12c34ee3efd952baf5cf086fa0/tests/ui/abi/simd-abi-checks-s390x.rs):
```
// FIXME: +soft-float itself doesn't set -vector
//`@[z13_soft_float]` compile-flags: --target s390x-unknown-linux-gnu -C target-cpu=z13 -C target-feature=-vector,+soft-float
//`@[z13_soft_float]` needs-llvm-components: systemz
```
I'm not sure whether that blocks stabilization?
---
The implementation first extracts the listed target features into their own `s390x_target_feature_vector` rust feature, and then stabilizes that. best reviewed commit-by-commit
r? `@Amanieu`
cc `@uweigand` `@taiki-e`
Modify contributor email entries in .mailmap
This adds mailmap entries for duplicates I found in https://thanks.rust-lang.org/rust/all-time/
If I added an entry for you and it is not correct, then please let me know! See the comments at the start of https://github.com/rust-lang/thanks/blob/master/mailmap/src/lib.rs for understanding these entries.
After this gets into the repo, the thanks page will be regenerated within a day, and your double entries will be merged.
cc `@aochagavia`
cc `@fasterthanlime`
cc `@jackh726`
cc `@jakubadamw`
cc `@yaahc`
cc `@jackpot51`
cc `@jonhoo`
cc `@marcoieni`
cc `@onur-ozkan`
cc `@rylev`
cc `@willcrichton`
cc `@yoshuawuyts`
…-closure, r=JonathanBrouwer
Fix suggestion for returning async closures
Fixesrust-lang#148493
…, r=yotamofek
[rustdoc] Replace `print` methods with functions to improve code readability
We have a lot of `print` methods, making it quite tricky to know what the types we're manipulating are.
We did something similar with `Clean` trait a few years ago (the first PR was rust-lang#99638, followed by a lot of them).
Each commit replaces one type for easier review.
r? `@yotamofek`
…llaumeGomez
Add test for --test-builder success path
Fixesrust-lang#148586
@rustbotrustbot added A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-run-make Area: port run-make Makefiles to rmake.rs 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. 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 Nov 7, 2025
@GuillaumeGomez

Copy link
Copy Markdown
MemberAuthor

@bors r+ p=5 rollup=never

@bors

bors commented Nov 7, 2025

Copy link
Copy Markdown
Collaborator

📌 Commit 1f80593 has been approved by GuillaumeGomez

It is now in the queue for this repository.

@borsbors 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 Nov 7, 2025
@bors

bors commented Nov 7, 2025

Copy link
Copy Markdown
Collaborator

⌛ Testing commit 1f80593 with merge 81bfb36...

bors added a commit that referenced this pull request Nov 7, 2025
Rollup of 5 pull requests
Successful merges:
- #145656 (Stabilize s390x `vector` target feature and `is_s390x_feature_detected!` macro)
- #148204 (Modify contributor email entries in .mailmap)
- #148556 (Fix suggestion for returning async closures)
- #148585 ([rustdoc] Replace `print` methods with functions to improve code readability)
- #148608 (Add test for --test-builder success path)
r? `@ghost`
`@rustbot` modify labels: rollup
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job test-various failed! Check out the build log: (web)(plain enhanced)(plain)

Click to see the possible cause of the failure (guessed by this bot)
---- [run-make] tests/run-make/rustdoc-test-builder stdout ----
error: rmake recipe failed to complete
status: exit status: 1
command: cd "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/rustdoc-test-builder/rmake_out" && env -u RUSTFLAGS -u __RUSTC_DEBUG_ASSERTIONS_ENABLED -u __STD_DEBUG_ASSERTIONS_ENABLED AR="/wasi-sdk-27.0-x86_64-linux/bin/llvm-ar" BUILD_ROOT="/checkout/obj/build/x86_64-unknown-linux-gnu" CC="/wasi-sdk-27.0-x86_64-linux/bin/wasm32-wasip1-clang" CC_DEFAULT_FLAGS="-ffunction-sections -fdata-sections -fno-exceptions --target=wasm32-wasip1" CXX="/wasi-sdk-27.0-x86_64-linux/bin/wasm32-wasip1-clang++" CXX_DEFAULT_FLAGS="-ffunction-sections -fdata-sections -fno-exceptions --target=wasm32-wasip1" HOST_RUSTC_DYLIB_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" LD_LIBRARY_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" LD_LIB_PATH_ENVVAR="LD_LIBRARY_PATH" LLVM_BIN_DIR="/checkout/obj/build/x86_64-unknown-linux-gnu/ci-llvm/bin" LLVM_COMPONENTS="aarch64 aarch64asmparser aarch64codegen aarch64desc aarch64disassembler aarch64info aarch64utils aggressiveinstcombine all all-targets amdgpu amdgpuasmparser amdgpucodegen amdgpudesc amdgpudisassembler amdgpuinfo amdgputargetmca amdgpuutils analysis arm armasmparser armcodegen armdesc armdisassembler arminfo armutils asmparser asmprinter avr avrasmparser avrcodegen avrdesc avrdisassembler avrinfo binaryformat bitreader bitstreamreader bitwriter bpf bpfasmparser bpfcodegen bpfdesc bpfdisassembler bpfinfo cfguard cgdata codegen codegentypes core coroutines coverage csky cskyasmparser cskycodegen cskydesc cskydisassembler cskyinfo debuginfobtf debuginfocodeview debuginfodwarf debuginfodwarflowlevel debuginfogsym debuginfologicalview debuginfomsf debuginfopdb demangle dlltooldriver dwarfcfichecker dwarflinker dwarflinkerclassic dwarflinkerparallel dwp engine executionengine extensions filecheck frontendatomic frontenddirective frontenddriver frontendhlsl frontendoffloading frontendopenacc frontendopenmp fuzzercli fuzzmutate globalisel hexagon hexagonasmparser hexagoncodegen hexagondesc hexagondisassembler hexagoninfo hipstdpar instcombine instrumentation interfacestub interpreter ipo irprinter irreader jitlink libdriver lineeditor linker loongarch loongarchasmparser loongarchcodegen loongarchdesc loongarchdisassembler loongarchinfo lto m68k m68kasmparser m68kcodegen m68kdesc m68kdisassembler m68kinfo mc mca mcdisassembler mcjit mcparser mips mipsasmparser mipscodegen mipsdesc mipsdisassembler mipsinfo mirparser msp430 msp430asmparser msp430codegen msp430desc msp430disassembler msp430info native nativecodegen nvptx nvptxcodegen nvptxdesc nvptxinfo objcarcopts objcopy object objectyaml option orcdebugging orcjit orcshared orctargetprocess passes powerpc powerpcasmparser powerpccodegen powerpcdesc powerpcdisassembler powerpcinfo profiledata remarks riscv riscvasmparser riscvcodegen riscvdesc riscvdisassembler riscvinfo riscvtargetmca runtimedyld sandboxir scalaropts selectiondag sparc sparcasmparser sparccodegen sparcdesc sparcdisassembler sparcinfo support symbolize systemz systemzasmparser systemzcodegen systemzdesc systemzdisassembler systemzinfo tablegen target targetparser telemetry textapi textapibinaryreader transformutils vectorize webassembly webassemblyasmparser webassemblycodegen webassemblydesc webassemblydisassembler webassemblyinfo webassemblyutils windowsdriver windowsmanifest x86 x86asmparser x86codegen x86desc x86disassembler x86info x86targetmca xray xtensa xtensaasmparser xtensacodegen xtensadesc xtensadisassembler xtensainfo" LLVM_FILECHECK="/checkout/obj/build/x86_64-unknown-linux-gnu/ci-llvm/bin/FileCheck" NODE="/node/bin/node" PYTHON="/usr/bin/python3" RUNNER="/wasmtime-v19.0.0-x86_64-linux/wasmtime run -C cache=n --dir . --env RUSTC_BOOTSTRAP" RUSTC="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" RUSTDOC="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" SOURCE_ROOT="/checkout" TARGET="wasm32-wasip1" TARGET_EXE_DYLIB_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/wasm32-wasip1/lib" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/rustdoc-test-builder/rmake"
stdout: none
--- stderr -------------------------------
command failed at line 43
Command { cmd: BUILDER_LOG="/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/rustdoc-test-builder/rmake_out/builder.log" LD_LIBRARY_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/rustdoc-test-builder/rmake_out:/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib:/checkout/obj/build/x86_64-unknown-linux-gnu/bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" REAL_RUSTC="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "doctest.rs" "--test" "-Zunstable-options" "--test-builder" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/rustdoc-test-builder/rmake_out/builder-bin" "--target=wasm32-wasip1", stdin_buf: None, stdin: None, stdout: None, stderr: None, drop_bomb: DropBomb { command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc", defused: true, armed_location: Location { file: "/checkout/tests/run-make/rustdoc-test-builder/rmake.rs", line: 35, column: 5 } }, already_executed: true }
output status: `exit status: 101`
=== STDOUT ===
running 1 test
test doctest.rs - (line 1) ... FAILED
failures:
---- doctest.rs - (line 1) stdout ----
Failed to spawn "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/rustdoc-test-builder/rmake_out/builder-bin": Os { code: 8, kind: Uncategorized, message: "Exec format error" }
Couldn't compile the test.
failures:
doctest.rs - (line 1)

@bors

bors commented Nov 7, 2025

Copy link
Copy Markdown
Collaborator

💔 Test failed - checks-actions

@borsbors 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 Nov 7, 2025
@GuillaumeGomez

Copy link
Copy Markdown
MemberAuthor

@bors r-

@borsbors added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Nov 7, 2025
@GuillaumeGomez

Copy link
Copy Markdown
MemberAuthor

Failed because of #148608.

@rustbotrustbot removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Nov 7, 2025
@GuillaumeGomez
GuillaumeGomez deleted the rollup-qdothm9 branch November 7, 2025 13:52
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-metaArea: Issues & PRs about the rust-lang/rust repository itselfA-run-makeArea: port run-make Makefiles to rmake.rsrollupA PR which is a rollupT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-libsRelevant to the library team, which will review and decide on the PR/issue.T-rustdocRelevant to the rustdoc team, which will review and decide on the PR/issue.T-rustdoc-frontendRelevant 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.

8 participants

@GuillaumeGomez@bors@rust-log-analyzer@rustbot@folkertdev@osamakader@chenyukang@hkBst