Rollup of 14 pull requests - #160954
Conversation
This commit adjusts the changes made in 159733. A wasi-libc bug was discovered in 160828 which is present in certain situations which means that the changes in 159733 expose this bug. The purpose of this PR is to get wasip1/wasip2 targets fixed again while preserving a working implementation for wasip3. This upstream bug is already fixed in wasi-libc meaning that this PR won't be necessary once wasi-sdk-34 is published and used in rust-lang/rust. Until that time, however, this effectively reverts 159733 for wasip1/wasip2. The wasip3 target is Tier 3 still and requires wasi-sdk-34 anyway which is why that's left unchanged. Closes 160828
the previous version, v0.5.0 (from 2018), does not include a Cargo lockfile which makes the test brittle as bugs and unintentional breaking changes in any new release of a dependency can make the test fail the newly chosen version, v0.7.7, includes a Cargo lockfile
This is currently not really implemented, but partial support for it is added in various places across the tree. This is a patch extracted from the wider set of work to make review easier, which wires up: * Unstable flag in rustc * Bootstrap flag to enable using wasm-proc-macros (this needs an extra std compilation, wiring into compiletest) * Partial compiletest support for the flag (mostly just CLI side of things)
Simply replace the parameter name and `#[rustc_splat]` attribute with an ellipsis. This preserves the type information of the splat while still documenting the variadic nature of the function.
Do not pass `-no-pie` on Windows The warning can be seen with a simple example: ``` ❯ cargo new /tmp/hello -q ❯ cargo rustc --target x86_64-pc-windows-gnullvm -q -- -C target-feature=+crt-static warning: linker stderr: clang: argument unused during compilation: '-no-pie' [-Wunused-command-line-argument] | = note: `#[warn(linker_messages)]` on by default ```
…oboet
Arc: Remove unnecessary fmt::Display use for overflow assertion
- [x] I did not use an LLM to create a change in this PR.
- [ ] I used an LLM to create a change in this PR, and I have explained below how it was used.
This PR removes unnecessary `fmt::Display` generated assembly because of use of formatting in the overflow check assertion(`assert!(n <= MAX_REFCOUNT, "{}", INTERNAL_OVERFLOW_ERROR);`).
This reduces generated x64 assembly for counter increment(simplified) from:
```asm
increase_counter:
test rdi, rdi
js .LBB1_2
inc rdi
mov rax, rdi
ret
.LBB1_2:
sub rsp, 24
lea rax, [rip + .Lanon.642d46026bcfa00bfed8baf8cdbf502d.2]
mov qword ptr [rsp + 8], rax
lea rax, [rip + <&str as core[4e7ceada952a6ea0]::fmt::Display>::fmt]
mov qword ptr [rsp + 16], rax
lea rdi, [rip + .Lanon.642d46026bcfa00bfed8baf8cdbf502d.0]
lea rdx, [rip + .Lanon.642d46026bcfa00bfed8baf8cdbf502d.4]
lea rsi, [rsp + 8]
call qword ptr [rip + core[4e7ceada952a6ea0]::panicking::panic_fmt@GOTPCREL]
.Lanon.642d46026bcfa00bfed8baf8cdbf502d.0:
.asciz "\300"
.Lanon.642d46026bcfa00bfed8baf8cdbf502d.1:
.ascii "Arc counter overflow"
```
To:
```asm
increase_counter:
test rdi, rdi
js .LBB0_2
inc rdi
mov rax, rdi
ret
.LBB0_2:
push rax
lea rdi, [rip + .Lanon.642d46026bcfa00bfed8baf8cdbf502d.0]
lea rdx, [rip + .Lanon.642d46026bcfa00bfed8baf8cdbf502d.2]
mov esi, 41
call qword ptr [rip + core[4e7ceada952a6ea0]::panicking::panic_fmt@GOTPCREL]
.Lanon.642d46026bcfa00bfed8baf8cdbf502d.0:
.ascii "Arc counter overflow"
```
Godbolt link:
https://godbolt.org/z/3qjxooYWM
I expect bors to report a binary size reduction for all programs using Arc. There might also be performance improvements as a byproduct of CPU cache hit increase.
…, r=bjorn3,jieyouxu Add -Zwasm-proc-macros flag This is currently not really implemented, but partial support for it is added in various places across the tree. This is a patch extracted from the wider set of work to make review easier, which wires up: * Unstable flag in rustc * Bootstrap flag to enable using wasm-proc-macros (this needs an extra std compilation, wiring into compiletest) * Partial compiletest support for the flag (mostly just CLI side of things) * I suspect this will not work across all platforms but based on success with the full patch it should be enough for Linux, I think. I'd rather get them working on at least one platform and then iterate from there, unless we have clear ideas for improvements now. cc rust-lang#160389 (tracking issue) cc rust-lang#157590 (more complete implementation) r? @bjorn3
…, r=clarfonthey std: Adjust cfgs again for TLS on WASI This commit adjusts the changes made in rust-lang#159733. A wasi-libc bug was discovered in rust-lang#160828 which is present in certain situations which means that the changes in rust-lang#159733 expose this bug. The purpose of this PR is to get wasip1/wasip2 targets fixed again while preserving a working implementation for wasip3. This upstream bug is already fixed in wasi-libc meaning that this PR won't be necessary once wasi-sdk-34 is published and used in rust-lang/rust. Until that time, however, this effectively reverts rust-lang#159733 for wasip1/wasip2. The wasip3 target is Tier 3 still and requires wasi-sdk-34 anyway which is why that's left unchanged. Closes rust-lang#160828
…is, r=GuillaumeGomez Add basic `splat` support to `rustdoc` Tracking Issue: rust-lang#153629 # Description While experimenting on variadic `min`/`max`, it was [noted](rust-lang/libs-team#848 (comment)) that the `rustdoc` output for a splatted function is less than ideal. Consider the below: ```rust pub fn smallest<T: Ord>(#[rustc_splat] vals: impl TupleReduce<Item = T>) -> T { // ... } ``` Currently, this is rendered in `rustdoc` as-is, obfuscating the variadic nature of the function: <img width="819" height="211" alt="image" src="https://github.com/user-attachments/assets/68569fe6-7285-49f8-aae9-ddad0b10649c" /> ## Solution I've updated the clean `Parameter` type to include whether it is splatted, and overridden the display of that parameter to replace the name with an ellipsis, similar to how fake variadic implementations are displayed. <img width="820" height="211" alt="image" src="https://github.com/user-attachments/assets/58a27245-cc38-44e6-908a-f67991bcdb64" /> --- ## Notes * No AI tooling of any kind was used during the creation of this PR.
…ulacrum Allow running an arbitrary number of try jobs per PR Requested on [Zulip](https://rust-lang.zulipchat.com/#narrow/channel/242791-t-infra/topic/bors.20try.20job.20nolimit/with/615782805). Companion bors PR: rust-lang/bors#812
rustc-book: update sys-v abi link Upstream has moved to a new location and the current link is 6 years out of date. See https://github.com/hjl-tools/x86-psABI/
…-cfg, r=Urgau Add rust_analyzer to check-cfg names Add rust_analyzer as a known cfg name, set to expect no values Add test to verify name is recognized and warned on setting a value Fixes rust-lang#160736 r? @Urgau
Rollup of 14 pull requests try-job: dist-various-1 try-job: test-various try-job: x86_64-gnu-aux try-job: x86_64-gnu-llvm-21-3 try-job: x86_64-msvc-1 try-job: aarch64-apple-* try-job: x86_64-mingw-1 try-job: i686-msvc-*
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
The job Click to see the possible cause of the failure (guessed by this bot) |
|
💔 Test for dff5826 failed: CI. Failed job:
|
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 6660e28 (parent) -> 793b589 (this PR) Test differencesShow 450 test diffsStage 1
Stage 2
Additionally, 448 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 793b589680f2ad49fab6853e84dbd51c5d84c505 --output-dir test-dashboardAnd then open Job duration changes
How to interpret the job duration changes?Job durations can vary a lot, based on the actual runner instance |
|
📌 Perf builds for each rolled up PR:
previous master: 6660e286ea In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
|
Finished benchmarking commit (793b589): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis perf run didn't have relevant results for this metric. Max RSS (memory usage)Results (primary -4.2%, secondary 0.1%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary 2.4%, secondary 0.7%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis perf run didn't have relevant results for this metric. Bootstrap: 460.062s -> 454.866s (-1.13%) |
Successful merges:
-no-pieon Windows #160620 (Do not pass-no-pieon Windows)splatsupport torustdoc#160882 (Add basicsplatsupport torustdoc)cortex-mdependency #160909 (tests/run-make-cargo/thumb-none-cortex-m: bumpcortex-mdependency)rustc_session#160924 (split uprustc_session)Fntrait parameters in the AST, fix rustfmt bug #160937 (Store the names ofFntrait parameters in the AST, fix rustfmt bug)r? @ghost
Create a similar rollup