Rollup of 14 pull requests#159142
Conversation
Cap the payload length to the buffer capacity so the declared length, bytes copied, and returned count agree, matching TcpStream::write.
instead of the build triple Debugging other architectures with the build target CDB is neither a common nor a good user experience - for example, when targeting i686 from a x86_64 build target, you get all the internal WOW64 events, which also break debuginfo tests. Use the cdb.exe that corresponds to the target's architecture instead.
LLVM 23 is now handling register allocation slightly differently and
only uses CostPerUse=1 in -O{s,z} instead of unconditionally. This
causes the -O3 behavior in this test to be a little smarter and skip
some moves.
I have attempted to make the test pass on both LLVM 22 and 23 without
overly weakening it. Hopefully this is good enough!
`ExprKind::InlineAsm` was always printed as `asm!`, so `naked_asm!` was printed as `asm!` too. Use `asm_macro.macro_name()` in the AST and HIR pretty-printers to print the correct name.
…stics Point users at `#![feature(generic_const_args)]` and `type const` items when they hit the "generic parameters may not be used in const operations" error, not just `generic_const_exprs`.
We do this by using old-style ThinVec for storing debuginfos collection, which is almost always empty.
…Mark-Simulacrum Fix PR number in bootstrap's change tracker Missed this in rust-lang#158912 🤦
…rk-Simulacrum Include AtomicU128/AtomicI128 in docs for any target Fixes rust-lang#130474 This is my first contribution, so I'll try to be as descriptive as possible of my process and thoughts. - **Environment**: Cross compiled in Macbook M1 Air - **Testing**: I replicated the bug and checked fixes with `./x doc library/core --target x86_64-unknown-linux-gnu` (building the std doc didn't seem to apply my local changes so I used the core doc) Check the screenshots below. - **Diffs**: I added `#[cfg(any(...,doc))]` to all required structs and implementations so the types would compile. Applying`target_has_atomic_equal_alignment` part wasn't explicitly necessary, but adding it reveals the whole methods (specifically `from_mut` and `from_mut_slice`). - **Thoughts**: Also wondered if additional messages should be written to notify the available targets, but the documentation already included the following sentence that seemed enough. - **Note:** This type is only available on platforms that support atomic loads and stores of `u128`/`i128` [Before] <img width="988" height="233" alt="image" src="https://github.com/user-attachments/assets/e22137c2-dfc9-4239-bd0d-75c5a2e2b84f" /> [After] <img width="988" height="281" alt="image" src="https://github.com/user-attachments/assets/8ae83cb0-46f5-4cff-a576-2183466c202f" /> --- After the first work, doc tests were failing in CI, so I added `#[$cfg_cas]` to all methods in the `atomic_int` macro to cover them. But I'm not really sure if all these changes are necessary (and appropriate). This also has a side-effect of stating "Available on target_has_atomic=128 only." for all methods with the attribute. Also not sure if this is a good behavior.. <img width="978" height="454" alt="image" src="https://github.com/user-attachments/assets/b052f713-c8a9-4314-96be-a2832a6b84f6" />
…gnostic-156729, r=petrochenkov diagnostics: suggest generic_const_args for const ops fixes rust-lang#156729 when const ops hit generic params, like `[u8; size_of::<self>()]`, the diagnostic only points at `generic_const_exprs`. imo that's a stale nudge now that `generic_const_args` and `type const` items are the path we want people trying. add help for `generic_const_args` and `type const` items in the resolve and hir_ty_lowering paths. also skip the old gce suggestion once `min_generic_const_args` is enabled, and emit both suggestions for the `self` alias path so the "alternatively" wording doesn't hang there by itself. includes the regression test from the issue. lgtm.
…ller, r=JohnTitor Shrink mir::Statement to 40 bytes We do this by using (old-style) ThinVec for storing debuginfo. This collection is almost always empty, so we can optimize for that case. I think we could do better by storing the debuginfo elsewhere, but this is the least invasive change for now.
… r=lolbinarycat rustdoc: test ignoring rustc lints in CLI This works, but I couldn't find any tests for it.
…nthey std: use `OnceLock` for SGX argument storage Just like rust-lang#158180, using a `OnceLock` is much better. Though I guess that in this case a `static mut` would be fine as well... CC @jethrogb @raoulstrackx @aditijannu
… r=chenyukang Add regression test for $-prefixed fragment specifier in repetition Fixes rust-lang#157157. The diagnostic was fixed in rust-lang#155643, but the existing test only covers an accidental `$` before a fragment specifier at the top level of a matcher. This adds the equivalent case inside a repetition. The new case reuses `$test:$tt` from the adjacent test so that repetition nesting is the only difference between the two cases. Tested with: - `./x test tests/ui/macros/macro-missing-fragment.rs` This is my first contribution to this repository, so please let me know if I have missed any conventions or required steps or should make any additional changes.
Fix feature gate for `repr(simd)` The following code currently compiles on stable rust: ```rust #[repr(simd)] println!() ``` This has the following behavior: - 1.90 and earlier give an "unused attribute warning" - 1.91 ..= beta give no diagnostic output - nightly gives the following: ``` warning: `#[repr(simd)]` attribute cannot be used on macro calls --> src/main.rs:4:5 | 4 | #[repr(simd)] | ^^^^^^^^^^^^^ | = help: `#[repr(simd)]` can only be applied to structs = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default ``` This PR changes this to a feature gate **error**. r? @mejrs
…k-Simulacrum Fix multiple logic bugs in `Arc::make_mut` See the following (nightly-specific) issues: - Fixes rust-lang#158875 - Fixes rust-lang#155746 - Fixes rust-lang#157203
…lacrum std: fix Xous UDP send_to length mismatch and truncation Cap the payload length to the buffer capacity so the declared length, bytes copied, and returned count agree, matching TcpStream::write.
…target, r=jieyouxu Look for the cdb architecture that corresponds to the target triple instead of the build triple Debugging other architectures with the build target CDB is neither a common nor a good user experience - for example, when targeting i686 from a x86_64 build target, you get all the internal WOW64 events, which also break debuginfo tests. (See rust-lang#159032) Use the cdb.exe that corresponds to the target's architecture instead.
…rtdev
riscv: update c-variadic test for LLVM changes
LLVM 23 is now handling register allocation slightly differently and only uses CostPerUse=1 in -O{s,z} instead of unconditionally. This causes the -O3 behavior in this test to be a little smarter and skip some moves.
I have attempted to make the test pass on both LLVM 22 and 23 without overly weakening it. Hopefully this is good enough!
llvm/llvm-project@046bd54 is the matching LLVM change.
@rustbot label: +llvm-main
…-name, r=folkertdev pretty-print: use inline asm's actual macro name `ExprKind::InlineAsm` was always printed as `asm!`, so `naked_asm!` was printed as `asm!` too. Use `asm_macro.macro_name()` in the AST and HIR pretty-printers to print the correct name.
…kruppe doc: use ptr::addr in offset_from docs `ptr::addr()` has been stable since Rust 1.84. Update the three `offset_from` docs to use it for address-only arithmetic across allocations, and remove the stale FIXME comments.
|
@bors r+ rollup=never p=5 |
This comment has been minimized.
This comment has been minimized.
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 acf6a00 (parent) -> be8e824 (this PR) Test differencesShow 2006 test diffsStage 1
Stage 2
Additionally, 1993 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 be8e82435eb04fbe75ed5286b52735366e160bed --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: acf6a00aff In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
|
Finished benchmarking commit (be8e824): comparison URL. Overall result: ✅ improvements - 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.3%, secondary -2.5%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesThis perf run didn't have relevant results for this metric. Binary sizeResults (primary 0.0%, secondary 0.0%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Bootstrap: 489.809s -> 488.088s (-0.35%) |
Successful merges:
OnceLockfor SGX argument storage #158182 (std: useOnceLockfor SGX argument storage)repr(simd)#158523 (Fix feature gate forrepr(simd))Arc::make_mut#158876 (Fix multiple logic bugs inArc::make_mut)Failed merges:
r? @ghost
Create a similar rollup