Skip to content

Rollup of 9 pull requests - #160774

Merged
rust-bors[bot] merged 22 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-T3y1It9
Aug 9, 2026
Merged

Rollup of 9 pull requests#160774
rust-bors[bot] merged 22 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-T3y1It9

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Contributor

Successful merges:

r? @ghost

Create a similar rollup

Walnut356 and others added 22 commits July 24, 2026 07:11
* Make `char::is_default_ignorable` unstably public
* Add tracking issue

Co-authored-by: Jules Bertholet <jules@bertholet.email>
…Simulacrum

Introduce a `PinSafePointer` trait that generalizes `PinCoerceUnsized`

This PR renames `PinCoerceUnsized` to `PinSafePointer` and adds several new safety requirements about the implementations of various safe traits.

Closes: rust-lang#152667
Closes: rust-lang#147794

~~With this merged, the only remaining soundness issues with `Pin` are:~~
* rust-lang#134407
* The fact that `CoercePointee` may be implemented on `Pin<LocalType>` in downstream crates. (unstable only)

For your convenience here are the docs for the new trait:

# `PinSafePointer`

Trait that indicates that this is a pointer that does not misbehave when combined with `Pin`.

Note that for backwards compatibility reasons, it is possible to create a `Pin<P>` for pointer types `P` that do not implement this trait. However, this can only be done safely if `<P as Deref>::Target` implements `Unpin`, which means that pinning has no effect.

# Safety

Types that implement this trait must not provide "malicious" implementations of any safe traits used by `Pin`.

## The pointer must always reference the same object

Calls to [`deref`]/[`deref_mut`] on the same `Pin<P>` instance must always refer to the same object. That is, the address returned by these methods must not change. This applies even if the pointer type is moved.

Furthermore, if the pointer type can participate in unsizing coercions or dynamic dispatch, then these coercions must also not change the underlying concrete type. Here, the concrete type of a trait object is the type that the vtable corresponds to. The concrete type of a slice is an array of the same element type and the length specified in the metadata. The concrete type of a sized type is the type itself.

As an example, after unsizing coercing a pinned pointer, `deref_mut` must not return a `#[repr(transparent)]` wrapper around the value it referenced before being unsized, even if the address is unchanged.

## The pointer must not move its pointee

The [`deref_mut`] method and the pointer type's destructor are called with a `&mut self` receiver, but they must behave as-if it was a `self: Pin<&mut Self>` receiver. That is, they must not move out of the underlying value.

As an example, `deref_mut` must not invoke `swap` on the inner value.

## Shared access to the pointer

If this pointer type uses `&P` references as evidence that this value is not pinned, then it must not treat the `&self` argument passed to [`Clone`] or the formatting traits (`fmt::Debug`, `fmt::Display`, `fmt::Pointer`) as such evidence.

As an example, given a `Pin<Arc<T>>` there is no way to obtain an `&Arc<T>` (note that `Deref` just gives a `&T`). Because of this, the [`Arc`] type can assume that an `&Arc<T>` value can only exist if the `T` is not pinned, which justifies the soundness of the [`Arc::get_mut`] method.

## Cloning pinned pointers

When a `Pin<P>` is cloned, the `P` pointer value returned by `clone` is passed to [`Pin::new_unchecked`]. The implementation of [`Clone`] must return a value such that this is sound.

For example, when a `Pin<&T>` is cloned, the resulting `&T` points at the same value. The value is known to be pinned since a `Pin<&T>` to it exists, so it is safe to wrap the `&T` returned by `clone` in `Pin`.

[`deref`]: https://doc.rust-lang.org/stable/core/ops/trait.Deref.html#tymethod.deref
[`deref_mut`]: https://doc.rust-lang.org/stable/core/ops/trait.DerefMut.html#tymethod.deref_mut
[`clone`]: https://doc.rust-lang.org/stable/core/clone/trait.Clone.html#tymethod.clone
[`Clone`]: https://doc.rust-lang.org/stable/core/clone/trait.Clone.html
[`Arc`]: https://doc.rust-lang.org/stable/std/sync/struct.Arc.html
[`Arc::get_mut`]: https://doc.rust-lang.org/stable/std/sync/struct.Arc.html#method.get_mut
[`Pin::new_unchecked`]: https://doc.rust-lang.org/stable/std/pin/struct.Pin.html#method.new_unchecked

r? lcnr
Apply str debugger visualizer to `*const str`, `*mut str` and `Box<str>`

Fairly straightforward. Note that the MSVC changes very likely aren't exercised by CI. My GSoC project is actively working on fixing that, but in the meantime i can personally verify that it works (note that the `ref$<str$> *` type name confirms this is MSVC):

<img width="318" height="138" alt="image" src="https://github.com/user-attachments/assets/fd868f16-d9a5-438a-a155-a429771bf525" />
…st-async-return-future, r=estebank

Suggest add async for function sig with return expr in body

Fixes rust-lang#159495

r? @estebank
…ewise-contains, r=joboet

Optimize slice::contains for one-byte BytewiseEq types

add optimized searches for NonZeroI8, option<NonZeroI8> ordering, and other one-byte types
…le, r=Mark-Simulacrum

Make `char::is_default_ignorable` unstably public

Similar to rust-lang#154849; this function is used in the implementation of `char::escape_debug()`, and there's no reason to force crates to duplicate a data table that std has to ship anyway.

I'll add a tracking issue if this is approved.

(I'll do the other data tables from rust-lang#155527 in separate PRs.)

@rustbot label A-Unicode T-libs-api

Tracking issue: rust-lang#160583

r? @Mark-Simulacrum
…=JonathanBrouwer

rustc_passes: lint unused `#[path]` attributes on inline modules

Closes rust-lang#157260.

This PR emits the `unused_attributes` lint for `#[path]` attributes on inline modules when the attribute is unused.

It also adds UI tests covering both linted and non-linted cases.

r? @theemathas
…1, r=GuillaumeGomez

Rename more diagnostic files to `diagnostics.rs`

Renaming diagnostics files to all be `diagnostics.rs`, per the decision in rust-lang/compiler-team#1003
PR was created by doing a file rename using the editor actions of my IDE, and then running `./x fmt`

r? @GuillaumeGomez @nnethercote
Whoever of you gets to it first :)
…r=GuillaumeGomez

Merge `rustc_lint/lints.rs` into `diagnostics.rs`

Renaming diagnostics files to all be diagnostics.rs, per the decision in rust-lang/compiler-team#1003

r? @GuillaumeGomez
…ostics, r=GuillaumeGomez

Merge `rustc_attr_parsing/session_diagnostics.rs` into `diagnostics.rs`

Renaming diagnostics files to all be diagnostics.rs, per the decision in rust-lang/compiler-team#1003

r? @GuillaumeGomez
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Aug 8, 2026
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) 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. labels Aug 8, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Contributor Author

@bors r+ p=5

Trying commonly failed jobs
@bors try jobs=dist-various-1,test-various,x86_64-gnu-aux,x86_64-gnu-llvm-21-3,x86_64-msvc-1,aarch64-apple-,x86_64-mingw-1,i686-msvc-

@rust-bors

rust-bors Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 3da16bb has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-bors rust-bors Bot 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 Aug 8, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Aug 8, 2026
Rollup of 9 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-*
@rust-bors

This comment has been minimized.

@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job optional-x86_64-gnu-autodiff failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
46 
+ error[E0658]: macro attributes on statements are unstable
+   --> $DIR/autodiff_illegal.rs:49:5
+    |
+ LL |     #[autodiff_forward(df7, Dual)]
+    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+    |
+    = note: see issue #54727 <https://github.com/rust-lang/rust/issues/54727> for more information
+    = help: add `#![feature(proc_macro_hygiene)]` to the crate attributes to enable
+    = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
+ 
47 error: autodiff must be applied to function
48   --> $DIR/autodiff_illegal.rs:50:5
49    |

50 LL |     let mut x = 5;
51    |     ^^^^^^^^^^^^^^
52 
+ error[E0658]: macro attributes on expressions are unstable
+   --> $DIR/autodiff_illegal.rs:53:5
+    |
+ LL |     #[autodiff_forward(df7, Dual)]
+    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+    |
+    = note: see issue #54727 <https://github.com/rust-lang/rust/issues/54727> for more information
+    = help: add `#![feature(proc_macro_hygiene)]` to the crate attributes to enable
+    = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
+ 
53 error: autodiff must be applied to function
54   --> $DIR/autodiff_illegal.rs:54:5
55    |

56 LL |     x = x + 3;
57    |     ^
58 
+ error[E0658]: macro attributes on statements are unstable
+   --> $DIR/autodiff_illegal.rs:58:5
+    |
+ LL |     #[autodiff_forward(df7, Dual)]
+    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+    |
+    = note: see issue #54727 <https://github.com/rust-lang/rust/issues/54727> for more information
+    = help: add `#![feature(proc_macro_hygiene)]` to the crate attributes to enable
+    = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
+ 
59 error: autodiff must be applied to function
60   --> $DIR/autodiff_illegal.rs:59:5
61    |

124 LL | #[autodiff_reverse(df21, Active, Duplicated)]
125    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
126 
- error: aborting due to 18 previous errors
+ error: aborting due to 21 previous errors
128 
---
-   --> /checkout/tests/ui/autodiff/autodiff_illegal.rs:58:5
+ error[E0658]: macro attributes on statements are unstable
+   --> $DIR/autodiff_illegal.rs:49:5
+    |
+ LL |     #[autodiff_forward(df7, Dual)]
+    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+    |
+    = note: see issue #54727 <https://github.com/rust-lang/rust/issues/54727> for more information
+    = help: add `#![feature(proc_macro_hygiene)]` to the crate attributes to enable
+    = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
+ 
+ error[E0658]: macro attributes on expressions are unstable
+   --> $DIR/autodiff_illegal.rs:53:5
+    |
+ LL |     #[autodiff_forward(df7, Dual)]
+    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+    |
+    = note: see issue #54727 <https://github.com/rust-lang/rust/issues/54727> for more information
+    = help: add `#![feature(proc_macro_hygiene)]` to the crate attributes to enable
+    = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
+ 
+ error[E0658]: macro attributes on statements are unstable
+   --> $DIR/autodiff_illegal.rs:58:5
+    |
+ LL |     #[autodiff_forward(df7, Dual)]
+    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+    |
+    = note: see issue #54727 <https://github.com/rust-lang/rust/issues/54727> for more information
+    = help: add `#![feature(proc_macro_hygiene)]` to the crate attributes to enable
+    = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
+ 
+ error: aborting due to 21 previous errors


The actual stderr differed from the expected stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args autodiff/autodiff_illegal.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/autodiff/autodiff_illegal.rs" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2" "--target=x86_64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/autodiff/autodiff_illegal" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers"
stdout: none
--- stderr -------------------------------
error[E0658]: attributes on expressions are experimental
##[error]  --> /checkout/tests/ui/autodiff/autodiff_illegal.rs:53:5
   |
LL |     #[autodiff_forward(df7, Dual)]
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: see issue #15701 <https://github.com/rust-lang/rust/issues/15701> for more information
   = help: add `#![feature(stmt_expr_attributes)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error: Duplicated can not be used for this type
##[error]  --> /checkout/tests/ui/autodiff/autodiff_illegal.rs:14:14
   |
LL | pub fn f1(x: f64) {
---

error: Dual can not be used in Reverse Mode
##[error]  --> /checkout/tests/ui/autodiff/autodiff_illegal.rs:34:1
   |
LL | #[autodiff_reverse(df5, Dual)]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: Duplicated can not be used in Forward Mode
##[error]  --> /checkout/tests/ui/autodiff/autodiff_illegal.rs:41:1
   |
---

error[E0658]: macro attributes on statements are unstable
##[error]  --> /checkout/tests/ui/autodiff/autodiff_illegal.rs:49:5
   |
LL |     #[autodiff_forward(df7, Dual)]
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: see issue #54727 <https://github.com/rust-lang/rust/issues/54727> for more information
   = help: add `#![feature(proc_macro_hygiene)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error: autodiff must be applied to function
##[error]  --> /checkout/tests/ui/autodiff/autodiff_illegal.rs:50:5
   |
LL |     let mut x = 5;
   |     ^^^^^^^^^^^^^^

error[E0658]: macro attributes on expressions are unstable
##[error]  --> /checkout/tests/ui/autodiff/autodiff_illegal.rs:53:5
   |
LL |     #[autodiff_forward(df7, Dual)]
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: see issue #54727 <https://github.com/rust-lang/rust/issues/54727> for more information
   = help: add `#![feature(proc_macro_hygiene)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error: autodiff must be applied to function
##[error]  --> /checkout/tests/ui/autodiff/autodiff_illegal.rs:54:5
   |
LL |     x = x + 3;
   |     ^

error[E0658]: macro attributes on statements are unstable
##[error]  --> /checkout/tests/ui/autodiff/autodiff_illegal.rs:58:5
   |
LL |     #[autodiff_forward(df7, Dual)]
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: see issue #54727 <https://github.com/rust-lang/rust/issues/54727> for more information
   = help: add `#![feature(proc_macro_hygiene)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error: autodiff must be applied to function
##[error]  --> /checkout/tests/ui/autodiff/autodiff_illegal.rs:59:5
   |
LL |     let add_one_v2 = |x: u32| -> u32 { x + 1 };
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: autodiff requires at least a name and mode
##[error]  --> /checkout/tests/ui/autodiff/autodiff_illegal.rs:65:1
   |
---
   |
LL | fn fn_exists() {}
   | -------------- previous definition of the value `fn_exists` here
...
LL | #[autodiff_reverse(fn_exists, Active)]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `fn_exists` redefined here
   |
   = note: `fn_exists` must be defined only once in the value namespace of this module

error: did not recognize Activity: `Reverse`
##[error]  --> /checkout/tests/ui/autodiff/autodiff_illegal.rs:95:26
   |
LL | #[autodiff_reverse(df13, Reverse)]
   |                          ^^^^^^^

error: invalid return activity Active in Forward Mode
##[error]  --> /checkout/tests/ui/autodiff/autodiff_illegal.rs:131:1
   |
LL | #[autodiff_forward(df19, Dual, Active)]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: invalid return activity Dual in Reverse Mode
##[error]  --> /checkout/tests/ui/autodiff/autodiff_illegal.rs:137:1
   |
LL | #[autodiff_reverse(df20, Active, Dual)]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: invalid return activity Duplicated in Reverse Mode
##[error]  --> /checkout/tests/ui/autodiff/autodiff_illegal.rs:144:1
   |
LL | #[autodiff_reverse(df21, Active, Duplicated)]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to 21 previous errors

Some errors have detailed explanations: E0428, E0658.
---
[TIMING:end] test::Ui { test_compiler: Compiler { stage: 2, host: x86_64-unknown-linux-gnu, forced_compiler: false }, target: x86_64-unknown-linux-gnu } -- 0.000

1 command(s) did not execute successfully:

  - env -u CARGO DOC_RUST_LANG_ORG_CHANNEL="https://doc.rust-lang.org/nightly" LD_LIBRARY_PATH="" RUSTC="/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/rustc" RUSTC_BOOTSTRAP="1" RUSTC_FORCE_RUSTC_VERSION="compiletest" RUST_TEST_THREADS="4" RUST_TEST_TMPDIR="/checkout/obj/build/tmp" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools-bin/compiletest" "--stage" "2" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--minicore-path" "/checkout/tests/auxiliary/minicore.rs" "--src-root" "/checkout" "--src-test-suite-root" "/checkout/tests/ui" "--build-root" "/checkout/obj/build" "--build-test-suite-root" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui" "--sysroot-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2" "--suite" "ui" "--mode" "ui" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/build/bin/FileCheck" "--default-codegen-backend" "llvm" "--has-enzyme" "--optimize-tests" "--host-rustcflags" "-Crpath" "--host-rustcflags" "-Cdebuginfo=0" "--host-rustcflags" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath" "--target-rustcflags" "-Cdebuginfo=0" "--target-rustcflags" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--python" "/usr/bin/python3" "autodiff" "feature-gates/feature-gate-autodiff.rs" "--verbose-run-make-subprocess-output" "--with-rustc-debug-assertions" "--with-std-debug-assertions" "--jobs" "4" "--llvm-version" "23.1.0-rust-1.99.0-nightly" "--llvm-components" "aarch64 aarch64asmparser aarch64codegen aarch64desc aarch64disassembler aarch64info aarch64utils abi 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 cas cfguard cgdata codegen codegentypes core coroutines coverage csky cskyasmparser cskycodegen cskydesc cskydisassembler cskyinfo debuginfobtf debuginfocodeview debuginfodwarf debuginfodwarflowlevel debuginfogsym debuginfologicalview debuginfomsf debuginfopdb demangle dlltooldriver dtlto 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 plugins 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 supportlsp 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" "--cc" "" "--cxx" "" "--cflags" "" "--cxxflags" "" "--channel" "nightly" "--git-hash" "--nightly-branch" "main" "--git-merge-commit-email" "bors@rust-lang.org" (failure_mode=Exit)
Bootstrap failed while executing `test --stage 2 --no-fail-fast tests/codegen-llvm/autodiff tests/pretty/autodiff tests/ui/autodiff tests/ui/feature-gates/feature-gate-autodiff.rs`
Currently active steps:
Build completed unsuccessfully in 0:53:56
  local time: Sat Aug  8 22:42:54 UTC 2026
  network time: Sat, 08 Aug 2026 22:42:55 GMT

Important

For more information how to resolve CI failures of this job, visit this link.

@rust-bors

rust-bors Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: ac81f06 (ac81f062c518e5c535718781c744afdd924f4a5c)
Base parent: 771916f (771916f9028e7fe56d2685f2c4f698de5d7d6a45)

@rust-bors rust-bors Bot added merged-by-bors This PR was explicitly merged by bors. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Aug 9, 2026
@rust-bors

rust-bors Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 6m 19s
Pushing 4667d75 to main...

@rust-timer

Copy link
Copy Markdown
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#156935 Introduce a PinSafePointer trait that generalizes `PinCoe… 714a9401708f7362212ba02ce7e067bfe870b2d9 (link)
#159834 Apply str debugger visualizer to *const str, *mut str a… d4dd1f771da6d575f4a23513371444afc29ffb27 (link)
#160663 Suggest add async for function sig with return expr in body fb8e8095b762d797e1dbf213af6c98c62e0e050a (link)
#160732 Optimize slice::contains for one-byte BytewiseEq types 5e15c0a80a5fa37f83d176c6bd4564123832dacd (link)
#157944 Make char::is_default_ignorable unstably public 380580ac9a9bed914ca961241feca721458c8bad (link)
#158835 rustc_passes: lint unused #[path] attributes on inline mo… a3d850ca2ca4d81093ae87f2fbe38378404afec4 (link)
#160754 Rename more diagnostic files to diagnostics.rs 5ff30ed6456d3ba0c44f7fc032482587b957ab0d (link)
#160755 Merge rustc_lint/lints.rs into diagnostics.rs 84d9202b2342b20652b2186dae0d5d4e3c8b6e86 (link)
#160757 Merge rustc_attr_parsing/session_diagnostics.rs into `dia… 32136cb425e02a0b87e5d9053a3dba59d42c10c5 (link)

previous master: 771916f902

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-log-analyzer

Copy link
Copy Markdown
Collaborator

A job failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
Downloading metrics of job pr-check-1
Downloading metrics of job pr-check-2
Downloading metrics of job tidy
Downloading metrics of job test-various
Downloading metrics of job x86_64-rust-for-linux
Downloading metrics of job x86_64-gnu
Downloading metrics of job x86_64-gnu-parallel-frontend
Downloading metrics of job x86_64-gnu-stable
Downloading metrics of job x86_64-gnu-aux
Downloading metrics of job x86_64-gnu-debug
Downloading metrics of job x86_64-gnu-distcheck
Downloading metrics of job x86_64-gnu-llvm-21-1
Downloading metrics of job x86_64-gnu-llvm-21-2
Downloading metrics of job x86_64-gnu-llvm-21-3
Downloading metrics of job x86_64-gnu-llvm-22-1
Downloading metrics of job x86_64-gnu-llvm-22-2
Downloading metrics of job x86_64-gnu-llvm-22-3
Downloading metrics of job x86_64-gnu-nopt
Downloading metrics of job x86_64-gnu-tools
Downloading metrics of job x86_64-gnu-miri
Downloading metrics of job optional-x86_64-gnu-autodiff
Did not find metrics for job `optional-x86_64-gnu-autodiff` at `771916f9028e7fe56d2685f2c4f698de5d7d6a45`: http status: 404.
Maybe it was newly added?
Error: http status: 404
##[error]Process completed with exit code 1.
Post job cleanup.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (4667d75): 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.6% [0.6%, 0.6%] 2
Improvements ✅
(primary)
-0.4% [-0.4%, -0.3%] 2
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -0.4% [-0.4%, -0.3%] 2

Max RSS (memory usage)

Results (secondary 0.3%)

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

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
0.8% [0.4%, 2.3%] 12
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-6.2% [-6.2%, -6.2%] 1
All ❌✅ (primary) - - 0

Cycles

Results (secondary 0.5%)

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

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
1.3% [0.4%, 9.3%] 13
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.9% [-1.7%, -0.6%] 7
All ❌✅ (primary) - - 0

Binary size

Results (primary 0.2%, secondary 0.2%)

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

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

Bootstrap: 458.289s -> 458.83s (0.12%)
Artifact size: 398.65 MiB -> 398.59 MiB (-0.01%)

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

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants