Skip to content

Conversation

@Zalathar
Copy link
Member

@Zalathar Zalathar commented Nov 27, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

thaliaarchi and others added 27 commits October 23, 2025 14:02
This addition allows an end-user to inspect whether the env clear value is set on a `Command` instance or not.

Discussed in:

- rust-lang#149070
- rust-lang/libs-team#194
v0 mangling can produce symbols with 'br' as a substring, leading to false positives for CHECK-NOT
mostly: `par` -> `per`
but also move some words around and hyphenate to (hopefully) make sentence a bit clearer
Implement `gather_bits`, `scatter_bits` functions on unsigned integers
Add tests to coretests
More robust stack protector testing

I've added some tests related to the stack protector. These tests were originally in the LLVM stack protector test project.
These tests were written for the "Stabilize stack-protector" proposal, and therefore removed the "stack-protector=basic" test option, as this stack protector was considered ineffective in Rust.
For the proposal, see: rust-lang#146369
For the discussion, see zulip: https://rust-lang.zulipchat.com/#narrow/channel/233931-t-compiler.2Fmajor-changes/topic/Proposal.20for.20Adapt.20Stack.20Protector.20for.20Ru.E2.80.A6.20compiler-team.23841

I have opened an issue to discuss the 'abi_mismatch' issue I encountered while writing tests for the coexistence of 'stack-protector' and 'safe-stack': rust-lang#149340

r? `@wesleywiser` (feel free to reassign)
cc `@nikic,` `@rcvalle,` `@davidtwco,` `@arielb1,` `@Darksonn,` `@Noratrieb,` `@SparrowLii`
…write-slice, r=Mark-Simulacrum

Stabilize `maybe_uninit_write_slice`

Stabilize feature `maybe_uninit_write_slice` (closes rust-lang#79995).

Note that this also const-stabilizes `<[MaybeUninit<_>]>::write_copy_of_slice`. That method depends on `<[_]>::copy_from_slice`, which is already const-stable, and `<[MaybeUninit<_>]>::assume_init_mut` which is now also stable.
Add a diagnostic attribute for special casing const bound errors for non-const impls

Somewhat of a follow-up to rust-lang#144194

My plan is to resolve

https://github.com/rust-lang/rust/blob/f4e19c68786211f3c3cf2593442629599678800a/compiler/rustc_hir_typeck/src/callee.rs#L907-913

but doing so without being able to mark impls the way I do in this PR wrould cause all nice diagnostics about for loops and pointer comparisons to just be a `*const u32 does not implement [const] PartialEq` errors.
…=Mark-Simulacrum

Add Command::get_env_clear

This addition allows an end-user to inspect whether the env clear value is set on a `Command` instance or not.

Discussed in:

- Tracking issue: rust-lang#149070 (partially closes)
- ACP: rust-lang/libs-team#194
…k-Simulacrum

num: Implement `uint_gather_scatter_bits` feature for unsigned integers

Feature gate: `#![feature(uint_gather_scatter_bits)]`
Tracking issue: rust-lang#149069
Accepted ACP: rust-lang/libs-team#695 (comment)

Implement `gather_bits`, `scatter_bits` functions on unsigned integers
Add tests to coretests

This implementation is a small improvement over the plain naive form (see the [solution sketch](rust-lang/libs-team#695)).
We only check the set bits in the mask instead of iterating over every bit.
…unk, r=Mark-Simulacrum

optimize `slice::Iter::next_chunk`

codegen for example (sourced from rust-lang#98326 (comment))
```rust
pub fn simd_sum_slow(arr: &[u32]) -> u32 {
    const STEP_SIZE: usize = 16;

    let mut result = [0; STEP_SIZE];

    let mut iter = arr.iter();

    while let Ok(c) = iter.next_chunk::<STEP_SIZE>() {
        for (&n, r) in c.iter().zip(result.iter_mut()) {
            *r += n;
        }
    }

    result.iter().sum()
}
```
goes from (znver4)

<details>
<summary>many asm</summary>

```assembly
simd_sum_slow:
	.cfi_startproc
	push rbp
	.cfi_def_cfa_offset 16
	push r15
	.cfi_def_cfa_offset 24
	push r14
	.cfi_def_cfa_offset 32
	push r13
	.cfi_def_cfa_offset 40
	push r12
	.cfi_def_cfa_offset 48
	push rbx
	.cfi_def_cfa_offset 56
	sub rsp, 240
	.cfi_def_cfa_offset 296
	.cfi_offset rbx, -56
	.cfi_offset r12, -48
	.cfi_offset r13, -40
	.cfi_offset r14, -32
	.cfi_offset r15, -24
	.cfi_offset rbp, -16
	lea r12, [rdi + 4*rsi]
	mov qword ptr [rsp - 32], 0
	mov dword ptr [rsp - 88], 0
	mov dword ptr [rsp - 100], 0
	mov dword ptr [rsp - 72], 0
	mov dword ptr [rsp - 96], 0
	mov dword ptr [rsp - 92], 0
	mov dword ptr [rsp - 52], 0
	mov dword ptr [rsp - 84], 0
	mov dword ptr [rsp - 80], 0
	mov dword ptr [rsp - 76], 0
	mov dword ptr [rsp - 44], 0
	mov dword ptr [rsp - 68], 0
	mov dword ptr [rsp - 64], 0
	mov dword ptr [rsp - 60], 0
	mov dword ptr [rsp - 56], 0
	mov dword ptr [rsp - 48], 0
	mov qword ptr [rsp + 224], r12
	cmp rdi, r12
	mov qword ptr [rsp + 96], rdi
	je .LBB12_2
	.p2align	4
.LBB12_3:
	lea r13, [rdi + 4]
	cmp r13, r12
	je .LBB12_4
	lea r15, [rdi + 8]
	cmp r15, r12
	je .LBB12_6
	lea r14, [rdi + 12]
	cmp r14, r12
	je .LBB12_8
	lea rbx, [rdi + 16]
	cmp rbx, r12
	je .LBB12_10
	lea r11, [rdi + 20]
	cmp r11, r12
	je .LBB12_12
	lea r10, [rdi + 24]
	cmp r10, r12
	je .LBB12_14
	lea r9, [rdi + 28]
	cmp r9, r12
	je .LBB12_16
	lea r8, [rdi + 32]
	cmp r8, r12
	je .LBB12_18
	lea rax, [rdi + 36]
	cmp rax, r12
	je .LBB12_20
	mov qword ptr [rsp - 120], rax
	lea rax, [rdi + 40]
	mov qword ptr [rsp - 112], rax
	cmp rax, r12
	je .LBB12_22
	lea rdx, [rdi + 44]
	cmp rdx, r12
	je .LBB12_24
	lea rbp, [rdi + 48]
	cmp rbp, r12
	je .LBB12_26
	mov qword ptr [rsp - 40], r9
	lea rcx, [rdi + 52]
	cmp rcx, r12
	je .LBB12_30
	lea r9, [rdi + 56]
	cmp r9, r12
	je .LBB12_32
	lea rax, [rdi + 60]
	cmp rax, r12
	mov qword ptr [rsp - 24], r9
	je .LBB12_34
	mov qword ptr [rsp + 88], rax
	lea rax, [rdi + 64]
	mov qword ptr [rsp - 8], rax
	mov dword ptr [rsp - 128], 0
	mov qword ptr [rsp - 16], rdi
	mov qword ptr [rsp + 56], r10
	lea r10, [rsp + 216]
	mov qword ptr [rsp + 40], r10
	mov qword ptr [rsp + 96], r13
	lea rax, [rsp + 208]
	mov qword ptr [rsp + 32], rax
	mov qword ptr [rsp + 72], rdx
	lea rsi, [rsp + 200]
	mov qword ptr [rsp + 48], rbx
	lea rbx, [rsp + 192]
	mov qword ptr [rsp + 80], rcx
	lea rcx, [rsp + 184]
	mov qword ptr [rsp + 64], rbp
	lea rdx, [rsp + 176]
	mov qword ptr [rsp + 16], r14
	lea r14, [rsp + 168]
	mov qword ptr [rsp + 24], r11
	lea r11, [rsp + 160]
	lea r9, [rsp + 152]
	lea r12, [rsp + 144]
	lea r13, [rsp + 136]
	lea rbp, [rsp + 128]
	mov qword ptr [rsp], r15
	lea r15, [rsp + 120]
	mov qword ptr [rsp + 8], r8
	lea r8, [rsp + 112]
	lea rdi, [rsp + 104]
	jmp .LBB12_39
	.p2align	4
.LBB12_2:
	mov qword ptr [rsp - 128], 0
	jmp .LBB12_37
	.p2align	4
.LBB12_4:
	mov eax, 1
	mov qword ptr [rsp - 128], rax
	jmp .LBB12_37
	.p2align	4
.LBB12_6:
	mov eax, 2
	mov qword ptr [rsp - 128], rax
	jmp .LBB12_36
.LBB12_8:
	mov eax, 3
	mov qword ptr [rsp - 128], rax
	jmp .LBB12_36
.LBB12_10:
	mov eax, 4
	mov qword ptr [rsp - 128], rax
	jmp .LBB12_36
.LBB12_12:
	mov eax, 5
	mov qword ptr [rsp - 128], rax
	jmp .LBB12_36
.LBB12_14:
	mov eax, 6
	mov qword ptr [rsp - 128], rax
	jmp .LBB12_36
.LBB12_16:
	mov eax, 7
	mov qword ptr [rsp - 128], rax
	jmp .LBB12_36
.LBB12_18:
	mov eax, 8
	mov qword ptr [rsp - 128], rax
	jmp .LBB12_36
.LBB12_20:
	mov eax, 9
	mov qword ptr [rsp - 128], rax
	jmp .LBB12_36
.LBB12_22:
	mov eax, 10
	mov qword ptr [rsp - 128], rax
	mov rdi, qword ptr [rsp - 120]
	jmp .LBB12_36
.LBB12_24:
	mov eax, 11
	mov qword ptr [rsp - 128], rax
	jmp .LBB12_27
.LBB12_26:
	mov eax, 12
	mov qword ptr [rsp - 128], rax
.LBB12_27:
	mov rsi, qword ptr [rsp - 112]
	mov rdi, qword ptr [rsp - 120]
	jmp .LBB12_36
.LBB12_30:
	mov rcx, rbp
	mov eax, 13
	mov qword ptr [rsp - 128], rax
	jmp .LBB12_35
.LBB12_32:
	mov rax, rcx
	mov rcx, rbp
	mov esi, 14
	mov qword ptr [rsp - 128], rsi
	jmp .LBB12_35
.LBB12_34:
	mov rax, rcx
	mov rcx, rbp
	mov esi, 15
	mov qword ptr [rsp - 128], rsi
.LBB12_35:
	mov rsi, qword ptr [rsp - 112]
	mov rdi, qword ptr [rsp - 120]
	mov r9, qword ptr [rsp - 40]
	.p2align	4
.LBB12_36:
	mov rbp, r13
.LBB12_37:
	mov r13, qword ptr [rsp - 24]
	mov qword ptr [rsp + 88], r13
	mov r13, qword ptr [rsp - 128]
	mov qword ptr [rsp + 216], r13
	mov r13b, 1
	mov dword ptr [rsp - 128], r13d
	mov qword ptr [rsp - 24], rax
	mov qword ptr [rsp + 80], rcx
	mov qword ptr [rsp + 64], rdx
	mov qword ptr [rsp + 72], rsi
	mov qword ptr [rsp - 112], rdi
	mov qword ptr [rsp - 120], r8
	mov qword ptr [rsp + 8], r9
	mov qword ptr [rsp - 40], r10
	mov qword ptr [rsp + 56], r11
	mov qword ptr [rsp + 24], rbx
	mov qword ptr [rsp + 48], r14
	mov qword ptr [rsp + 16], r15
	mov qword ptr [rsp], rbp
	mov eax, 0
	mov qword ptr [rsp - 16], rax
	mov qword ptr [rsp - 8], r12
	lea r10, [rsp + 208]
	mov qword ptr [rsp + 40], r10
	lea rax, [rsp + 200]
	mov qword ptr [rsp + 32], rax
	lea rsi, [rsp + 192]
	lea rbx, [rsp + 184]
	lea rcx, [rsp + 176]
	lea rdx, [rsp + 168]
	lea r14, [rsp + 160]
	lea r11, [rsp + 152]
	lea r9, [rsp + 144]
	lea r12, [rsp + 136]
	lea r13, [rsp + 128]
	lea rbp, [rsp + 120]
	lea r15, [rsp + 112]
	lea r8, [rsp + 104]
	lea rdi, [rsp + 232]
.LBB12_39:
	mov r10, qword ptr [rsp + 96]
	mov rax, qword ptr [rsp + 40]
	mov qword ptr [rax], r10
	mov rax, qword ptr [rsp + 32]
	mov r10, qword ptr [rsp]
	mov qword ptr [rax], r10
	mov rax, qword ptr [rsp + 16]
	mov qword ptr [rsi], rax
	mov rax, qword ptr [rsp + 48]
	mov qword ptr [rbx], rax
	mov rax, qword ptr [rsp + 24]
	mov qword ptr [rcx], rax
	mov rax, qword ptr [rsp + 56]
	mov qword ptr [rdx], rax
	mov rax, qword ptr [rsp - 40]
	mov qword ptr [r14], rax
	mov rax, qword ptr [rsp + 8]
	mov qword ptr [r11], rax
	mov rax, qword ptr [rsp - 120]
	mov qword ptr [r9], rax
	mov rax, qword ptr [rsp - 112]
	mov qword ptr [r12], rax
	mov rax, qword ptr [rsp + 72]
	mov qword ptr [r13], rax
	mov rax, qword ptr [rsp + 64]
	mov qword ptr [rbp], rax
	mov rax, qword ptr [rsp + 80]
	mov qword ptr [r15], rax
	mov rax, qword ptr [rsp - 24]
	mov qword ptr [r8], rax
	mov rax, qword ptr [rsp + 88]
	mov qword ptr [rdi], rax
	cmp byte ptr [rsp - 128], 0
	jne .LBB12_40
	mov rax, qword ptr [rsp - 32]
	mov rcx, qword ptr [rsp - 16]
	add eax, dword ptr [rcx]
	mov qword ptr [rsp - 32], rax
	mov rax, qword ptr [rsp + 216]
	mov ecx, dword ptr [rsp - 88]
	add ecx, dword ptr [rax]
	mov dword ptr [rsp - 88], ecx
	mov rax, qword ptr [rsp + 208]
	mov ecx, dword ptr [rsp - 100]
	add ecx, dword ptr [rax]
	mov dword ptr [rsp - 100], ecx
	mov rax, qword ptr [rsp + 200]
	mov ecx, dword ptr [rsp - 72]
	add ecx, dword ptr [rax]
	mov dword ptr [rsp - 72], ecx
	mov rax, qword ptr [rsp + 192]
	mov ecx, dword ptr [rsp - 96]
	add ecx, dword ptr [rax]
	mov dword ptr [rsp - 96], ecx
	mov rax, qword ptr [rsp + 184]
	mov ecx, dword ptr [rsp - 92]
	add ecx, dword ptr [rax]
	mov dword ptr [rsp - 92], ecx
	mov rax, qword ptr [rsp + 176]
	mov ecx, dword ptr [rsp - 52]
	add ecx, dword ptr [rax]
	mov dword ptr [rsp - 52], ecx
	mov rax, qword ptr [rsp + 168]
	mov ecx, dword ptr [rsp - 84]
	add ecx, dword ptr [rax]
	mov dword ptr [rsp - 84], ecx
	mov rax, qword ptr [rsp + 160]
	mov ecx, dword ptr [rsp - 80]
	add ecx, dword ptr [rax]
	mov dword ptr [rsp - 80], ecx
	mov rax, qword ptr [rsp + 152]
	mov ecx, dword ptr [rsp - 76]
	add ecx, dword ptr [rax]
	mov dword ptr [rsp - 76], ecx
	mov rax, qword ptr [rsp + 144]
	mov ecx, dword ptr [rsp - 44]
	add ecx, dword ptr [rax]
	mov dword ptr [rsp - 44], ecx
	mov rax, qword ptr [rsp + 136]
	mov ecx, dword ptr [rsp - 68]
	add ecx, dword ptr [rax]
	mov dword ptr [rsp - 68], ecx
	mov rax, qword ptr [rsp + 128]
	mov ecx, dword ptr [rsp - 64]
	add ecx, dword ptr [rax]
	mov dword ptr [rsp - 64], ecx
	mov rax, qword ptr [rsp + 120]
	mov ecx, dword ptr [rsp - 60]
	add ecx, dword ptr [rax]
	mov dword ptr [rsp - 60], ecx
	mov rax, qword ptr [rsp + 112]
	mov ecx, dword ptr [rsp - 56]
	add ecx, dword ptr [rax]
	mov dword ptr [rsp - 56], ecx
	mov rax, qword ptr [rsp + 104]
	mov ecx, dword ptr [rsp - 48]
	add ecx, dword ptr [rax]
	mov dword ptr [rsp - 48], ecx
	mov rdi, qword ptr [rsp - 8]
	mov r12, qword ptr [rsp + 224]
	cmp rdi, r12
	mov qword ptr [rsp + 96], rdi
	jne .LBB12_3
	jmp .LBB12_2
.LBB12_40:
	mov eax, dword ptr [rsp - 88]
	add eax, dword ptr [rsp - 32]
	mov ecx, dword ptr [rsp - 72]
	add ecx, dword ptr [rsp - 100]
	add ecx, eax
	mov edx, dword ptr [rsp - 92]
	add edx, dword ptr [rsp - 96]
	mov eax, dword ptr [rsp - 52]
	add eax, edx
	add eax, ecx
	mov ecx, dword ptr [rsp - 80]
	add ecx, dword ptr [rsp - 84]
	mov edx, dword ptr [rsp - 76]
	add edx, ecx
	mov ecx, dword ptr [rsp - 44]
	add ecx, edx
	add ecx, eax
	mov edx, dword ptr [rsp - 64]
	add edx, dword ptr [rsp - 68]
	mov eax, dword ptr [rsp - 60]
	add eax, edx
	mov edx, dword ptr [rsp - 56]
	add edx, eax
	mov eax, dword ptr [rsp - 48]
	add eax, edx
	add eax, ecx
	add rsp, 240
	.cfi_def_cfa_offset 56
	pop rbx
	.cfi_def_cfa_offset 48
	pop r12
	.cfi_def_cfa_offset 40
	pop r13
	.cfi_def_cfa_offset 32
	pop r14
	.cfi_def_cfa_offset 24
	pop r15
	.cfi_def_cfa_offset 16
	pop rbp
	.cfi_def_cfa_offset 8
	ret
```

</details>

to
```assembly
simd_sum_slow:
	.cfi_startproc
	xor eax, eax
	cmp rsi, 16
	jb .LBB12_4
	shl rsi, 2
	pxor xmm0, xmm0
	pxor xmm1, xmm1
	pxor xmm3, xmm3
	pxor xmm2, xmm2
	.p2align	4
.LBB12_2:
	movdqu xmm4, xmmword ptr [rdi]
	paddd xmm0, xmm4
	movdqu xmm4, xmmword ptr [rdi + 16]
	paddd xmm1, xmm4
	movdqu xmm4, xmmword ptr [rdi + 32]
	paddd xmm3, xmm4
	movdqu xmm4, xmmword ptr [rdi + 48]
	paddd xmm2, xmm4
	add rdi, 64
	add rsi, -64
	cmp rsi, 60
	ja .LBB12_2
	paddd xmm0, xmm3
	paddd xmm1, xmm2
	paddd xmm1, xmm0
	pshufd xmm0, xmm1, 238
	paddd xmm0, xmm1
	pshufd xmm1, xmm0, 85
	paddd xmm1, xmm0
	movd eax, xmm1
.LBB12_4:
	ret
```
Forbid `CHECK: br` and `CHECK-NOT: br` in codegen tests (suggest `br {{.*}}` instead)

`// CHECK-NOT: br` is fragile to false positives in mangled symbol names, while `// CHECK-NOT: br {{.*}}` is not. Remove and forbid the former in codegen tests, and suggest the latter.

cc rust-lang#149125 (comment) where this caused a CI failure due to a v0 mangled symbol containing `br` in a disambiguator/crate hash/something.
clarify float min/max behavios for NaNs and signed zeros

The first comment is internal, it only documents the intrinsics to more clearly say what they do.
This makes the currently implemented semantics more explicit, so one does not have to go look for the publicly exposed version of the operation to figure out what exactly should happen.

The second commit adds a NaN test to the doc comment for `min`/`max`, which matches what we already have for `minimum`/`maximum`.
…r=Mark-Simulacrum

Fix typo and clarify bootstrap change tracker entry

mostly: `par` -> `per`
but also move some words around and hyphenate to (hopefully) make sentence a bit clearer
Motor OS: make decode_error_kind more comprehensive

A minor refactoring of a Tier 3 target (Motor OS).
…=Kobzol

bootstrap: Miri now handles jemalloc like everything else

rust-lang#149252 made Miri work like clippy here, so I think this comment can be removed?
…0968, r=GuillaumeGomez

rustdoc: add regression test for rust-lang#140968

fixes rust-lang#140968
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-rustdoc-search Area: Rustdoc's search feature A-tidy Area: The tidy tool labels Nov 27, 2025
@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) 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 27, 2025
@Zalathar
Copy link
Member Author

Rollup of about 2/3 of the queue, to keep failure/perf triage from getting too out of hand.

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Nov 27, 2025

📌 Commit 8d6e349 has been approved by Zalathar

It is now in the queue for this repository.

@bors bors 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 27, 2025
@bors
Copy link
Collaborator

bors commented Nov 27, 2025

⌛ Testing commit 8d6e349 with merge a417515...

@bors
Copy link
Collaborator

bors commented Nov 27, 2025

☀️ Test successful - checks-actions
Approved by: Zalathar
Pushing a417515 to main...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Nov 27, 2025
@bors bors merged commit a417515 into rust-lang:main Nov 27, 2025
12 checks passed
@rustbot rustbot added this to the 1.93.0 milestone Nov 27, 2025
@github-actions
Copy link
Contributor

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 1be6b13 (parent) -> a417515 (this PR)

Test differences

Show 4469 test diffs

Stage 0

  • errors::verify_passes_abi_invalid_attribute_94: [missing] -> pass (J1)
  • errors::verify_passes_abi_of_91: pass -> [missing] (J1)
  • errors::verify_passes_abi_of_92: [missing] -> pass (J1)
  • errors::verify_passes_attr_application_struct_union_107: [missing] -> pass (J1)
  • errors::verify_passes_both_ffi_const_and_pure_50: pass -> [missing] (J1)
  • errors::verify_passes_custom_mir_phase_requires_dialect_139: [missing] -> pass (J1)
  • errors::verify_passes_deprecated_annotation_has_no_effect_76: [missing] -> pass (J1)
  • errors::verify_passes_deprecated_attribute_109: pass -> [missing] (J1)
  • errors::verify_passes_doc_alias_bad_location_20: [missing] -> pass (J1)
  • errors::verify_passes_doc_alias_malformed_24: [missing] -> pass (J1)
  • errors::verify_passes_doc_attr_expects_string_3: pass -> [missing] (J1)
  • errors::verify_passes_doc_auto_cfg_expects_hide_or_show_40: pass -> [missing] (J1)
  • errors::verify_passes_doc_auto_cfg_wrong_literal_39: pass -> [missing] (J1)
  • errors::verify_passes_doc_expect_str_16: [missing] -> pass (J1)
  • errors::verify_passes_doc_inline_conflict_32: [missing] -> pass (J1)
  • errors::verify_passes_doc_keyword_only_impl_29: pass -> [missing] (J1)
  • errors::verify_passes_doc_masked_not_extern_crate_self_35: [missing] -> pass (J1)
  • errors::verify_passes_doc_test_unknown_37: [missing] -> pass (J1)
  • errors::verify_passes_has_incoherent_inherent_impl_50: [missing] -> pass (J1)
  • errors::verify_passes_ignored_attr_with_macro_10: pass -> [missing] (J1)
  • errors::verify_passes_incorrect_target_99: pass -> [missing] (J1)
  • errors::verify_passes_inline_ignored_for_exported_102: pass -> [missing] (J1)
  • errors::verify_passes_inline_ignored_for_exported_103: [missing] -> pass (J1)
  • errors::verify_passes_lang_item_on_incorrect_target_82: pass -> [missing] (J1)
  • errors::verify_passes_macro_export_on_decl_macro_67: pass -> [missing] (J1)
  • errors::verify_passes_macro_only_attribute_63: [missing] -> pass (J1)
  • errors::verify_passes_missing_const_err_121: [missing] -> pass (J1)
  • errors::verify_passes_missing_lang_item_79: pass -> [missing] (J1)
  • errors::verify_passes_mixed_export_name_and_no_mangle_9: [missing] -> pass (J1)
  • errors::verify_passes_no_link_54: [missing] -> pass (J1)
  • errors::verify_passes_non_exhaustive_with_default_field_values_12: pass -> [missing] (J1)
  • errors::verify_passes_object_lifetime_err_104: [missing] -> pass (J1)
  • errors::verify_passes_rustc_legacy_const_generics_index_56: [missing] -> pass (J1)
  • errors::verify_passes_rustc_legacy_const_generics_only_55: [missing] -> pass (J1)
  • errors::verify_passes_rustc_lint_opt_ty_72: pass -> [missing] (J1)
  • errors::verify_passes_should_be_applied_to_fn_12: [missing] -> pass (J1)
  • errors::verify_passes_should_be_applied_to_static_14: pass -> [missing] (J1)
  • errors::verify_passes_should_be_applied_to_trait_14: [missing] -> pass (J1)
  • errors::verify_passes_unexportable_priv_item_134: pass -> [missing] (J1)
  • errors::verify_passes_unknown_external_lang_item_76: pass -> [missing] (J1)

Stage 1

  • check_attr::verify_passes_diagnostic_diagnostic_on_const_only_for_trait_impls_1: [missing] -> pass (J0)
  • errors::verify_passes_abi_of_91: pass -> [missing] (J0)
  • errors::verify_passes_abi_of_92: [missing] -> pass (J0)
  • errors::verify_passes_attr_application_struct_105: pass -> [missing] (J0)
  • errors::verify_passes_cannot_stabilize_deprecated_112: [missing] -> pass (J0)
  • errors::verify_passes_collapse_debuginfo_74: pass -> [missing] (J0)
  • errors::verify_passes_collapse_debuginfo_75: [missing] -> pass (J0)
  • errors::verify_passes_const_stable_not_stable_121: pass -> [missing] (J0)
  • errors::verify_passes_const_stable_not_stable_122: [missing] -> pass (J0)
  • errors::verify_passes_custom_mir_phase_requires_dialect_139: [missing] -> pass (J0)
  • errors::verify_passes_debug_visualizer_unreadable_64: [missing] -> pass (J0)
  • errors::verify_passes_deprecated_attribute_109: pass -> [missing] (J0)
  • errors::verify_passes_doc_alias_duplicated_21: pass -> [missing] (J0)
  • errors::verify_passes_doc_alias_not_an_alias_21: [missing] -> pass (J0)
  • errors::verify_passes_doc_attr_expects_string_4: [missing] -> pass (J0)
  • errors::verify_passes_doc_auto_cfg_expects_hide_or_show_40: pass -> [missing] (J0)
  • errors::verify_passes_doc_keyword_not_keyword_26: [missing] -> pass (J0)
  • errors::verify_passes_doc_masked_only_extern_crate_33: pass -> [missing] (J0)
  • errors::verify_passes_doc_test_literal_37: pass -> [missing] (J0)
  • errors::verify_passes_doc_test_unknown_37: [missing] -> pass (J0)
  • errors::verify_passes_doc_test_unknown_passes_45: pass -> [missing] (J0)
  • errors::verify_passes_duplicate_feature_err_119: pass -> [missing] (J0)
  • errors::verify_passes_inline_ignored_for_exported_102: pass -> [missing] (J0)
  • errors::verify_passes_inline_ignored_for_exported_103: [missing] -> pass (J0)
  • errors::verify_passes_lang_item_fn_with_track_caller_80: pass -> [missing] (J0)
  • errors::verify_passes_lang_item_on_incorrect_target_83: [missing] -> pass (J0)
  • errors::verify_passes_layout_align_87: [missing] -> pass (J0)
  • errors::verify_passes_layout_invalid_attribute_91: [missing] -> pass (J0)
  • errors::verify_passes_layout_of_90: [missing] -> pass (J0)
  • errors::verify_passes_macro_export_on_decl_macro_67: pass -> [missing] (J0)
  • errors::verify_passes_missing_stability_attr_113: pass -> [missing] (J0)
  • errors::verify_passes_no_link_54: [missing] -> pass (J0)
  • errors::verify_passes_repr_align_greater_than_target_max_61: [missing] -> pass (J0)
  • errors::verify_passes_rustc_force_inline_coro_66: pass -> [missing] (J0)
  • errors::verify_passes_rustc_legacy_const_generics_index_55: pass -> [missing] (J0)
  • errors::verify_passes_rustc_legacy_const_generics_index_negative_58: [missing] -> pass (J0)
  • errors::verify_passes_rustc_lint_opt_deny_field_access_74: [missing] -> pass (J0)
  • errors::verify_passes_rustc_lint_opt_ty_73: [missing] -> pass (J0)
  • errors::verify_passes_transparent_incompatible_108: pass -> [missing] (J0)
  • errors::verify_passes_unexportable_priv_item_134: pass -> [missing] (J0)
  • errors::verify_passes_unexportable_type_in_interface_133: pass -> [missing] (J0)
  • errors::verify_passes_unknown_external_lang_item_76: pass -> [missing] (J0)
  • errors::verify_passes_unknown_feature_alias_118: [missing] -> pass (J0)
  • errors::verify_passes_unknown_lang_item_83: pass -> [missing] (J0)
  • errors::verify_passes_unknown_lang_item_84: [missing] -> pass (J0)
  • errors::verify_passes_unused_multiple_72: [missing] -> pass (J0)
  • errors::verify_passes_useless_stability_111: [missing] -> pass (J0)
  • [assembly] tests/assembly-llvm/stack-protector/stack-protector-heuristics-effect-windows-32bit-2.rs#all: [missing] -> ignore (ignored when the pointer width is 64bit (64-bit table based SEH has slightly different behaviors than classic SEH)) (J1)
  • [assembly] tests/assembly-llvm/stack-protector/stack-protector-heuristics-effect-windows-64bit-2.rs#all: [missing] -> ignore (only executed when the target environment is msvc) (J1)
  • [assembly] tests/assembly-llvm/stack-protector/stack-protector-heuristics-effect-windows-64bit-2.rs#strong: [missing] -> ignore (only executed when the target environment is msvc) (J1)

Stage 2

  • [assembly] tests/assembly-llvm/stack-protector/stack-protector-heuristics-effect-windows-64bit-2.rs#all: [missing] -> pass (J2)
  • [assembly] tests/assembly-llvm/stack-protector/stack-protector-heuristics-effect-windows-64bit-2.rs#none: [missing] -> ignore (ignored when the pointer width is 32bit (64-bit table based SEH has slightly different behaviors than classic SEH)) (J3)
  • [assembly] tests/assembly-llvm/stack-protector/stack-protector-heuristics-effect-windows-64bit-2.rs#strong: [missing] -> ignore (ignored when the pointer width is 32bit (64-bit table based SEH has slightly different behaviors than classic SEH)) (J3)
  • [assembly] tests/assembly-llvm/stack-protector/stack-protector-heuristics-effect-windows-32bit-2.rs#missing: [missing] -> ignore (ignored when the pointer width is 64bit (64-bit table based SEH has slightly different behaviors than classic SEH)) (J4)
  • [assembly] tests/assembly-llvm/stack-protector/stack-protector-heuristics-effect-windows-32bit-2.rs#strong: [missing] -> ignore (ignored when the pointer width is 64bit (64-bit table based SEH has slightly different behaviors than classic SEH)) (J4)
  • [assembly] tests/assembly-llvm/stack-protector/stack-protector-heuristics-effect-2.rs#all: [missing] -> ignore (ignored when the target vendor is Apple (slightly different policy on stack protection of arrays)) (J5)
  • [assembly] tests/assembly-llvm/stack-protector/stack-protector-heuristics-effect-2.rs#missing: [missing] -> ignore (ignored when the target vendor is Apple (slightly different policy on stack protection of arrays)) (J5)
  • [assembly] tests/assembly-llvm/stack-protector/stack-protector-heuristics-effect-windows-64bit-2.rs#strong: [missing] -> ignore (only executed when the target environment is msvc) (J6)
  • [assembly] tests/assembly-llvm/stack-protector/stack-protector-heuristics-effect-windows-32bit-2.rs#all: [missing] -> pass (J7)
  • num::u128::test_scatter_bits: [missing] -> pass (J8)

(and 544 additional test diffs)

Additionally, 3825 doctest diffs were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard a4175159da185130408f71d7aa7e9bff0d455c24 --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. x86_64-rust-for-linux: 2461.1s -> 3045.7s (+23.8%)
  2. dist-x86_64-apple: 8653.2s -> 6748.5s (-22.0%)
  3. x86_64-gnu-tools: 3077.5s -> 3648.2s (+18.5%)
  4. x86_64-gnu-aux: 6224.5s -> 7301.0s (+17.3%)
  5. aarch64-gnu-llvm-20-2: 2156.7s -> 2507.4s (+16.3%)
  6. pr-check-1: 1641.8s -> 1877.6s (+14.4%)
  7. aarch64-apple: 8967.8s -> 7688.9s (-14.3%)
  8. i686-gnu-2: 5536.6s -> 6223.9s (+12.4%)
  9. i686-gnu-nopt-1: 7432.4s -> 8254.3s (+11.1%)
  10. dist-aarch64-apple: 7402.0s -> 6603.1s (-10.8%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#147115 More robust stack protector testing baf4094a159ca6b414412bbbecc4623695eaeb87 (link)
#148048 Stabilize maybe_uninit_write_slice 9e3bfe4b460fc7ac58ce4590324912f81a09d6eb (link)
#148641 Add a diagnostic attribute for special casing const bound e… 25c3e0d3f2ae149bbe0d031561b5dde873a6de26 (link)
#149074 Add Command::get_env_clear b96906f396db60f263f26e3d9cdd6ee45dbba9a6 (link)
#149097 num: Implement uint_gather_scatter_bits feature for unsig… 050262eb5c40f9d8e550472400533c8dd94ab6f3 (link)
#149131 optimize slice::Iter::next_chunk 4154d9479d61199ae237adebaf75a6e1359df518 (link)
#149190 Forbid CHECK: br and CHECK-NOT: br in codegen tests (su… f13f8776b67d3d9073897560fbecb35e4245eb4b (link)
#149239 clarify float min/max behavios for NaNs and signed zeros cc420e826d3d1e31c47fc36d6a6a50e7ddca2818 (link)
#149243 Fix typo and clarify bootstrap change tracker entry fde437a7eaec15979c2a41d5edc0bc3afe3471a2 (link)
#149301 Motor OS: make decode_error_kind more comprehensive f741c406dc01faf4dc05000eddd5083e0d65f4b5 (link)
#149306 bootstrap: Miri now handles jemalloc like everything else dab3a83742f043671b68d223b6fa4df12db14fe5 (link)
#149325 rustdoc: add regression test for #140968 4b106a7f2127a5dcc48d5c90d1ba60107f7aab36 (link)

previous master: 1be6b13be7

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (a417515): comparison URL.

Overall result: ❌✅ regressions and improvements - no action needed

@rustbot label: -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
0.2% [0.1%, 0.2%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.2% [-0.2%, -0.2%] 1
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary 0.7%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.7% [0.7%, 0.7%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.7% [0.7%, 0.7%] 1

Cycles

Results (primary 2.8%, secondary 2.6%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
2.8% [2.4%, 3.3%] 2
Regressions ❌
(secondary)
2.6% [2.6%, 2.6%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 2.8% [2.4%, 3.3%] 2

Binary size

Results (primary 0.0%, secondary 0.0%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.0% [0.0%, 0.0%] 4
Regressions ❌
(secondary)
0.0% [0.0%, 0.0%] 34
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.0% [0.0%, 0.0%] 4

Bootstrap: 468.01s -> 472.621s (0.99%)
Artifact size: 386.86 MiB -> 386.88 MiB (0.00%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-rustdoc-search Area: Rustdoc's search feature A-tidy Area: The tidy tool merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.