)]}'
{
  "log": [
    {
      "commit": "c33d8f3b5a50b56466998e8c5ed8a077d2caed84",
      "tree": "4b842f5627d0c1fe48d3730e216274e782590500",
      "parents": [
        "d8df82673d5911b6112a85bf91d9adefb2c66a1a",
        "f963b51de80a311598759cd55cd1c47959534201"
      ],
      "author": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Thu Sep 03 13:35:45 2026 +0000"
      },
      "committer": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Thu Sep 03 13:35:45 2026 +0000"
      },
      "message": "Auto merge of #162229 - JonathanBrouwer:rollup-pXEadbd, r\u003dJonathanBrouwer\n\nRollup of 25 pull requests\n\nSuccessful merges:\n\n - rust-lang/rust#161694 (add `Complex` ABI run-make test)\n - rust-lang/rust#162014 (Move more `rustdoc-html` tests using `--test` into the right folder)\n - rust-lang/rust#162164 (Revert \"Implement Debug for C-like enums with a concatenated string\")\n - rust-lang/rust#160564 (volatile: allow accesses to non-AM memory to trap)\n - rust-lang/rust#161579 (suggest calling a fn item used as the iterator of a `for` loop)\n - rust-lang/rust#162044 (coverage: Resolve spans to file-coordinates in a separate step)\n - rust-lang/rust#162120 (Introduce `PerOwnerLoweringState`)\n - rust-lang/rust#162132 (std: improve safety documentation in UNIX stack overflow code)\n - rust-lang/rust#162151 (Test itanium mangling of `f16` and `f128`)\n - rust-lang/rust#162162 (Don\u0027t special-case `!` in stability checks anymore)\n - rust-lang/rust#162181 (Remove wrong UnusedBraces lint for iterator loop in edition 2024 )\n - rust-lang/rust#162187 (Rename `thir::ExprKind::Use` to `ValueExpr`)\n - rust-lang/rust#158401 (mgca: Don\u0027t ICE when evaluating ValTrees that contain error constants)\n - rust-lang/rust#159873 (fuchsia: Add safestack as a supported sanitizer for x86_64 fuchsia)\n - rust-lang/rust#161135 (Add `f16` and `f128` inline ASM support for PowerPC)\n - rust-lang/rust#161847 (Preserve visibility in nested macro import suggestions)\n - rust-lang/rust#161972 (Improve tests for `#[track_caller]` in async)\n - rust-lang/rust#162008 (Render the `box` pattern removal diagnostic more actionable \u0026 remove `box` expression recovery)\n - rust-lang/rust#162065 (std: don\u0027t reference `libc::O_NOFOLLOW` on VxWorks in `set_perm_nofollow`)\n - rust-lang/rust#162076 (docs(num): clarify conditions under which error occurs in `impl TryFrom\u003cint\u003e for int`)\n - rust-lang/rust#162111 (Update mailmap for Will Crichton and Petr Hosek)\n - rust-lang/rust#162152 (Revert \"retrieve supported GCC targets from the sysroot\")\n - rust-lang/rust#162153 (Prefer `LLVMGetVersion` for runtime info)\n - rust-lang/rust#162168 (fix ICE in project_goals/inherent)\n - rust-lang/rust#162171 (Explain LoongArch f16 NaN-boxing in inline asm)\n\n\n\n"
    },
    {
      "commit": "f963b51de80a311598759cd55cd1c47959534201",
      "tree": "f35f0ba2ffb08b5744765b8ee7188d3273681152",
      "parents": [
        "2f93cbee86a430f5f3788c61d513a2573b2cd1c5",
        "67bf3ebc32e21bdc9f6ac4639f3b1fad4509e885"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Thu Sep 03 12:43:13 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 12:43:13 2026 +0200"
      },
      "message": "Rollup merge of #162171 - heiher:loong-f16-nan-box, r\u003dfolkertdev\n\nExplain LoongArch f16 NaN-boxing in inline asm\n\nThe psABI leaves the upper bits of a widened f16 value undefined, so the NaN-boxing here isn\u0027t ABI-required. It\u0027s intentional: it matches LLVM\u0027s own codegen and avoids an f16 value being mistaken for a valid f32 value. Update the comment to reflect this.\n\nr? @folkertdev\n"
    },
    {
      "commit": "2f93cbee86a430f5f3788c61d513a2573b2cd1c5",
      "tree": "d38f5f29af6146e883d2532028d08efdb504e463",
      "parents": [
        "79ed8508314620966aed59f91dffd4ef7ce96a78",
        "52bd1896ce9f3bc47a81d3946694b4f6592bca9c"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Thu Sep 03 12:43:12 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 12:43:12 2026 +0200"
      },
      "message": "Rollup merge of #162168 - khyperia:ice-inherent-next, r\u003dBoxyUwU\n\nfix ICE in project_goals/inherent\n\nI\u0027m a silly goose. The next solver has the exact same bug as https://github.com/rust-lang/rust/pull/161858 - merely enabling next-solver on the test added in that PR causes an ICE :upside_down_face:\n\nICE was technically introduced by https://github.com/rust-lang/rust/pull/161929 but this bug has always been present, it\u0027s just that PR explicitly tracked things better and ICEd on the bug instead of silently continuing.\n\nfixes https://github.com/rust-lang/rust/issues/162147\n\nexplanation: `push_const_arg_has_type_goal` expects its term to have rebased, `impl`-format args, not `Self` format args. See doc comment on `AliasConstKind::InherentSelf` for what \"impl format\" and \"self format\" mean: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_type_ir/enum.AliasConstKind.html#variant.InherentSelf\n\nr? @BoxyUwU since we chatted about this yesterday but honestly anyone vaguely t-types and/or const-generics feel free to review as well, should be relatively straightforward!\n"
    },
    {
      "commit": "79ed8508314620966aed59f91dffd4ef7ce96a78",
      "tree": "88024b527b88039e11aad80bc2073e41b09fe89b",
      "parents": [
        "88c5cb4e909655d9408c149bae95959db73b36d7",
        "1d08a6b9ff707d19caf72d8ba427ec2ffa399739"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Thu Sep 03 12:43:11 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 12:43:11 2026 +0200"
      },
      "message": "Rollup merge of #162153 - cuviper:llvm-get-version, r\u003dwesleywiser\n\nPrefer `LLVMGetVersion` for runtime info\n\nOur `LLVMRustVersion*` functions get hard-coded `LLVM_VERSION_*` values\nwhen we build `RustWrapper.cpp`, but this could be different than the\nactual LLVM library at runtime. This should never happen with toolchains\nfrom `rustup`, but with external LLVM in a distro build, for example,\n`rustc` and `LLVM` can be upgraded independently.\n\nMost of the time when we check the LLVM version, we\u0027re only looking at\nthe major version anyway, and we already assert that these are equal in\n`configure_llvm`. However, for anything that does check the minor or\npatch version too, the runtime version is probably more relevant.\n"
    },
    {
      "commit": "88c5cb4e909655d9408c149bae95959db73b36d7",
      "tree": "f1b1fb54d0ea3b4867e1c75650b2015a53ceea33",
      "parents": [
        "b974de24f0ec870eb8cfa95b0f8e7d4d09bdbd53",
        "47fc75df4415debfcd437c61cf80b00d125089ce"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Thu Sep 03 12:43:10 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 12:43:10 2026 +0200"
      },
      "message": "Rollup merge of #162152 - folkertdev:revert-skip-gcc-tests, r\u003djieyouxu\n\nRevert \"retrieve supported GCC targets from the sysroot\"\n\nsee [#t-infra/bootstrap \u003e cg_gcc sysroot?](https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/cg_gcc.20sysroot.3F/with/620307625)\n"
    },
    {
      "commit": "b974de24f0ec870eb8cfa95b0f8e7d4d09bdbd53",
      "tree": "28fef3d8c8c2acf1ecb86378b620e540d86d0cf7",
      "parents": [
        "c6021880dcf95dc53195775ca7661858aca74d9d",
        "70b63b5d66ccba19b4264bb649703564717fa477"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Thu Sep 03 12:43:10 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 12:43:10 2026 +0200"
      },
      "message": "Rollup merge of #162111 - Kobzol:update-mailmap, r\u003djieyouxu\n\nUpdate mailmap for Will Crichton and Petr Hosek\n\nThey are now in the team database, so they don\u0027t need to be hardcoded in `thanks` anymore. However, when I ran thanks locally, their entries were duplicated. This PR should merge their entries for different e-mails.\n\nCC @willcrichton @petrhosek To confirm that the e-mails look right.\n"
    },
    {
      "commit": "c6021880dcf95dc53195775ca7661858aca74d9d",
      "tree": "1e90a5485a33db418fa8ecc7861276f614c79cb8",
      "parents": [
        "1cdcec78cd18490ede38c972e4875fb02459e4ca",
        "f92efc873b925b3a25038ff526b9b5cdad5b4230"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Thu Sep 03 12:43:09 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 12:43:09 2026 +0200"
      },
      "message": "Rollup merge of #162076 - sorairolake:clarify-int-try-from-docs, r\u003dJohnTitor\n\ndocs(num): clarify conditions under which error occurs in `impl TryFrom\u003cint\u003e for int`\n\n`impl_try_from_unbounded` always returns `Ok(T)`, but the documentation is written as if it may return an error, so I fixed this.\n\nI also clarified that `impl_try_from_lower_bounded` returns an error only when the source value is less than `T::MIN`, and `impl_try_from_upper_bounded` returns an error only when the source value is greater than `T::MAX`.\n\nWhile the original text\n\n\u003e This returns an error if the source value is outside of the range of the target type.\n\nis fine for both cases, but I think the revised text makes it clearer that the error occurs at either the lower bound or the upper bound.\n\nAs for `impl_try_from_both_bounded`, I think the current text is fine, so I have not made any changes to it.\n"
    },
    {
      "commit": "1cdcec78cd18490ede38c972e4875fb02459e4ca",
      "tree": "b5765ce39e5234e297f25f247c0c489834d0f28d",
      "parents": [
        "63e9ded7a609673f8f786c578272640c0c1007da",
        "cb5e3df331e1684fd591c95658c033aed368175d"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Thu Sep 03 12:43:08 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 12:43:08 2026 +0200"
      },
      "message": "Rollup merge of #162065 - physwkim:vxworks-set-perm-nofollow, r\u003dChrisDenton\n\nstd: don\u0027t reference `libc::O_NOFOLLOW` on VxWorks in `set_perm_nofollow`\n\n`set_permissions_nofollow` was consolidated into `sys/fs/unix.rs::set_perm_nofollow` by rust-lang/rust#160170, which dropped the `not(target_os \u003d \"vxworks\")` guard the previous `sys/fs/mod.rs` implementation carried. VxWorks\u0027 libc defines no `O_NOFOLLOW` (the platform\u0027s `\u003csys/fcntlcom.h\u003e` stops at `O_CLOEXEC`, and `rust-lang/libc` correctly does not bind it for `vxworks`), so building `std` for `x86_64-wrs-vxworks` now fails:\n\n```\nerror[E0425]: cannot find value `O_NOFOLLOW` in crate `libc`\n    --\u003e library/std/src/sys/fs/unix.rs:1916\n     |\n     |             options.read(true).custom_flags(libc::O_NOFOLLOW);\n     |                                                    ^^^^^^^^^^ not found in `libc`\n```\n\n`x86_64-wrs-vxworks` is tier 3 and isn\u0027t built in CI, so this wasn\u0027t caught. `set_perm_nofollow` is the only `O_NOFOLLOW` reference compiled for VxWorks — the `remove_dir_all` \"modern\" path already lists `vxworks` in its fallback set, and the remaining occurrences are a doc example and comments.\n\nUnlike ESP-IDF and Horizon (which skip `O_NOFOLLOW` because their filesystems have no symbolic links), VxWorks *does* have symlinks, so it can\u0027t just drop `O_NOFOLLOW` and follow the link silently. This returns `ErrorKind::Unsupported`, matching the existing Android stub.\n\n## `Unsupported` is the platform-correct result\n\nVerified on-target against the shipped VxWorks 7 SDK (`wrsdk-vxworks7-qemu-1.17.0`, the QEMU BSP). VxWorks has no way to express a no-follow permission change:\n\n- No `O_NOFOLLOW`. The only related flag is `O_NOLINK` (\"open the symlink itself\"), which is different semantics and not what the `open` + `fchmod` path wants.\n- `fchmodat` *is* provided — by the UTILS_UNIX component in `libunix`, not core `libc` — and `AT_SYMLINK_NOFOLLOW` is defined as `0x100`. But the shipped `libunix.so` **rejects the flag with `ENOTSUP`**:\n\n```asm\n0000000000009300 \u003cfchmodat\u003e:            ; (dirfd\u003dedi, path\u003drsi, mode\u003dedx, flag\u003decx)\n    cmpl   $0x100,-0x18(%rbp)           ; flag \u003d\u003d AT_SYMLINK_NOFOLLOW ?\n    jne    9340 \u003cfchmodat+0x40\u003e\n    mov    $0x23,%edi                   ; errno \u003d 0x23 (35 \u003d ENOTSUP)\n    call   errnoSet\n    movl   $0xffffffff,-0x4(%rbp)       ; return -1\n    ...\n9340:                                   ; flag \u003d\u003d 0\n    call   taskSafe\n    ...  atCatPath(dirfd, path)\n    call   chmod                        ; plain chmod -\u003e follows the symlink\n```\n\nSo `fchmodat(.., AT_SYMLINK_NOFOLLOW)` returns `-1`/`ENOTSUP`, and `flag \u003d\u003d 0` degrades to `chmod`, which follows symlinks. A `fchmodat`-based implementation is not viable on this release — the platform\u0027s own `fchmodat` reports `ENOTSUP` for exactly this request, which is why `Unsupported` is correct rather than merely conservative. cc @biabbas @hax0kartik\n\n## Build verification\n\nOn `1.100.0-nightly (908501772 2026-08-30)` + `rust-src` (stock `libc` 0.2.189):\n\n- Before: `cargo +nightly build -Zbuild-std\u003dstd,panic_abort --target x86_64-wrs-vxworks` fails with the E0425 above (1 error).\n- After this patch: the same command finishes successfully.\n"
    },
    {
      "commit": "63e9ded7a609673f8f786c578272640c0c1007da",
      "tree": "c12d58f6e778c6d256557f11899f90d93a2c8687",
      "parents": [
        "e6d82093bdac194132cfe3d1c308be7175cda5d8",
        "7a71a7440f6244d302ae4ffb161724b34f5ba75b"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Thu Sep 03 12:43:07 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 12:43:07 2026 +0200"
      },
      "message": "Rollup merge of #162008 - fmease:actionable-box-pat-diag, r\u003dfee1-dead\n\nRender the `box` pattern removal diagnostic more actionable \u0026 remove `box` expression recovery\n\nFollow-up to https://github.com/rust-lang/rust/pull/156749. This way, users don\u0027t have to comb through (probably outdated) tracking issues trying to piece together how to fix their code (in the most idiomatic way). Lemme know if you think this is unnecessary.\n\nRe. `box` expression removal, see https://github.com/rust-lang/rust/pull/162008#issuecomment-5468614277 (TL;DR: it\u0027s been 3 years).\n\ncc @cyrgani\n\n\u003csub\u003e(No LLM was or will be used by me during the entire creation process of this PR)\u003c/sub\u003e\n"
    },
    {
      "commit": "e6d82093bdac194132cfe3d1c308be7175cda5d8",
      "tree": "0ce865590573504354c477e343aacfc2f802706c",
      "parents": [
        "04e566ad06f24806d371d3936703eb4e04555b33",
        "d00696d3ecbef19d9680514032231380ff396193"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Thu Sep 03 12:43:07 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 12:43:07 2026 +0200"
      },
      "message": "Rollup merge of #161972 - theemathas:async-track_caller-tests, r\u003dShoyuVanilla\n\nImprove tests for `#[track_caller]` in async\n\nTracking issue for `async_fn_track_caller`: rust-lang/rust#110011\n\nTracking issue for `closure_track_caller`: rust-lang/rust#87417\n\nI recommend reviewing each commit individually.\n\ncc @RalfJung, who requested the test to be added to Miri.\n\n---\n\nFor your convenience, below is the output of `diff tests/ui/async-await/track-caller/panic-track-caller.rs src/tools/miri/tests/pass/async-panic-track-caller.rs`:\n\n```diff\n2c2\n\u003c // src/tools/miri/tests/pass/async-panic-track-caller.rs\n---\n\u003e // tests/ui/async-await/track-caller/panic-track-caller.rs\n4,6d3\n\u003c // FIXME: catch_unwind is broken in gcc. Will be fixed in the next rustc_codegen_gcc sync.\n\u003c //@ ignore-backends: gcc\n\u003c //@ run-pass\n9,10c6,10\n\u003c //@ needs-unwind\n\u003c // gate-test-async_fn_track_caller\n---\n\u003e //\n\u003e //\n\u003e //\n\u003e //\n\u003e // Padding comment so that the line numbers are the same as panic-track-caller.rs\n58a59\n\u003e #[cfg_attr(any(cls, nofeat), expect(ungated_async_fn_track_caller))]\n60d60\n\u003c //[cls,nofeat]~^ WARN `#[track_caller]` on async functions is a no-op\n72a73\n\u003e     #[cfg_attr(any(cls, nofeat), expect(ungated_async_fn_track_caller))]\n74d74\n\u003c     //[cls,nofeat]~^ WARN `#[track_caller]` on async functions is a no-op\n107a108\n\u003e #[cfg_attr(any(cls, nofeat), expect(ungated_async_fn_track_caller))]\n109d109\n\u003c //[cls,nofeat]~^ WARN `#[track_caller]` on async functions is a no-op\n```\n"
    },
    {
      "commit": "04e566ad06f24806d371d3936703eb4e04555b33",
      "tree": "61ed19731c8a2266ed6180010372c9b1dd77b413",
      "parents": [
        "03f483a782ead047220c1806538719bc97f0b1bf",
        "c00e493750293ef5ddf3294dd503dd7bb317a069"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Thu Sep 03 12:43:06 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 12:43:06 2026 +0200"
      },
      "message": "Rollup merge of #161847 - chenyukang:yukang-fix-141134-nested-import-visibility, r\u003dfee1-dead\n\nPreserve visibility in nested macro import suggestions\n\nFixes rust-lang/rust#141134\n\nHere we use `span_to_snippet(import.vis_span)` instead of using `.vis.to_string(..)`.\nThe latter produces a semantically equivalent but canonicalized form, which may causing unnecessary source changes.\n"
    },
    {
      "commit": "03f483a782ead047220c1806538719bc97f0b1bf",
      "tree": "02e1244a3e1047876b33a6aba814d97e229cba24",
      "parents": [
        "c6126533a52d3536cb33e917e69548d61d460152",
        "3c907878d2559f5cc9249f633a33a1b123b9959f"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Thu Sep 03 12:43:05 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 12:43:05 2026 +0200"
      },
      "message": "Rollup merge of #161135 - beetrees:f16-f128-inline-asm-powerpc, r\u003dfolkertdev\n\nAdd `f16` and `f128` inline ASM support for PowerPC\n\nThis PR adds support for `f16`, `f128` and `f16x8` in PowerPC inline ASM vector registers ([PowerPC ISA](https://files.openpowerfoundation.org/s/AKX2KtLkwCXxEaC)).\n\nPing target maintainers: @daltenty @gilamn5tr @amy-kwan @Gelbpunkt @famfo @neuschaefer\n\nTracking issue: rust-lang/rust#125398 (part of rust-lang/rust#116909)\n"
    },
    {
      "commit": "c6126533a52d3536cb33e917e69548d61d460152",
      "tree": "fb2105c7ad911ef0f1ba661e9094e6af8a60f770",
      "parents": [
        "24172752cbd31cebb69ee89b7203e8a02118e774",
        "7a44484407077776e30120f5e72cdef2820e8856"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Thu Sep 03 12:43:04 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 12:43:04 2026 +0200"
      },
      "message": "Rollup merge of #159873 - PiJoules:fuchsia-safestack, r\u003dadwinwhite\n\nfuchsia: Add safestack as a supported sanitizer for x86_64 fuchsia\n\nMake it also enabled by default just like it is for clang.\n"
    },
    {
      "commit": "24172752cbd31cebb69ee89b7203e8a02118e774",
      "tree": "50ca58bbd94999e5f9902b832cc6bb5f14ee0bcf",
      "parents": [
        "af65912b1b02efc65d14a9915d087d1f32d462c1",
        "db8797ee48c23bb2877b271532623f28c0f3b0ec"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Thu Sep 03 12:43:03 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 12:43:03 2026 +0200"
      },
      "message": "Rollup merge of #158401 - lapla-cogito:issue_154632, r\u003dcamelid\n\nmgca: Don\u0027t ICE when evaluating ValTrees that contain error constants\n\nFixes rust-lang/rust#154632\nFixes rust-lang/rust#150969\n\n`mir::Const::eval` now checks `error_reported()` and returns `Err` instead of converting such values to `ConstValue`.\n"
    },
    {
      "commit": "af65912b1b02efc65d14a9915d087d1f32d462c1",
      "tree": "9fe692a8adfbb2781ff83c5929d68a4e8e7762db",
      "parents": [
        "6f5c8be726d45fd82fd63fc29e659649d95ff55f",
        "0c2ee725a90e685df05b257862c026f4f460bf96"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Thu Sep 03 12:43:03 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 12:43:03 2026 +0200"
      },
      "message": "Rollup merge of #162187 - Zalathar:value-expr, r\u003dBoxyUwU\n\nRename `thir::ExprKind::Use` to `ValueExpr`\n\nThe current name is very confusing, because this node kind has nothing to do with `use` imports or unstable `.use` expressions. It is therefore also unrelated to `ast::ExprKind::Use` and `hir::ExprKind::Use`.\n\nIt actually represents an expression that must be lowered as a value, even if it would otherwise be a place-expression in place context.\n"
    },
    {
      "commit": "6f5c8be726d45fd82fd63fc29e659649d95ff55f",
      "tree": "9bf98b3c33f0335ae8409b5880a5c3be18ded76b",
      "parents": [
        "04abbba3f598224dd64754671f3237090fe48e73",
        "fa18a90a403ad2b5875d1893c49ed44550ac1be7"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Thu Sep 03 12:43:02 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 12:43:02 2026 +0200"
      },
      "message": "Rollup merge of #162181 - chenyukang:yukang-fix-160741-unused-braces-for-iterator, r\u003djieyouxu\n\nRemove wrong UnusedBraces lint for iterator loop in edition 2024\n\nFixes rust-lang/rust#160741\n\nThere are false negative for this fix, but since this is an early lint, seems we don\u0027t have a good way for better filter.\n"
    },
    {
      "commit": "04abbba3f598224dd64754671f3237090fe48e73",
      "tree": "3acc3ba31edba23e0e60969a40d9b25dcbc9b75f",
      "parents": [
        "656ff175cfe8d99a2f3de4f28e044ad325f1490f",
        "3cc36822f191221f35e1e0892de393ab689a832b"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Thu Sep 03 12:43:01 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 12:43:01 2026 +0200"
      },
      "message": "Rollup merge of #162162 - GrigorenkoPV:never-is-now, r\u003dmejrs,WaffleLapkin\n\nDon\u0027t special-case `!` in stability checks anymore\n\nTwo instances of special-casing:\n- one for `!`, added in rust-lang/rust#76538 (nearly 6 years ago, Rust v1.48), back when `!` was unstable,\n- one for `fn() -\u003e !` in rust-lang/rust#103239 (nearly 4 years ago, Rust v1.66), because `-\u003e !` was allowed on stable even with `!` being unstable.\n\nSince then, in rust-lang/rust#103239 (just a week ago, on track to be part of Rust v1.100), `!` was stabilized, so the first check became wrong and the second became redundant. Let\u0027s remove them.\n\nFixes rust-lang/rust#162116.\n"
    },
    {
      "commit": "656ff175cfe8d99a2f3de4f28e044ad325f1490f",
      "tree": "4d62cf5a73f99d76204228c2c6d576786de8d6b8",
      "parents": [
        "92e0f000af3b77d0b5ffa83324eeee1288fc2f6f",
        "1bd13e50ca0bc6c7f2cad968d6e0e10ecaca8bc9"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Thu Sep 03 12:43:00 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 12:43:00 2026 +0200"
      },
      "message": "Rollup merge of #162151 - folkertdev:ppc-itanium, r\u003dtgross35\n\nTest itanium mangling of `f16` and `f128`\n\nAnd fix the string that is used for `f128` on powerpc targets, where the standard `\"g\"` is already taken by `__ibm128`.\n\nIn clang\n\nhttps://github.com/llvm/llvm-project/blob/bd5b1f58ae58cceab2cadb882cceb1d96f4ad33e/clang/lib/Basic/Targets/PPC.h#L362-L363\n\n```c\n  const char *getFloat128Mangling() const override { return \"u9__ieee128\"; }\n  const char *getIbm128Mangling() const override { return \"g\"; }\n```\n\nand GCC\n\nhttps://github.com/gcc-mirror/gcc/blob/fc54ab94ad257f9ef43a7287a60c21734a7a288f/gcc/config/rs6000/rs6000.cc#L20795-L20801\n\n```c\n\n  if (SCALAR_FLOAT_TYPE_P (type) \u0026\u0026 FLOAT128_IBM_P (TYPE_MODE (type)))\n    return \"g\";\n  if (SCALAR_FLOAT_TYPE_P (type) \u0026\u0026 FLOAT128_IEEE_P (TYPE_MODE (type)))\n    return \"u9__ieee128\";\n```\n\nFrom what i can tell this is not really testable for powerpc at the moment because CFI is not supported on powerpc.\n\nr? tgross35\n"
    },
    {
      "commit": "92e0f000af3b77d0b5ffa83324eeee1288fc2f6f",
      "tree": "219782c84022878078d78d06e4f53b9df6fd2206",
      "parents": [
        "9eadacbd981a6001a748266ef37a5b741fe63b92",
        "7394cc66c3994fc944228e166a66ab9e9d4a1692"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Thu Sep 03 12:43:00 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 12:43:00 2026 +0200"
      },
      "message": "Rollup merge of #162132 - joboet:safe_stack_overflow, r\u003dChrisDenton\n\nstd: improve safety documentation in UNIX stack overflow code\n\nThe UNIX stack overflow handling code was only partially documented, and applied `#![forbid(unsafe_op_in_unsafe_fn)]` inconsistently. Also, the existing safety documentation wasn\u0027t very clear on the assumptions made by `std` and the reasoning behind those assumptions. I\u0027ve tried to rectify all that here by adding some `unsafe`, removing some `unsafe` and writing a lot of comments. There are no functional changes however, I\u0027ll get started on those once this is merged.\n"
    },
    {
      "commit": "9eadacbd981a6001a748266ef37a5b741fe63b92",
      "tree": "3df86cf787d1644f4d277c33ef83e75dfde64ca4",
      "parents": [
        "c720f583856c73ea93c9bdd9b41a7f1b3ba96007",
        "b0ba8b100ef633a153432dfe94dcaf11486133ca"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Thu Sep 03 12:42:59 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 12:42:59 2026 +0200"
      },
      "message": "Rollup merge of #162120 - nnethercote:PerOwnerLoweringState, r\u003dspastorino\n\nIntroduce `PerOwnerLoweringState`\n\n`LoweringContext` has 14 fields that get swapped in and out in `with_hir_id_owner`. This is fragile and gross. This commit moves those fields into a new struct, `PerOwnerLoweringState`, which means they can be swapped in and out cleanly.\n\nOther changes:\n- All `self.foo` accesses to those 14 fields become `self.curr_owner.foo`.\n- Field renames:\n  - `current_hir_id_owner` -\u003e `owner_id`\n  - `current_disambiguator` -\u003e `disambiguator`\n- `LoweringContext::make_owner_info` becomes `PerOwnerLoweringState::into_owner_info`; this makes sense because it consumes the `PerOwnerLoweringState`.\n- Stronger assertions: `into_owner_info` has assertions that now apply to the `with_lctx` path as well as the `with_hir_id_owner` path.\n\nr? @spastorino\n"
    },
    {
      "commit": "c720f583856c73ea93c9bdd9b41a7f1b3ba96007",
      "tree": "133e9ab05cee4e42aca36c1811e3f7f5ce300810",
      "parents": [
        "9d033eee60b1d172c4ffcdf41e9a8809a95b0957",
        "be8a828aa9b2532c8d726adcafdab72831db9dcf"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Thu Sep 03 12:42:58 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 12:42:58 2026 +0200"
      },
      "message": "Rollup merge of #162044 - Zalathar:resolved, r\u003dfolkertdev\n\ncoverage: Resolve spans to file-coordinates in a separate step\n\nOne of the key tasks in coverage codegen is to take the source-code spans that were recorded during MIR instrumentation, and resolve them to physical coordinates in their respective files.\n\nIn rare cases this resolution can fail, which leads to the awkward possibility that a function might lose _all_ of its mappings for a particular file/expansion. If that happens, we need to avoid emitting a covfun file section containing no regions, because doing so would trigger errors in LLVM.\n\nThe existing code does handle this edge case, but in a way that won\u0027t generalise to multiple files/expansions. Having an explicit intermediate resolution step will make it easier to add support for expansion regions in the future.\n\nThere should be no change to compiler output.\n"
    },
    {
      "commit": "9d033eee60b1d172c4ffcdf41e9a8809a95b0957",
      "tree": "967a4054fa84fa72fcfc6f870b520d8c35f435d2",
      "parents": [
        "e48a72229351338baded24e88cca292f45edc53f",
        "a97dc3135416f40b49ac345074643e3805e1624f"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Thu Sep 03 12:42:58 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 12:42:58 2026 +0200"
      },
      "message": "Rollup merge of #161579 - Albab-Hasan:suggest-calling-fn-item-in-for-loop, r\u003destebank\n\nsuggest calling a fn item used as the iterator of a `for` loop\n\n`suggest_fn_call` only fired when the failing obligation came from `ObligationCauseCode::FunctionArg`, so a fn item or closure used as the iterator of a `for` loop got no structured suggestion to call it.\n\nthe iterator of a `for` loop is passed to `IntoIterator::into_iter`, so the failing `Iterator` goal is a derived obligation and the cause span carries the loop desugaring, which makes `can_be_used_for_suggestions` return false. carry the `HirId` of the iterator expression in `ObligationCauseCode::ForLoopIterator` and gate the suggestion on the span of that expression instead.\n\nfixes https://github.com/rust-lang/rust/issues/161564\n\nr? @oli-obk\n"
    },
    {
      "commit": "e48a72229351338baded24e88cca292f45edc53f",
      "tree": "075e535db34261f6c6c15e638cdd73b331cd882b",
      "parents": [
        "82b1966132aed96e2fa4bd86e6a66a22246efc5c",
        "ece2980246f013fd1486b7c9cf65d54fcc9754b7"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Thu Sep 03 12:42:57 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 12:42:57 2026 +0200"
      },
      "message": "Rollup merge of #160564 - RalfJung:volatile-with-trap, r\u003dnikic\n\nvolatile: allow accesses to non-AM memory to trap\n\nFixes https://github.com/rust-lang/unsafe-code-guidelines/issues/610 by saying that yes, volatile accesses may trap. This also fixes what I believe to be the last case of \"time-traveling UB\" we have in Rust: with this change, UB always fully sequenced wrt observable events (I/O and volatile accesses). UB can still travel around unobservable events such as non-volatile memory accesses.\n\nFor writes, LLVM has already implemented the new semantics for a long time. For reads, LLVM only recently implemented the \"may trap\" semantics with LLVM 23. We still allow compiling rustc with older versions of LLVM. To (hopefully) prevent old LLVM from screwing this up with optimizations, this PR makes the backend emit an inline asm block *without* `willreturn`, which should prevent optimizations that break programs where a volatile load traps.\n\nCc @rust-lang/opsem @rust-lang/wg-llvm\n"
    },
    {
      "commit": "82b1966132aed96e2fa4bd86e6a66a22246efc5c",
      "tree": "11f8ffcefd4afe19505c31cfc32c27ca1c60809c",
      "parents": [
        "079b5bd8edf30517d69ede5fca17d13290c84825",
        "f91c12f29eae6b63de9780d49d873425a832ad1a"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Thu Sep 03 12:42:56 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 12:42:56 2026 +0200"
      },
      "message": "Rollup merge of #162164 - nnethercote:revert-concat-Debug, r\u003dclarfonthey\n\nRevert \"Implement Debug for C-like enums with a concatenated string\"\n\nFrom rust-lang/rust#155452.\n\nFixes rust-lang/rust#162124.\n"
    },
    {
      "commit": "079b5bd8edf30517d69ede5fca17d13290c84825",
      "tree": "a27389e7b9d5f84aa38074cd22b92f61dea1ff50",
      "parents": [
        "adc7498552ba1d3398e4029a77d711acce124e2d",
        "c7a87d0c15317a0c38cfd1ff1c393a55532895cd"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Thu Sep 03 12:42:55 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 12:42:55 2026 +0200"
      },
      "message": "Rollup merge of #162014 - GuillaumeGomez:more-ui-tests, r\u003dfmease\n\nMove more `rustdoc-html` tests using `--test` into the right folder\n\nFollow-up of https://github.com/rust-lang/rust/pull/161944.\n\nI double-checked if more `rustdoc-html` tests were in the wrong folder and... yeah. So fixing that too. I\u0027ll send a patch to prevent that in the future (in `compiletest` I guess, doesn\u0027t seem like a `tidy` thing).\n\nOh also second commit is me realizing that some ui tests were using `compile-args` (which doesn\u0027t exist anymore) and without `@`. Anyway, fixed that too.\n\nr? @fmease\n"
    },
    {
      "commit": "adc7498552ba1d3398e4029a77d711acce124e2d",
      "tree": "e7fb347a3be6014b597f93903ee1546fbd137b16",
      "parents": [
        "4fcf39725a9c99bd495d8c73af83628a256ff9a9",
        "b13c235e80fad1f662f3a7497b7853685b29ca60"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Thu Sep 03 12:42:54 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 12:42:54 2026 +0200"
      },
      "message": "Rollup merge of #161694 - folkertdev:complex-abi-run-make, r\u003dJohnTitor\n\nadd `Complex` ABI run-make test\n\ntracking issue: https://github.com/rust-lang/rust/issues/154023\n\nJust some back and forth between C and Rust, as a first line of defense against ABI mismatches. Something like abi-cafe is better because it just tests more scenarios than we reasonably can here, but now we run something on CI at least.\n"
    },
    {
      "commit": "d8df82673d5911b6112a85bf91d9adefb2c66a1a",
      "tree": "8f0461f24e9ee2efd947b47712d79297d0fda89d",
      "parents": [
        "4fcf39725a9c99bd495d8c73af83628a256ff9a9",
        "b22bffaea5e050f7f3e11d5e773abfbf25dcbae7"
      ],
      "author": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Thu Sep 03 10:24:19 2026 +0000"
      },
      "committer": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Thu Sep 03 10:24:19 2026 +0000"
      },
      "message": "Auto merge of #161306 - BoxyUwU:abby_canonical_form_always, r\u003dlcnr,khyperia\n\nabby: always store nextgen region constraints in canonical form\n\n\n\ntitle. introduce an `And`/`Or`/`LeafConstraint`/ types to reason about the structure of our region constraints. Never produce arbitrarily nested or/ands and always have constraints in an evaluated form.\r\n\r\nI kinda mucked up this PR and accidentally did two things at the same time. Not only do we immediately put everything into canonical form, we also change what it means for a region constraint to be in canonical form. Whoops :\u003e\r\n\r\nRough overview of what a `RegionConstraint` is:\r\n- `RegionConstraint` contains two things: an `AND of LEAFs` and an `OR of AND of LEAFs`. Another way of thinking about it would be to say its an `AND` consisting of arbitrarily many LEAFs and a single `OR of AND of LEAFs`\r\n- There are never any region constraints shared between all ANDs of the OR, instead they\u0027re moved into the top level AND\r\n- If the OR constraint is `false` then we wipe the top level `AND` as it doesn\u0027t matter what they are, the constraint is always going to be false\r\n- ORs never have two equivalent ANDs within them. Similarly, ANDs never have two equivalent LEAFs within them\r\n\r\nthis simplifies a lot of things conceptually as we now no longer need to worry about what state our region constraints are in. and our algorithms also don\u0027t need to handle arbitrary nesting of ors/ands :) and its a lot easier to read the debug logs :sweat_smile: \r\n\r\nI also wound up needing to do this while trying to compile `std`/`core` with `-Zassumptions-on-binders` as we would otherwise OOM from having both:\r\n- Lots of duplicate region constraints (e.g. `And(\u0027a: \u0027b, \u0027a: \u0027b)`)\r\n- Lots of region constraints shared across all elements of an `OR` (e.g. `Or(And(\u0027a: \u0027b, \u0027b: \u0027c), And(\u0027a: \u0027b, \u0027b: \u0027d))`)\r\n\r\nSome future work:\r\n- Remove `RegionConstraint::splatted_and_constraints` it\u0027s kind of weird to even need it and probably encourages bad-for-perf patterns\r\n- we Probably want some kind of fast path for pushing new leaf constraints to the region constraint storage. slash have a way to register a leaf constraint directly rather than having to make a `RegionConstraint`. Perf stuff :3\r\n\r\nIn theory this PR should mostly not have functional changes. In practice it might affect some things due to changing the exact repr of things affecting query responses. There\u0027s probably also some behaviour differences here due to us falling on our face more or less in WIP parts of abby now that we have different region constraints. I don\u0027t think any of this should be meaningful though. This PR is intended to not fundamentally change the abby algorithm :3\r\n\r\nThis PR should be reviewed commit-by-commit. There are a bunch of commits restructuring existing logic to assume their input is in canonical form as it will be by the end of the PR.\r\n\r\nThen there\u0027s the core change in `always canonical form` which actually replaces `RegionConstraint` with all the new types and updates all the locations using them.\r\n\r\nFinally there\u0027s `propagate ambiguity not evaluate` which deals with the leftover `evaluate_solver_constraint` which was mostly unnecessary now due to moving its main logic into construction of `RegionConstraint` and friends. I didn\u0027t want to make actual bug fixes in this PR so I just left some FIXMEs about some of the issues that `propagate_ambiguity` has instead of fixing them here.\r\n\r\nFixes rust-lang/project-assumptions-on-binders#14"
    },
    {
      "commit": "4fcf39725a9c99bd495d8c73af83628a256ff9a9",
      "tree": "cbed309f8c197ff16440663af429cfe49e598ec7",
      "parents": [
        "2e2b193f8ada105f27608b7be81c293e0d7292cb",
        "3a91281217abd4c0e3d4a3de0f1e598c5bef31a3"
      ],
      "author": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Thu Sep 03 06:01:49 2026 +0000"
      },
      "committer": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Thu Sep 03 06:01:49 2026 +0000"
      },
      "message": "Auto merge of #161290 - Kobzol:bootstrap-llvm-4, r\u003djieyouxu\n\nAssorted bootstrap LLVM refactors (part 4/N)\n\n\n\nContinuation on https://github.com/rust-lang/rust/pull/161247.\r\n\r\nThis PR completely removes handling of git changes or LLVM downloads from config parsing, and moves it into the `LlvmFromCi` step. Thanks to that, we now also allow downloading LLVM for non-host targets.\r\n\r\nThere is one annoyance related to that, and that is that `download-ci-llvm` now applies to all targets for which you try to build LLVM (d\u0027uh), but that also means that if (for whatever reason) LLVM fails to be downloaded from CI, the build will fail. So if you build for target T2 from target T1:\r\n- If you want to download T1, but build T2, that\u0027s not possible to express.\r\n- If T2 fails to be downloaded, the build fails, even if it could be built locally.\r\n\r\nI think that we mostly have four options how to deal with this:\r\n1. Just ignore it and wait to see if someone complains.\r\n2. Revert the change and always download only for the host target. Worked so far. However, downloading LLVM for non-host targets would be quite useful for further bootstrap improvements and refactorings, because the current logic around sysroots and libdirs is.. convoluted, to say the last, and making cross-compilation easier would help with that a lot.\r\n3. Allow specifying `download-ci-llvm` *per target* in the target config section. So that you can say that you want to download for T1, but build for T2.\r\n4. Make download failures non-fatal, and cause them to trigger a local build. This would also help with removing the hacky `is_ci_llvm_available_for_target` logic, which hard-codes a bunch of targets to \"know\" which ones offer LLVM and which don\u0027t. We could just try to download, and if the result is 404, then we print a warning and continue with building (but this is slightly orthogonal, we can do this even if we don\u0027t make LLVM build failures non-fatal).\r\n\r\nI think that 3 or 4 would be the best solution, perhaps slightly opting for 4. If we get a 404, there\u0027s no way we can download, so we build instead. If we get a different error, we still make the failed download fail the build. And only if someone has a use-case for 3, we\u0027d add the new config.\r\n\r\nAlready before this PR, we did this:\r\n```\r\n// If download-ci-llvm\u003dtrue we also want to check that CI llvm is available\r\nb \u0026\u0026 llvm::is_ci_llvm_available_for_target(\u0026dwn_ctx.host_target, asserts)\r\n```\r\nso if LLVM wasn\u0027t available, we just silently reverted from `download-ci-llvm\u003dtrue` to `download-ci-llvm\u003dfalse`. The 4. proposal would just generalize that, to actually check whether the LLVM files are present on the CDN or not.\r\n\r\nThe problem with 4. is that you can\u0027t really set any custom build options for LLVM though, because if you also enable `download-ci-llvm`, the config sanity check will tell you to GTFO :( So we would probably need to make some changes there.\r\n\r\nr? jieyouxu"
    },
    {
      "commit": "2e2b193f8ada105f27608b7be81c293e0d7292cb",
      "tree": "94aef6f339e8647d9e6170dbd8dd1e69d07f3575",
      "parents": [
        "fb9a3389fdeb347c7658a422ed41b79499434452",
        "b3d2bc2d8a43019b833294cce59522fb8b5638a8"
      ],
      "author": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Wed Sep 02 20:45:23 2026 +0000"
      },
      "committer": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Wed Sep 02 20:45:23 2026 +0000"
      },
      "message": "Auto merge of #161789 - weihanglo:update-cargo, r\u003dweihanglo\n\nUpdate cargo submodule\n\n\r\n\r\n26 commits in e8cb624d5701824f46a2ec5873cfd59ee3d2f66c..b2e9d5f9db3fb1c454ab84f10c16508984a266e2\r\n2026-08-22 00:23:45 +0000 to 2026-09-02 14:49:16 +0000\r\n- fix(parser): Resolve theoretical use-after-free (rust-lang/cargo#17428)\r\n- fix(trim-paths)!: remove default scope from release profile (rust-lang/cargo#17424)\r\n- fix(git): Use git\u0027s 429 retry, when available (rust-lang/cargo#17422)\r\n- Avoid passing search path (-L) args when they are passed as --extern (rust-lang/cargo#17410)\r\n- chore(deps): update crate-ci/typos action to v1.50.0 (rust-lang/cargo#17417)\r\n- test: Move -Z onto its own line (rust-lang/cargo#17416)\r\n- chore(triagebot): enable `@rustbot merge/delegate` (rust-lang/cargo#17415)\r\n- Micro-optimize two package dir functions (rust-lang/cargo#17413)\r\n- perf: Do not build SBOM if user has not set build.sbom (rust-lang/cargo#17412)\r\n- feat(manifest)!: implement feature-metadata RFC3416 (rust-lang/cargo#15056)\r\n- Cargo profiling improvements (rust-lang/cargo#17411)\r\n- test(git): Remove gix override run in CI and the mode in code (rust-lang/cargo#17405)\r\n- perf(git): Reduce extra work when using git-cli (rust-lang/cargo#17406)\r\n- feat(resolver): Stabilize min-publish-age (rust-lang/cargo#17335)\r\n- fix(git): Remove ref status update when showing progress  (rust-lang/cargo#17400)\r\n- revert: refactor: move sysroot lookup to GlobalContext (rust-lang/cargo#17401)\r\n- fix(run): Printing a new line to avoid overwriting error code after \\r (rust-lang/cargo#17373)\r\n- fix(trim-paths): custom workspace-relative member paths remap (rust-lang/cargo#17366)\r\n- fix(home): rustdoc lint (rust-lang/cargo#17394)\r\n- feat(diag): Stabilize cargo-lints  (rust-lang/cargo#17298)\r\n- chore(deps): Update partial_ref to v0.3.4 (rust-lang/cargo#17392)\r\n- refactor: remove ad-hoc `subslice_range` (rust-lang/cargo#17390)\r\n- docs(changelog): move build-dir new layout to Changed (rust-lang/cargo#17387)\r\n- chore(deps): update msrv (1 version) to v1.98 (rust-lang/cargo#17386)\r\n- docs: Use mdbook admonitions (rust-lang/cargo#17384)\r\n- chore(ci): exclude resolver-tests from intra doc link checks (rust-lang/cargo#17385)\r\n"
    },
    {
      "commit": "b13c235e80fad1f662f3a7497b7853685b29ca60",
      "tree": "f43110c10b85ba3f4293c81aedee414a9917365f",
      "parents": [
        "c25253fac451fff60fb5b6c0b2c64d60f628c7cd"
      ],
      "author": {
        "name": "Folkert de Vries",
        "email": "folkert@folkertdev.nl",
        "time": "Tue Jul 14 23:43:30 2026 +0200"
      },
      "committer": {
        "name": "Folkert de Vries",
        "email": "folkert@folkertdev.nl",
        "time": "Wed Sep 02 22:04:23 2026 +0200"
      },
      "message": "add Complex abi run-make test\n"
    },
    {
      "commit": "c7a87d0c15317a0c38cfd1ff1c393a55532895cd",
      "tree": "f076077e04e44d83b86834d348e71bae5cae50fe",
      "parents": [
        "2de164566072db2354995fe44ac28968c16f867f"
      ],
      "author": {
        "name": "Guillaume Gomez",
        "email": "contact@guillaume-gomez.fr",
        "time": "Wed Sep 02 21:55:28 2026 +0200"
      },
      "committer": {
        "name": "Guillaume Gomez",
        "email": "contact@guillaume-gomez.fr",
        "time": "Wed Sep 02 21:55:28 2026 +0200"
      },
      "message": "Limit new rustdoc-ui tests to linux to prevent backtrace paths mismatch\n"
    },
    {
      "commit": "fb9a3389fdeb347c7658a422ed41b79499434452",
      "tree": "5bc9cf70c4f07ea25c4f10e43b5bc2cb89d5b715",
      "parents": [
        "824336ad4127ce295849937a24c08a4aeff6ada7",
        "8d43ad3441784c2be601b5ec97bc9bca18c889b3"
      ],
      "author": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Wed Sep 02 16:58:40 2026 +0000"
      },
      "committer": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Wed Sep 02 16:58:40 2026 +0000"
      },
      "message": "Auto merge of #161049 - weihanglo:bootstrap-trim-paths-exp, r\u003dUrgau,jieyouxu\n\nbootstrap: leverage cargo trim-paths\n\n\r\n\r\n## What \r\n\r\nLeverage Cargo\u0027s `-Ztrim-paths` to remap compiler and library. See \u003chttps://github.com/rust-lang/cargo/issues/17309\u003e. Bootstrap no longer needs custom remap.\r\n\r\nChanges in toolchain distributions:\r\n\r\n* `/rustc/\u003csha\u003e` remap does not change for toolchain binaries\r\n* `/rustc-dev/\u003csha\u003e` remap does not change for toolchain private binaries\r\n* `/rustc/llvm` remap does not change for LLVM we distributed \r\n* crates.io dependency remaps becomes `/cargo/registry/\u003chash\u003e` from `/rust/deps`\r\n* vendored dependency remaps becomes `/cargo/deps` from `/rust/deps`\r\n\r\nThis has some implicit dependencies:\r\n\r\n* cc-rs must be `1.3.0+` in rustc_llvm and other packages that depend on cc-rs.\r\n* Bootstrap stage0 must be cbae9b4cae2b108f6a3d18cfe6075714bb739463 to get `__CARGO_RUSTC_BOOTSTRAP_WS_REMAP` support\r\n* Remaps only apply to the `release` and `dev` Cargo profiles.\r\n* It follows cargo\u0027s remap rules: \u003chttps://doc.rust-lang.org/nightly/cargo/reference/unstable.html#profile-trim-paths-option\u003e\r\n\r\n\r\ntry-jobs: dist-x86_64-msvc\r\ntry-jobs: dist-x86_64-linux\r\ntry-jobs: dist-aarch64-apple\r\n\r\n\r\n🤖 **LLM disclosure:** I used LLM to do the first pass of bootstrap integration and temporary stage0 bump. The usage was signed off here on Zulip: [#llm-reviews \u003e Experiment with Cargo\u0027s trim-path in bootstrap](https://rust-lang.zulipchat.com/#narrow/channel/606558-llm-reviews/topic/Experiment.20with.20Cargo.27s.20trim-path.20in.20bootstrap/with/615203079). See \u003chttps://github.com/rust-lang/rust/pull/161049#issuecomment-5498045095\u003e for a more recent disclosure."
    },
    {
      "commit": "b3d2bc2d8a43019b833294cce59522fb8b5638a8",
      "tree": "388e9cb16715db70f4ab561fa0745a5f8b8b7972",
      "parents": [
        "59dabe56f7b78d9dd427645cd7f8e7fd426724cc"
      ],
      "author": {
        "name": "Weihang Lo",
        "email": "me@weihanglo.tw",
        "time": "Tue Aug 25 19:00:05 2026 -0400"
      },
      "committer": {
        "name": "Weihang Lo",
        "email": "me@weihanglo.tw",
        "time": "Wed Sep 02 11:31:36 2026 -0400"
      },
      "message": "Update cargo submodule\n"
    },
    {
      "commit": "824336ad4127ce295849937a24c08a4aeff6ada7",
      "tree": "91ff77aa71dd735e91606cd49c1f031009b8dec3",
      "parents": [
        "59dabe56f7b78d9dd427645cd7f8e7fd426724cc",
        "d5b8ff4d9bf424bbe8f66de5602631b5e8dfee5b"
      ],
      "author": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Wed Sep 02 13:50:51 2026 +0000"
      },
      "committer": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Wed Sep 02 13:50:51 2026 +0000"
      },
      "message": "Auto merge of #162183 - JonathanBrouwer:rollup-IgUDpJR, r\u003dJonathanBrouwer\n\nRollup of 3 perf-sensitive pull requests\n\nSuccessful merges:\n\n - rust-lang/rust#161850 (Store LiveLoans more densely packed)\n - rust-lang/rust#162031 (Reduce next-solver memory usage by interning CanonicalQueryInput)\n - rust-lang/rust#162047 (Optimize empty token streams)\n\n\n\n"
    },
    {
      "commit": "8d43ad3441784c2be601b5ec97bc9bca18c889b3",
      "tree": "22b18d323995e6a02d259290692b50a476ebd3d1",
      "parents": [
        "4e1f3c73ed45e65ba8b211bbfe2cd47a05458ea5"
      ],
      "author": {
        "name": "Weihang Lo",
        "email": "me@weihanglo.tw",
        "time": "Tue Sep 01 16:45:09 2026 -0400"
      },
      "committer": {
        "name": "Weihang Lo",
        "email": "me@weihanglo.tw",
        "time": "Wed Sep 02 09:42:38 2026 -0400"
      },
      "message": "bootstrap(llvm): touch download-ci-llvm-stamp\n"
    },
    {
      "commit": "4e1f3c73ed45e65ba8b211bbfe2cd47a05458ea5",
      "tree": "7190d0875fdfb1ea7cfe5778fd5bc21f4c0917ca",
      "parents": [
        "e751b8db198a4b26e1ca2a3888aaec883ba653e6"
      ],
      "author": {
        "name": "Weihang Lo",
        "email": "me@weihanglo.tw",
        "time": "Fri Aug 14 14:43:42 2026 -0400"
      },
      "committer": {
        "name": "Weihang Lo",
        "email": "me@weihanglo.tw",
        "time": "Wed Sep 02 09:42:38 2026 -0400"
      },
      "message": "bootstrap: move debug-prefix-map C flags to LLVM CMake build\n\nThe `-fdebug-prefix-map` flags in `cc_unhandled_cflags` served three\nkinds of consumers.\n\n* The cc-rs-driven C/C++ builds inside cargo:\n  They now inherit the same remap pairs from cargo trim-paths\n  so passing the flag through `CFLAGS` there is redundant.\n* The CMake-driven LLVM build:\n  This is the one we need the remaps.\n* The remaining callers\n  (`compiler_file` probing, cc detection, test fixtures):\n  They never produce distributed artifacts.\n"
    },
    {
      "commit": "e751b8db198a4b26e1ca2a3888aaec883ba653e6",
      "tree": "0ecb9ff507944e028d00879f1109cd2585537611",
      "parents": [
        "a82d5a6faeb43f8a4090839ba1bdaa5511057ef7"
      ],
      "author": {
        "name": "Weihang Lo",
        "email": "me@weihanglo.tw",
        "time": "Thu Aug 13 08:20:05 2026 -0400"
      },
      "committer": {
        "name": "Weihang Lo",
        "email": "me@weihanglo.tw",
        "time": "Wed Sep 02 09:42:38 2026 -0400"
      },
      "message": "tests: switch remap prefix expectation to `/cargo/registry`\n\nRegistry dependencies are now remapped by cargo trim-paths as\n`/cargo/registry/{source-hash}/{pkg}-{ver}/`\n"
    },
    {
      "commit": "a82d5a6faeb43f8a4090839ba1bdaa5511057ef7",
      "tree": "60a6d0a169e5fa80bf78ea9080ad3557d2f489f0",
      "parents": [
        "6085af642e9aa78f6137f33e2200bf8d917c4d0c"
      ],
      "author": {
        "name": "Weihang Lo",
        "email": "me@weihanglo.tw",
        "time": "Thu Aug 13 21:21:19 2026 -0400"
      },
      "committer": {
        "name": "Weihang Lo",
        "email": "me@weihanglo.tw",
        "time": "Wed Sep 02 09:42:38 2026 -0400"
      },
      "message": "tests: check std rmeta for local path leaks\n\nThe current dwarfdump checks cannot see `.rmeta` leaks:\n\n* The compiler keeps unremapped local paths in metadata\n  unless the remap scope is `all` (see issue 159621)\n* std ships metadata as separate `.rmeta` via `-Zembed-metadata\u003dno`\n  so the leak does not even appear in the rlibs\n\nThis commit enhances to also check rmeta files.\n"
    },
    {
      "commit": "6085af642e9aa78f6137f33e2200bf8d917c4d0c",
      "tree": "bd90050a0d93ad28655ba65e29fbd0fc50d5bb5a",
      "parents": [
        "9636f9c4293c3dbdb204ca7c825b89877d78c956"
      ],
      "author": {
        "name": "Weihang Lo",
        "email": "me@weihanglo.tw",
        "time": "Wed Aug 12 23:52:30 2026 -0400"
      },
      "committer": {
        "name": "Weihang Lo",
        "email": "me@weihanglo.tw",
        "time": "Wed Sep 02 09:42:37 2026 -0400"
      },
      "message": "tests: check `$CARGO_HOME` leaks\n"
    },
    {
      "commit": "9636f9c4293c3dbdb204ca7c825b89877d78c956",
      "tree": "6c0b9dc2065042f7c710515ab74a20ffa9b5983c",
      "parents": [
        "3a43cb66f97d08ccde87a00599fac2d3c50eb177"
      ],
      "author": {
        "name": "Weihang Lo",
        "email": "me@weihanglo.tw",
        "time": "Fri Aug 07 08:39:41 2026 -0400"
      },
      "committer": {
        "name": "Weihang Lo",
        "email": "me@weihanglo.tw",
        "time": "Wed Sep 02 09:42:36 2026 -0400"
      },
      "message": "bootstrap: remap-debuginfo via cargo trim-paths\n\nReplace `RUSTC_DEBUGINFO_MAP` and `RUSTC_CARGO_REGISTRY_SRC_TO_REMAP`\nwith cargo trim-paths and `__CARGO_RUSTC_BOOTSTRAP_WS_REMAP` override\n(See cargo#17309).\n\nThe `RUSTC_DEBUGINFO_MAP` into `-ffile-prefix-map` in rustc_llvm\nwill be covered cc@1.3.0+ natively\n(which inherits and forwards `CARGO_TRIM_PATHS_REMAP`)\n"
    },
    {
      "commit": "ece2980246f013fd1486b7c9cf65d54fcc9754b7",
      "tree": "c2ead9bf4534f480af2ef4e365635467a5bebdbb",
      "parents": [
        "a4330234a776684c36428d001721d0320d24dd77"
      ],
      "author": {
        "name": "Ralf Jung",
        "email": "post@ralfj.de",
        "time": "Wed Aug 05 14:44:20 2026 +0200"
      },
      "committer": {
        "name": "Ralf Jung",
        "email": "post@ralfj.de",
        "time": "Wed Sep 02 14:46:04 2026 +0200"
      },
      "message": "volatile: allow accesses to trap\n"
    },
    {
      "commit": "b22bffaea5e050f7f3e11d5e773abfbf25dcbae7",
      "tree": "67dd33a88927045d928891ce509de9cfaca5c949",
      "parents": [
        "9bfb1784a8772471575d67d499c50e67908b8f5b"
      ],
      "author": {
        "name": "Boxy Uwu",
        "email": "rust@boxyuwu.dev",
        "time": "Fri Aug 21 17:10:40 2026 +0100"
      },
      "committer": {
        "name": "Boxy Uwu",
        "email": "rust@boxyuwu.dev",
        "time": "Wed Sep 02 13:37:43 2026 +0100"
      },
      "message": "propagate ambiguity not evaluate\n"
    },
    {
      "commit": "9bfb1784a8772471575d67d499c50e67908b8f5b",
      "tree": "02303013c3cc7e76f4471a606e475b4e8c4e442d",
      "parents": [
        "56047fc9447731cde74a47f4114c466791967dea"
      ],
      "author": {
        "name": "Boxy",
        "email": "rust@boxyuwu.dev",
        "time": "Fri Jul 24 17:23:49 2026 +0100"
      },
      "committer": {
        "name": "Boxy Uwu",
        "email": "rust@boxyuwu.dev",
        "time": "Wed Sep 02 13:37:43 2026 +0100"
      },
      "message": "always canonical form\n"
    },
    {
      "commit": "56047fc9447731cde74a47f4114c466791967dea",
      "tree": "a06f2363709440a4b38c2d74903f34766c990a9b",
      "parents": [
        "6d6f7753b8816acde6272f0bb0341c406325a0d9"
      ],
      "author": {
        "name": "Boxy Uwu",
        "email": "rust@boxyuwu.dev",
        "time": "Fri Aug 21 13:25:39 2026 +0100"
      },
      "committer": {
        "name": "Boxy Uwu",
        "email": "rust@boxyuwu.dev",
        "time": "Wed Sep 02 13:37:43 2026 +0100"
      },
      "message": "remove some stuff to make next commit diff nicer\n"
    },
    {
      "commit": "6d6f7753b8816acde6272f0bb0341c406325a0d9",
      "tree": "ec7aaaac9b09c66ef9d55c8c149c7b9e00af2fa2",
      "parents": [
        "cc69cca7b7775db8b8c6c3abce952f5e81c3dc79"
      ],
      "author": {
        "name": "Boxy Uwu",
        "email": "rust@boxyuwu.dev",
        "time": "Fri Aug 21 15:30:42 2026 +0100"
      },
      "committer": {
        "name": "Boxy Uwu",
        "email": "rust@boxyuwu.dev",
        "time": "Wed Sep 02 13:37:43 2026 +0100"
      },
      "message": "restructure `destructure_type_outlives_constraints_in_root`\n"
    },
    {
      "commit": "cc69cca7b7775db8b8c6c3abce952f5e81c3dc79",
      "tree": "60781fd923d7b418237728b567e476ecbb1919e7",
      "parents": [
        "93ac67a245b9b7e867661b383fd0838af5ef0c54"
      ],
      "author": {
        "name": "Boxy Uwu",
        "email": "rust@boxyuwu.dev",
        "time": "Fri Aug 21 15:24:10 2026 +0100"
      },
      "committer": {
        "name": "Boxy Uwu",
        "email": "rust@boxyuwu.dev",
        "time": "Wed Sep 02 13:37:43 2026 +0100"
      },
      "message": "restructure `pull_region_outlives_constraints_out_of_universe`\n"
    },
    {
      "commit": "93ac67a245b9b7e867661b383fd0838af5ef0c54",
      "tree": "81b81ebd56fb86f54d1d745badfa6e80be17f0fd",
      "parents": [
        "ac64915a5e882e0ba334c64183f35618cf68db01"
      ],
      "author": {
        "name": "Boxy Uwu",
        "email": "rust@boxyuwu.dev",
        "time": "Fri Aug 21 14:05:01 2026 +0100"
      },
      "committer": {
        "name": "Boxy Uwu",
        "email": "rust@boxyuwu.dev",
        "time": "Wed Sep 02 13:37:43 2026 +0100"
      },
      "message": "restructure `compute_new_region_constraints`\n"
    },
    {
      "commit": "ac64915a5e882e0ba334c64183f35618cf68db01",
      "tree": "f0675c783baac105ebadc688f9174abc67a4e406",
      "parents": [
        "a166ed99134faba881ccb406db41959dc54cf79a"
      ],
      "author": {
        "name": "Boxy Uwu",
        "email": "rust@boxyuwu.dev",
        "time": "Fri Aug 21 13:37:59 2026 +0100"
      },
      "committer": {
        "name": "Boxy Uwu",
        "email": "rust@boxyuwu.dev",
        "time": "Wed Sep 02 13:37:42 2026 +0100"
      },
      "message": "restructure `rewrite_type_outlives_constraints_in_universe`\n"
    },
    {
      "commit": "a166ed99134faba881ccb406db41959dc54cf79a",
      "tree": "e3361df37f8b25fa0479d23f7f401c7744348182",
      "parents": [
        "3a43cb66f97d08ccde87a00599fac2d3c50eb177"
      ],
      "author": {
        "name": "Boxy Uwu",
        "email": "rust@boxyuwu.dev",
        "time": "Fri Aug 21 15:59:34 2026 +0100"
      },
      "committer": {
        "name": "Boxy Uwu",
        "email": "rust@boxyuwu.dev",
        "time": "Wed Sep 02 13:37:42 2026 +0100"
      },
      "message": "split `rewrite_type_outlives_constraints_in_universe` into multiple fns\n"
    },
    {
      "commit": "0c2ee725a90e685df05b257862c026f4f460bf96",
      "tree": "90b5dd1f988b4f0dfa5180465c8661ade47be1ac",
      "parents": [
        "5db7f4be8a36c1b8ae19299469e2be2b0f052c21"
      ],
      "author": {
        "name": "Zalathar",
        "email": "Zalathar@users.noreply.github.com",
        "time": "Wed Sep 02 20:41:44 2026 +1000"
      },
      "committer": {
        "name": "Zalathar",
        "email": "Zalathar@users.noreply.github.com",
        "time": "Wed Sep 02 21:04:22 2026 +1000"
      },
      "message": "Rename `thir::ExprKind::Use` to `ValueExpr`\n\nThe current name is very confusing, because this node kind has nothing to do\nwith `use` imports or unstable `.use` expressions.\n\nIt actually represents an expression that must be lowered as a value, even if\nit would otherwise be a place-expression in place context.\n"
    },
    {
      "commit": "d5b8ff4d9bf424bbe8f66de5602631b5e8dfee5b",
      "tree": "52d7818d49236857f7713c8a5d97d69f59172c5b",
      "parents": [
        "604a1ee1b13419ae3ef750433dc276e45cba9600",
        "5f96a1cac7a6c204f76559bbba7ffedc1a696b80"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Wed Sep 02 12:46:15 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 02 12:46:15 2026 +0200"
      },
      "message": "Rollup merge of #162047 - nnethercote:empty-token-stream, r\u003dKobzol\n\nOptimize empty token streams\n\nEmpty token streams are common. Every one causes an allocation for the `Arc::new()`. We can instead have a single shared empty `TokenStream` and `AttrTokenStream`.\n\nr? @Kobzol\n"
    },
    {
      "commit": "604a1ee1b13419ae3ef750433dc276e45cba9600",
      "tree": "9d1029cee2e1d96f9a9b708eef577403ae5c0c50",
      "parents": [
        "558ae12097575da30279838a9991f7c848d54b54",
        "418993806b416ec6749af0143dd33560ce9e423d"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Wed Sep 02 12:46:15 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 02 12:46:15 2026 +0200"
      },
      "message": "Rollup merge of #162031 - laundmo:opt-next-solver-memory, r\u003dlcnr\n\nReduce next-solver memory usage by interning CanonicalQueryInput\n\nGoal: Reduce memory usage of next-solver especially when exceeding recursion limit\n\nChanges:\n- Added Interner::CanonicalInput associated type and surrounding interning machinery (mostly copied from ExternalConstraints)\n- Changed Cx::Input to be I:CanonicalInput and adjusted other places in the code to match, including calling the interning during canonicalize_goal\n\nResults:\nAccording to Heaptrack (and btop) peak memory usage for compiling `bevy_render` (like rust-lang/rust#161748) with next-solver enabled was reduced from ~15GiB to ~4GiB since most of it was the HashMap index for NestedGoals (and search_graph::GlobalCache), which used to be 56 bytes (IIRC), but now is a single reference thanks to Interned.\n\nCloses (maybe): https://github.com/rust-lang/rust/issues/161748\nTracking issue: https://github.com/rust-lang/goals/issues/113 and https://github.com/rust-lang/rust/issues/160895#issuecomment-5467918115\n\nr? @lcnr\n"
    },
    {
      "commit": "558ae12097575da30279838a9991f7c848d54b54",
      "tree": "fac3189512619f4b30b67ddee94a9d93973997b4",
      "parents": [
        "3a43cb66f97d08ccde87a00599fac2d3c50eb177",
        "e515460818af6185c681bc5e21667761b0a4d1c9"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Wed Sep 02 12:46:14 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 02 12:46:14 2026 +0200"
      },
      "message": "Rollup merge of #161850 - panstromek:SparseBitMatrix, r\u003dlqd,jackh726\n\nStore LiveLoans more densely packed\n\n`LiveLoans` originally used `SparseBitMatrix\u003cPointIndex, BorrowIndex\u003e` in a way that didn\u0027t use \"the sparseness\" very effectively. The borrow dimension is usually very low (\u003c10 bits 90% of the time), while the point dimension is typically order of magnitude higher.\n\nThis means that we used to allocate a bunch of 32-byte `DenseBitSet`s that only point to a few bits in heap-allocated `u64`. We only saved some memory by not allocating the whole `PointIndex` range, but we still often need to allocatate most of it.\n\nThis PR changes the representation to use a single flat representation with `GrowableBitSet` storing all bits in a single Vec. There\u0027s still a room for improvement but this should be a positive step forward.\n\nr? lqd\n"
    },
    {
      "commit": "59dabe56f7b78d9dd427645cd7f8e7fd426724cc",
      "tree": "2b372132d8480137c440c20bec2770b1297d0e04",
      "parents": [
        "3a43cb66f97d08ccde87a00599fac2d3c50eb177",
        "c82e1d80a5d052f2d4fab96e3e16f4275b67b599"
      ],
      "author": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Wed Sep 02 10:44:38 2026 +0000"
      },
      "committer": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Wed Sep 02 10:44:38 2026 +0000"
      },
      "message": "Auto merge of #162135 - flip1995:clippy-subtree-update, r\u003dManishearth\n\nClippy subtree update\n\nr? Manishearth \r\n\r\n2 days early, as cargo needs a fix that landed in Clippy last week and @weihanglo pointed out to me that I might run into bors queue stalls on Thursday with the 1.98.1 release."
    },
    {
      "commit": "2de164566072db2354995fe44ac28968c16f867f",
      "tree": "516c62943607f2302b47c179879da630941edeb6",
      "parents": [
        "09db86657d425ed3b4a07fbcd3910a09d6ab7152"
      ],
      "author": {
        "name": "Guillaume Gomez",
        "email": "contact@guillaume-gomez.fr",
        "time": "Wed Sep 02 12:30:40 2026 +0200"
      },
      "committer": {
        "name": "Guillaume Gomez",
        "email": "contact@guillaume-gomez.fr",
        "time": "Wed Sep 02 12:32:02 2026 +0200"
      },
      "message": "Fix more ui tests\n"
    },
    {
      "commit": "fa18a90a403ad2b5875d1893c49ed44550ac1be7",
      "tree": "f0343b5806dc52769f532ba6f57a99c7aa58b7ed",
      "parents": [
        "7a38c0c984f6d05be47cda885b66bc48b3b23ae3"
      ],
      "author": {
        "name": "Yukang",
        "email": "moorekang@gmail.com",
        "time": "Wed Sep 02 18:08:57 2026 +0800"
      },
      "committer": {
        "name": "Yukang",
        "email": "moorekang@gmail.com",
        "time": "Wed Sep 02 18:08:57 2026 +0800"
      },
      "message": "Remove wrong UnusedBraces lint for iterator loop in edition 2024\n"
    },
    {
      "commit": "7a71a7440f6244d302ae4ffb161724b34f5ba75b",
      "tree": "88d955caf506eb7b0183d7cb524161d1d7ae8a95",
      "parents": [
        "c81640d0588a35ca3f13c1f7895377d850f4d312"
      ],
      "author": {
        "name": "León Orell Valerian Liehr",
        "email": "me@fmease.dev",
        "time": "Wed Sep 02 11:20:11 2026 +0200"
      },
      "committer": {
        "name": "León Orell Valerian Liehr",
        "email": "me@fmease.dev",
        "time": "Wed Sep 02 11:25:49 2026 +0200"
      },
      "message": "Add warnings to `can_begin_*` methods that affect stable macro matching behavior\n"
    },
    {
      "commit": "c81640d0588a35ca3f13c1f7895377d850f4d312",
      "tree": "87861fb92e92f0e9b35e95150ed066f5e0e279ac",
      "parents": [
        "7ee0fba091b000cb4c11de7158a28baf2ca78695"
      ],
      "author": {
        "name": "León Orell Valerian Liehr",
        "email": "me@fmease.dev",
        "time": "Sun Aug 30 14:22:01 2026 +0200"
      },
      "committer": {
        "name": "León Orell Valerian Liehr",
        "email": "me@fmease.dev",
        "time": "Wed Sep 02 11:21:12 2026 +0200"
      },
      "message": "Remove parse recovery for `box` expressions\n"
    },
    {
      "commit": "7ee0fba091b000cb4c11de7158a28baf2ca78695",
      "tree": "1dd110dc7bd3f9a57735af5a71d7fdca368cf8a3",
      "parents": [
        "c25253fac451fff60fb5b6c0b2c64d60f628c7cd"
      ],
      "author": {
        "name": "León Orell Valerian Liehr",
        "email": "me@fmease.dev",
        "time": "Wed Sep 02 11:21:11 2026 +0200"
      },
      "committer": {
        "name": "León Orell Valerian Liehr",
        "email": "me@fmease.dev",
        "time": "Wed Sep 02 11:21:11 2026 +0200"
      },
      "message": "Render the `box` pattern removal diagnostic more actionable\n"
    },
    {
      "commit": "3a43cb66f97d08ccde87a00599fac2d3c50eb177",
      "tree": "c564efef69887fc005d9bc02ae17f53aedb01ea4",
      "parents": [
        "c25253fac451fff60fb5b6c0b2c64d60f628c7cd",
        "8e6d69e8222ad61d0a3f8a1234b83cebc5eb720f"
      ],
      "author": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Wed Sep 02 07:30:38 2026 +0000"
      },
      "committer": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Wed Sep 02 07:30:38 2026 +0000"
      },
      "message": "Auto merge of #162133 - nikic:llvm-23.1.0, r\u003dcuviper\n\nUpdate LLVM submodule\n\nUpdate to current release/23.x, which is a bit past the LLVM 23.1.0 release.\r\n\r\nFixes https://github.com/rust-lang/rust/issues/161336."
    },
    {
      "commit": "67bf3ebc32e21bdc9f6ac4639f3b1fad4509e885",
      "tree": "967e3a36d9587581babac0faa8017357c7dc6e6f",
      "parents": [
        "edc52f87c28f328c61685a02c47887a5cec7d767"
      ],
      "author": {
        "name": "WANG Rui",
        "email": "wangrui@loongson.cn",
        "time": "Thu Aug 13 10:22:30 2026 +0800"
      },
      "committer": {
        "name": "WANG Rui",
        "email": "wangrui@loongson.cn",
        "time": "Wed Sep 02 14:26:31 2026 +0800"
      },
      "message": "Explain LoongArch f16 NaN-boxing in inline asm\n\nThe psABI leaves the upper bits of a widened f16 value undefined, so\nthe NaN-boxing here isn\u0027t ABI-required. It\u0027s intentional: it matches\nLLVM\u0027s own codegen and avoids an f16 value being mistaken for a valid\nf32 value. Update the comment to reflect this.\n"
    },
    {
      "commit": "52bd1896ce9f3bc47a81d3946694b4f6592bca9c",
      "tree": "5aea9311efcf22f1205249c856609f9094482ecb",
      "parents": [
        "edc52f87c28f328c61685a02c47887a5cec7d767"
      ],
      "author": {
        "name": "khyperia",
        "email": "953151+khyperia@users.noreply.github.com",
        "time": "Wed Sep 02 07:02:57 2026 +0200"
      },
      "committer": {
        "name": "khyperia",
        "email": "953151+khyperia@users.noreply.github.com",
        "time": "Wed Sep 02 07:02:57 2026 +0200"
      },
      "message": "fix ICE in project_goals/inherent\n"
    },
    {
      "commit": "c25253fac451fff60fb5b6c0b2c64d60f628c7cd",
      "tree": "6d1ffc49a65064a81e64c4ddafa87f7496518972",
      "parents": [
        "edc52f87c28f328c61685a02c47887a5cec7d767",
        "d64ea7e2151ecbad3082c6df0cfec2704b0d0bac"
      ],
      "author": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Wed Sep 02 04:20:43 2026 +0000"
      },
      "committer": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Wed Sep 02 04:20:43 2026 +0000"
      },
      "message": "Auto merge of #162119 - tgross35:update-builtins, r\u003dfolkertdev\n\ncompiler-builtins subtree update\n\nSubtree update of `compiler-builtins` to https://github.com/rust-lang/compiler-builtins/commit/e91a3d3a6fccc4d0a1655fbda95576317f5e8be3.\r\n\r\nCreated using https://github.com/rust-lang/josh-sync.\r\n\r\nr? @ghost"
    },
    {
      "commit": "edc52f87c28f328c61685a02c47887a5cec7d767",
      "tree": "c87dc1da695bc4f005b9d1e2c2cb030bbfbe2bee",
      "parents": [
        "5db7f4be8a36c1b8ae19299469e2be2b0f052c21",
        "7755d45ec9d51fb560888523a01975d52df8df8e"
      ],
      "author": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Wed Sep 02 01:22:53 2026 +0000"
      },
      "committer": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Wed Sep 02 01:22:53 2026 +0000"
      },
      "message": "Auto merge of #162128 - clarfonthey:revert-drop-guard, r\u003dclarfonthey\n\nRevert \"Use `drop_guard` in some places in {core,alloc,std}\"\n\ncc @panstromek @GrigorenkoPV \r\n\r\nReverts this PR due to perf issues, so that a fix can be verified to not affect perf. Apologies for not initially running perf; kinda tunnel-visioned \"this just does the same thing\" without considering the changes from non-generic functions to generic closures."
    },
    {
      "commit": "f91c12f29eae6b63de9780d49d873425a832ad1a",
      "tree": "59774a92f59841adf371d683cf43e870ed3615dd",
      "parents": [
        "a4330234a776684c36428d001721d0320d24dd77"
      ],
      "author": {
        "name": "Nicholas Nethercote",
        "email": "n.nethercote@gmail.com",
        "time": "Wed Sep 02 10:55:35 2026 +1000"
      },
      "committer": {
        "name": "Nicholas Nethercote",
        "email": "n.nethercote@gmail.com",
        "time": "Wed Sep 02 11:05:02 2026 +1000"
      },
      "message": "Revert \"Implement Debug for C-like enums with a concatenated string\"\n\nFrom #155452.\n\nFixes #162124.\n"
    },
    {
      "commit": "3cc36822f191221f35e1e0892de393ab689a832b",
      "tree": "9923ae8052668c11c6562906d53997ab19ea391b",
      "parents": [
        "fa8bb67cd8b2c34d6a7344a3753a834497810635"
      ],
      "author": {
        "name": "Pavel Grigorenko",
        "email": "GrigorenkoPV@ya.ru",
        "time": "Wed Sep 02 00:16:10 2026 +0300"
      },
      "committer": {
        "name": "Pavel Grigorenko",
        "email": "GrigorenkoPV@ya.ru",
        "time": "Wed Sep 02 01:26:18 2026 +0300"
      },
      "message": "Don\u0027t special-case `!` in stability checks\n"
    },
    {
      "commit": "fa8bb67cd8b2c34d6a7344a3753a834497810635",
      "tree": "b0e607833ff3409d3e808210d47cae383e250618",
      "parents": [
        "a4330234a776684c36428d001721d0320d24dd77"
      ],
      "author": {
        "name": "Pavel Grigorenko",
        "email": "GrigorenkoPV@ya.ru",
        "time": "Wed Sep 02 01:16:00 2026 +0300"
      },
      "committer": {
        "name": "Pavel Grigorenko",
        "email": "GrigorenkoPV@ya.ru",
        "time": "Wed Sep 02 01:26:18 2026 +0300"
      },
      "message": "ineffective_unstable_trait_impl: add tests for `fn(!)` \u0026 `fn(UnstableT)`\n\nCo-authored-by: mejrs \u003c59372212+mejrs@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "1bd13e50ca0bc6c7f2cad968d6e0e10ecaca8bc9",
      "tree": "1aac504d658588c1790b34a46da4ac1aabb39fc6",
      "parents": [
        "bb0bcf25cca2f9996c5d374f4fd8d914965a03f6"
      ],
      "author": {
        "name": "Folkert de Vries",
        "email": "folkert@folkertdev.nl",
        "time": "Tue Sep 01 21:05:01 2026 +0200"
      },
      "committer": {
        "name": "Folkert de Vries",
        "email": "folkert@folkertdev.nl",
        "time": "Wed Sep 02 00:20:07 2026 +0200"
      },
      "message": "fix itanium mangling of `f128` on powerpc\n\nbecause \"g\" is used for __ibm128, __float128 gets a custom name\n"
    },
    {
      "commit": "b0ba8b100ef633a153432dfe94dcaf11486133ca",
      "tree": "d7bf2fc9856429c2be613bbd2133c545466ce890",
      "parents": [
        "a4330234a776684c36428d001721d0320d24dd77"
      ],
      "author": {
        "name": "Nicholas Nethercote",
        "email": "n.nethercote@gmail.com",
        "time": "Tue Sep 01 15:57:03 2026 +1000"
      },
      "committer": {
        "name": "Nicholas Nethercote",
        "email": "n.nethercote@gmail.com",
        "time": "Wed Sep 02 07:29:56 2026 +1000"
      },
      "message": "Introduce `PerOwnerLoweringState`\n\n`LoweringContext` has 14 fields that get swapped in and out in\n`with_hir_id_owner`. This is fragile and gross. This commit moves those\nfields into a new struct, `PerOwnerLoweringState`, which means they can\nbe swapped in and out cleanly.\n\nOther changes:\n- All `self.foo` accesses to those 14 fields become `self.curr_owner.foo`.\n- Field renames:\n  - `current_hir_id_owner` -\u003e `owner_id`\n  - `current_disambiguator` -\u003e `disambiguator`\n- `LoweringContext::make_owner_info` becomes\n  `PerOwnerLoweringState::into_owner_info`; this makes sense because\n  it consumes the `PerOwnerLoweringState`.\n- Stronger assertions: `into_owner_info` has assertions that now apply\n  to the `with_lctx` path as well as the `with_hir_id_owner` path.\n"
    },
    {
      "commit": "5db7f4be8a36c1b8ae19299469e2be2b0f052c21",
      "tree": "22da1c8ff3c137e227ab497d544aa643fadb0da0",
      "parents": [
        "a4330234a776684c36428d001721d0320d24dd77",
        "92f9694ce2a3576eb7e49c4c99dbd9802fa19a50"
      ],
      "author": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Tue Sep 01 20:48:14 2026 +0000"
      },
      "committer": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Tue Sep 01 20:48:14 2026 +0000"
      },
      "message": "Auto merge of #162148 - JonathanBrouwer:rollup-Be980n8, r\u003dJonathanBrouwer\n\nRollup of 11 pull requests\n\nSuccessful merges:\n\n - rust-lang/rust#151618 (rustdoc: add `--print` option)\n - rust-lang/rust#161287 (Update `icu_list` dependency to 2.3)\n - rust-lang/rust#161767 (change DEFAULT_STACK_SIZE to be 32MB on s390x)\n - rust-lang/rust#161968 (Diverse offload fixes)\n - rust-lang/rust#161971 (Remove -Zsaturating-float-casts flag)\n - rust-lang/rust#162071 (Fix ICE of getting item name from RPITIT)\n - rust-lang/rust#161209 (Rework `next_power_of_two` to always be `1 \u003c\u003c …`)\n - rust-lang/rust#162073 (Change some `Infallible` to `!` in std)\n - rust-lang/rust#162086 (Remove `gate_check` from `AttributeStability::Unstable`)\n - rust-lang/rust#162102 (`alloc` crate: shrink undocumented `unsafe` blocks)\n - rust-lang/rust#162110 (make it clear that Range cannot represent arbitrary ranges)\n\n\n\n"
    },
    {
      "commit": "47fc75df4415debfcd437c61cf80b00d125089ce",
      "tree": "9fe30d2348766560d7d7833327a0e78cf612f009",
      "parents": [
        "a4330234a776684c36428d001721d0320d24dd77"
      ],
      "author": {
        "name": "Folkert de Vries",
        "email": "folkert@folkertdev.nl",
        "time": "Tue Sep 01 22:01:02 2026 +0200"
      },
      "committer": {
        "name": "Folkert de Vries",
        "email": "folkert@folkertdev.nl",
        "time": "Tue Sep 01 22:01:02 2026 +0200"
      },
      "message": "Revert \"retrieve supported GCC targets from the sysroot\"\n\nThis reverts commit 5a5b84aa5fbb5cdef0ecc667fd7afdc876dab08e.\n"
    },
    {
      "commit": "bb0bcf25cca2f9996c5d374f4fd8d914965a03f6",
      "tree": "04052879d7c09cfaa07d826a0e4acc8f44bb08e1",
      "parents": [
        "45b97ea0cc2cf6b6d8d0a9bbb1906dc8d29a53d9"
      ],
      "author": {
        "name": "Folkert de Vries",
        "email": "folkert@folkertdev.nl",
        "time": "Tue Sep 01 21:04:19 2026 +0200"
      },
      "committer": {
        "name": "Folkert de Vries",
        "email": "folkert@folkertdev.nl",
        "time": "Tue Sep 01 21:50:00 2026 +0200"
      },
      "message": "add itanium mangling test for `f16` and `f128`\n"
    },
    {
      "commit": "45b97ea0cc2cf6b6d8d0a9bbb1906dc8d29a53d9",
      "tree": "1f967b1c7bd5b8b4a0d5389c84d341f7219a92d6",
      "parents": [
        "9ed2e0c0cac7ce208faf5055b0452abdc04167a0"
      ],
      "author": {
        "name": "Folkert de Vries",
        "email": "folkert@folkertdev.nl",
        "time": "Tue Sep 01 21:39:11 2026 +0200"
      },
      "committer": {
        "name": "Folkert de Vries",
        "email": "folkert@folkertdev.nl",
        "time": "Tue Sep 01 21:50:00 2026 +0200"
      },
      "message": "itanium mangling: use minicore\n"
    },
    {
      "commit": "1d08a6b9ff707d19caf72d8ba427ec2ffa399739",
      "tree": "4bd785725d7b983640622dc977d1bf1cb57bc6b7",
      "parents": [
        "a4330234a776684c36428d001721d0320d24dd77"
      ],
      "author": {
        "name": "Josh Stone",
        "email": "jistone@redhat.com",
        "time": "Tue Sep 01 12:49:07 2026 -0700"
      },
      "committer": {
        "name": "Josh Stone",
        "email": "jistone@redhat.com",
        "time": "Tue Sep 01 12:49:07 2026 -0700"
      },
      "message": "Prefer `LLVMGetVersion` for runtime info\n\nOur `LLVMRustVersion*` functions get hard-coded `LLVM_VERSION_*` values\nwhen we build `RustWrapper.cpp`, but this could be different than the\nactual LLVM library at runtime. This should never happen with toolchains\nfrom `rustup`, but with external LLVM in a distro build, for example,\n`rustc` and `LLVM` can be upgraded independently.\n\nMost of the time when we check the LLVM version, we\u0027re only looking at\nthe major version anyway, and we already assert that these are equal in\n`configure_llvm`. However, for anything that does check the minor or\npatch version too, the runtime version is probably more relevant.\n"
    },
    {
      "commit": "09db86657d425ed3b4a07fbcd3910a09d6ab7152",
      "tree": "96fc40689c0a40f3acdffea5aface8c6254cb7e9",
      "parents": [
        "5ba810f06513b45387f1ed249a49b3ed75c8f47f"
      ],
      "author": {
        "name": "Guillaume Gomez",
        "email": "contact@guillaume-gomez.fr",
        "time": "Tue Sep 01 21:32:43 2026 +0200"
      },
      "committer": {
        "name": "Guillaume Gomez",
        "email": "contact@guillaume-gomez.fr",
        "time": "Tue Sep 01 21:32:43 2026 +0200"
      },
      "message": "Add missing `rustdoc-ui` test output\n"
    },
    {
      "commit": "92f9694ce2a3576eb7e49c4c99dbd9802fa19a50",
      "tree": "22da1c8ff3c137e227ab497d544aa643fadb0da0",
      "parents": [
        "51998dbbf8dacc3d53a85cc5a010b3cc3e31c377",
        "baf382f0f5d9adc78de52dbc9eccd28c4b0eb225"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Tue Sep 01 21:26:20 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 01 21:26:20 2026 +0200"
      },
      "message": "Rollup merge of #162110 - RalfJung:range, r\u003dnia-e\n\nmake it clear that Range cannot represent arbitrary ranges\n\nThis seems like a useful clarification, though it is already heavily implied by the first sentence in the docs.\n\nWhat is less clear to me is what type one *should* use to represent arbitrary ranges. Should we recommend `(Bound\u003cT\u003e, Bound\u003cT\u003e)` for that purpose? It seems best-stuied, and is already used for that purpose by the btree collections and in https://github.com/rust-lang/rust/issues/136903. However, I suspect it is also common that one wants to represent an arbitrary range that\u0027s bounded on both sides. `RangeInclusive` can represent all those (though representing the empty range is a bit awkward), `Range` cannot.\n\nNominating for t-libs to get their general vibe on what we want to recommend here, if anything.\n"
    },
    {
      "commit": "51998dbbf8dacc3d53a85cc5a010b3cc3e31c377",
      "tree": "1c00a59d982f0eb731a9dc99845bd6d4e5042c3e",
      "parents": [
        "f7ed577f67249274bf3e7fcafa505381c18d9d4e",
        "b5e834472fb95c719583f892425071ffc650bb40"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Tue Sep 01 21:26:19 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 01 21:26:19 2026 +0200"
      },
      "message": "Rollup merge of #162102 - DanielEScherzer:less-unsafe-in-alloc, r\u003dclarfonthey\n\n`alloc` crate: shrink undocumented `unsafe` blocks\n\nReduce the scope of `unsafe` blocks that are not yet documented by moving safe operations out of the blocks, making it easier to add the missing documentation in the future.\n"
    },
    {
      "commit": "f7ed577f67249274bf3e7fcafa505381c18d9d4e",
      "tree": "96b79030e4d59916793b9fd689e00afbc81b471c",
      "parents": [
        "e2897d777d62e0aa20fb35eda7bc3acc9f03fcc9",
        "7a02fd9f271adfb948158b13a965daee562bd73b"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Tue Sep 01 21:26:18 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 01 21:26:18 2026 +0200"
      },
      "message": "Rollup merge of #162086 - JonathanBrouwer:remove_gate_check, r\u003dmejrs\n\nRemove `gate_check` from `AttributeStability::Unstable`\n\nBased on the idea from https://github.com/rust-lang/rust/pull/162051#discussion_r3894434669\n\nr? @mejrs\n"
    },
    {
      "commit": "e2897d777d62e0aa20fb35eda7bc3acc9f03fcc9",
      "tree": "3ecdc732a8aa3c506775dbf0fb391ebe4e4bfd10",
      "parents": [
        "467985700201bb28d01d40ff87f15fdd79b4e3fd",
        "dd132214ed3e2415da4292fec21f564f4496baa5"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Tue Sep 01 21:26:17 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 01 21:26:17 2026 +0200"
      },
      "message": "Rollup merge of #162073 - camsteffen:lib-eat-never, r\u003dclarfonthey\n\nChange some `Infallible` to `!` in std\n\nI believe this desirable since we recommend `!` over `Infallible`, so std follows its own advice. Most changes are to unstable features, but not all. Similar changes in compiler have to wait for a bootstrap update.\n"
    },
    {
      "commit": "467985700201bb28d01d40ff87f15fdd79b4e3fd",
      "tree": "c831c5bf47906e130be331a963802975549592ca",
      "parents": [
        "80c5ce687ba4ba4df405bcd7d3c3730ce2e7350b",
        "f771946e61c6728b1d2a2c45272d0d4740ba61d4"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Tue Sep 01 21:26:16 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 01 21:26:16 2026 +0200"
      },
      "message": "Rollup merge of #161209 - scottmcm:redo-npot, r\u003dclarfonthey\n\nRework `next_power_of_two` to always be `1 \u003c\u003c …`\n\nr? @clarfonthey\nWho accidentally nerd-sniped me by mentioning rust-lang/rust#161069\n\nThis obviates that PR by reworking the `(checked_)next_power_of_two` logic to calculate the necessary exponent e, then return 2ᵉ, so it\u0027s structurally obvious from the IR -- the `shl nuw 1, …` instruction -- that it\u0027s always a power of two.\n\nAs always, the reason this is tricky is because shifts don\u0027t work for `\u003c\u003c Self::BITS`.  The previous code handled that by checking `self \u003c\u003d 1` first, and thus doing a `-1 \u003e\u003e n` where `n \u003c BITS`.  This code instead flips the check: it looks up-front for a value that will wrap (an input above `1 \u003c\u003c (BITS - 1)`) and thus by excluding those cases the calculated `1 \u003c\u003c n` always has `n \u003c BITS`.  And the codegen tests show that, without needing any `llvm.assume`s, LLVM can take advantage of it to do things like rewriting `%` to masking.  Plus the overflow check optimizes out for constrained inputs like slice lengths.\n"
    },
    {
      "commit": "80c5ce687ba4ba4df405bcd7d3c3730ce2e7350b",
      "tree": "b5c42e81d3ae5414382449d87c6f5bbe9a88eb05",
      "parents": [
        "198bd21de8c5153da5c523893ecfb2d77c4d09ab",
        "2da32405305a277a14178b259604f518ce31276a"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Tue Sep 01 21:26:15 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 01 21:26:15 2026 +0200"
      },
      "message": "Rollup merge of #162071 - chenyukang:yukang-fix-161915-rpitit-mismatch-ice, r\u003destebank\n\nFix ICE of getting item name from RPITIT\n\nFixes rust-lang/rust#161915\n\nRPITIT projections use anonymous associated type and have no item name.\n"
    },
    {
      "commit": "198bd21de8c5153da5c523893ecfb2d77c4d09ab",
      "tree": "7c5bcd0adc51af4cc425022140a2d9ff9466ce08",
      "parents": [
        "fc17dbac79b27aac9e0e24f059647d64bfb83992",
        "c7d949d9ead313fd9d1c14edfe709d1b1669b6f1"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Tue Sep 01 21:26:14 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 01 21:26:14 2026 +0200"
      },
      "message": "Rollup merge of #161971 - hanna-kruppe:rm-flag-satfpcast, r\u003dRalfJung\n\nRemove -Zsaturating-float-casts flag\n\nI added this flag back in 2017 (rust-lang/rust#45205) to enable benchmarking of the saturating semantics when it was newly implemented and still experimental. But saturation has been the official semantics for float\u003c-\u003eint `as` casts for years now. A flag for turning it off no longer serves any purpose, it\u0027s just `-Zplease-miscompile-casts` now.\n"
    },
    {
      "commit": "fc17dbac79b27aac9e0e24f059647d64bfb83992",
      "tree": "49f9d6b83e7959fdb6d09c28dc3aa62e68b06bab",
      "parents": [
        "d02dac29dec1c9cf82012c49b208d7819ae9c3c4",
        "5698c8d51522a3a3794df756f86576f03416bd41"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Tue Sep 01 21:26:13 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 01 21:26:13 2026 +0200"
      },
      "message": "Rollup merge of #161968 - Sa4dUs:offload-fix, r\u003dZuseZ4\n\nDiverse offload fixes\n\n`HostMetadata` pass skips linking. Now, `offload_kernel` macro lowers to `core` instead of `std`.\n\ncloses: https://github.com/rust-lang/rust/issues/161703\n\nr? @ZuseZ4\n"
    },
    {
      "commit": "d02dac29dec1c9cf82012c49b208d7819ae9c3c4",
      "tree": "d17e60ad9e6b86a1591a48a0995dea88d33a2a5b",
      "parents": [
        "fdfd0e0ac94fd3b3e6b6a959a34f975f6176ef85",
        "d3a3f135a353104f5e413c1cdced76e06f73d999"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Tue Sep 01 21:26:12 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 01 21:26:12 2026 +0200"
      },
      "message": "Rollup merge of #161767 - fneddy:fix_stack_size_s390x, r\u003dChrisDenton\n\nchange DEFAULT_STACK_SIZE to be 32MB on s390x\n\n`tests/ui/match/match-stack-overflow-72933-.rs` crashes on s390x due to hitting stack_size limit(rust-lang/rust#161742).\nchanging the size to 32MB on s390x fixes the crash.\n"
    },
    {
      "commit": "fdfd0e0ac94fd3b3e6b6a959a34f975f6176ef85",
      "tree": "4729822e27f42b1a9df6c55cbedb0c2eea6ac0c5",
      "parents": [
        "549f475a136dfb22dcc76566f05db6bd57beb39c",
        "80dc5df240ffbd0addc5cf73e9dfd136b4c70e5a"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Tue Sep 01 21:26:11 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 01 21:26:11 2026 +0200"
      },
      "message": "Rollup merge of #161287 - robertbastian:23, r\u003dManishearth\n\nUpdate `icu_list` dependency to 2.3\n\nThis removes the `icu_collections` transitive dependency, and uses the smaller `icu_locale_fallback` instead of `icu_locale`.\n\nr? manishearth\n"
    },
    {
      "commit": "549f475a136dfb22dcc76566f05db6bd57beb39c",
      "tree": "83c7b38c2f5f440fef5bdf4d548d749a18640851",
      "parents": [
        "a4330234a776684c36428d001721d0320d24dd77",
        "bf27a5a38b600acb54b5b2935491b78513ba0018"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Tue Sep 01 21:26:10 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 01 21:26:10 2026 +0200"
      },
      "message": "Rollup merge of #151618 - ShE3py:rustdoc-print, r\u003dnotriddle\n\nrustdoc: add `--print` option\n\nContext: `--print crate-root-lint-levels` (rust-lang/rust#139180) is only available for `rustc` and `clippy-driver`, while it would make sense for it to also be available for `rustdoc` (à la rust-lang/rust#83895.)\n\nNot too sure about the stability of `rustdoc --print\u003dany` or if this needs a MCP; strictly speaking, only `rustdoc +nightly -Z unstable-options --print\u003dcrate-root-lint-levels` would be required (and the `rustdoc --print` would be stabilized together with `crate-root-lint-levels`), but I guess that makes sense to have all the `--print`s for consistency.\n\nFor regression tests, not sure if ui or run-make is preferable, as run-make would need some sort of trait to avoid duplicating code between `rustc()` and `rustdoc()` (or just test `rustdoc` as it delegates to `rustc`):\nhttps://github.com/rust-lang/rust/blob/021fc25b7a48f6051bee1e1f06c7a277e4de1cc9/tests/run-make/print-crate-root-lint-levels/rmake.rs#L82-L88\n\n@rustbot label +A-CLI +A-print-requests\n"
    },
    {
      "commit": "7a44484407077776e30120f5e72cdef2820e8856",
      "tree": "f831d29f9b8b7396a6eb48bc1dd0b1656a4fd5ba",
      "parents": [
        "a4330234a776684c36428d001721d0320d24dd77"
      ],
      "author": {
        "name": "Leonard Chan",
        "email": "leonardchan@google.com",
        "time": "Fri Jul 24 23:03:20 2026 +0000"
      },
      "committer": {
        "name": "Leonard Chan",
        "email": "leonardchan@google.com",
        "time": "Tue Sep 01 19:07:09 2026 +0000"
      },
      "message": "fuchsia: Add safestack as a supported sanitizer for x86_64 fuchsia\n\nMake it also enabled by default just like it is for clang.\n"
    },
    {
      "commit": "9ed2e0c0cac7ce208faf5055b0452abdc04167a0",
      "tree": "d148dd6b659c240ff0ae91df57708ce901f7f72d",
      "parents": [
        "a4330234a776684c36428d001721d0320d24dd77"
      ],
      "author": {
        "name": "Folkert de Vries",
        "email": "folkert@folkertdev.nl",
        "time": "Tue Sep 01 20:44:08 2026 +0200"
      },
      "committer": {
        "name": "Folkert de Vries",
        "email": "folkert@folkertdev.nl",
        "time": "Tue Sep 01 20:44:08 2026 +0200"
      },
      "message": "reformat itanium mangling test to be more readable\n"
    },
    {
      "commit": "7394cc66c3994fc944228e166a66ab9e9d4a1692",
      "tree": "0ce38811f4c0525b0db225985f90ebb7b79c2a76",
      "parents": [
        "3cabe36ceb022e2f56d4d330b1e2886f31117f18"
      ],
      "author": {
        "name": "joboet",
        "email": "jonasboettiger@icloud.com",
        "time": "Tue Sep 01 16:31:12 2026 +0200"
      },
      "committer": {
        "name": "joboet",
        "email": "jonasboettiger@icloud.com",
        "time": "Tue Sep 01 20:07:46 2026 +0200"
      },
      "message": "std: improve safety documentation in UNIX stack overflow code\n"
    },
    {
      "commit": "e515460818af6185c681bc5e21667761b0a4d1c9",
      "tree": "ffd629133aa8dfa340e44e64820fda4feb9784c5",
      "parents": [
        "a4330234a776684c36428d001721d0320d24dd77"
      ],
      "author": {
        "name": "panstromek",
        "email": "panstromek@seznam.cz",
        "time": "Thu Aug 27 07:05:25 2026 +0200"
      },
      "committer": {
        "name": "panstromek",
        "email": "panstromek@seznam.cz",
        "time": "Tue Sep 01 19:02:24 2026 +0200"
      },
      "message": "Store LiveLoans more densely packed\n"
    },
    {
      "commit": "7a02fd9f271adfb948158b13a965daee562bd73b",
      "tree": "770ba25906e9cf4bc2d0ca36c8f79732de0a4edf",
      "parents": [
        "a4330234a776684c36428d001721d0320d24dd77"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Mon Aug 31 22:02:33 2026 +0200"
      },
      "committer": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Tue Sep 01 18:45:44 2026 +0200"
      },
      "message": "Remove `gate_check` from `AttributeStability::Unstable`\n"
    },
    {
      "commit": "c82e1d80a5d052f2d4fab96e3e16f4275b67b599",
      "tree": "a36f053ddbca0a074c471400b0e25375387d687c",
      "parents": [
        "3072f8c32e0d18d96b2f9f62ca4af278bd6d31b2"
      ],
      "author": {
        "name": "Philipp Krones",
        "email": "hello@philkrones.com",
        "time": "Tue Sep 01 18:39:31 2026 +0200"
      },
      "committer": {
        "name": "Philipp Krones",
        "email": "hello@philkrones.com",
        "time": "Tue Sep 01 18:39:31 2026 +0200"
      },
      "message": "Update Cargo.lock\n"
    },
    {
      "commit": "3072f8c32e0d18d96b2f9f62ca4af278bd6d31b2",
      "tree": "d96987d458268ce46ceb601e5d588c0256105c37",
      "parents": [
        "a4330234a776684c36428d001721d0320d24dd77",
        "7a7ce1463a84f0a3a9cf01dc03c2c9186c5a109c"
      ],
      "author": {
        "name": "Philipp Krones",
        "email": "hello@philkrones.com",
        "time": "Tue Sep 01 18:30:28 2026 +0200"
      },
      "committer": {
        "name": "Philipp Krones",
        "email": "hello@philkrones.com",
        "time": "Tue Sep 01 18:30:28 2026 +0200"
      },
      "message": "Merge commit \u00277a7ce1463a84f0a3a9cf01dc03c2c9186c5a109c\u0027 into clippy-subtree-update\n"
    },
    {
      "commit": "7a7ce1463a84f0a3a9cf01dc03c2c9186c5a109c",
      "tree": "da2a5e299072ea3e3778bac71fbe1e1e6e745ad0",
      "parents": [
        "3ce9fd294d4e486a42f08712b25ae4731b956731",
        "34ace9862f3584a9493049347c3158607f7586e8"
      ],
      "author": {
        "name": "Philipp Krones",
        "email": "hello@philkrones.com",
        "time": "Tue Sep 01 16:27:37 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 01 16:27:37 2026 +0000"
      },
      "message": "Rustup (#17668)\n\nr? @ghost\n\nchangelog: none\n"
    },
    {
      "commit": "34ace9862f3584a9493049347c3158607f7586e8",
      "tree": "da2a5e299072ea3e3778bac71fbe1e1e6e745ad0",
      "parents": [
        "12bb61debef47e79e2a667b7b5171773bf33486b"
      ],
      "author": {
        "name": "Philipp Krones",
        "email": "hello@philkrones.com",
        "time": "Tue Sep 01 18:15:09 2026 +0200"
      },
      "committer": {
        "name": "Philipp Krones",
        "email": "hello@philkrones.com",
        "time": "Tue Sep 01 18:15:09 2026 +0200"
      },
      "message": "Bump nightly version -\u003e 2026-09-01\n"
    },
    {
      "commit": "12bb61debef47e79e2a667b7b5171773bf33486b",
      "tree": "09d68c33fbe98be01c5516f5647f86b4dbc9d4a6",
      "parents": [
        "83327170e21327b096adc5df6f059a753c076b2c"
      ],
      "author": {
        "name": "Philipp Krones",
        "email": "hello@philkrones.com",
        "time": "Tue Sep 01 18:15:03 2026 +0200"
      },
      "committer": {
        "name": "Philipp Krones",
        "email": "hello@philkrones.com",
        "time": "Tue Sep 01 18:15:03 2026 +0200"
      },
      "message": "Update comment_width in rustfmt.toml\n\nThis changed in rust-lang/rustfmt#6802\n"
    },
    {
      "commit": "83327170e21327b096adc5df6f059a753c076b2c",
      "tree": "30a6b598e006964e7a73feb11e5dd03742cd76ac",
      "parents": [
        "34239b7ce1ed0be1641cc654f335dcd9878315a4",
        "3ce9fd294d4e486a42f08712b25ae4731b956731"
      ],
      "author": {
        "name": "Philipp Krones",
        "email": "hello@philkrones.com",
        "time": "Tue Sep 01 17:51:32 2026 +0200"
      },
      "committer": {
        "name": "Philipp Krones",
        "email": "hello@philkrones.com",
        "time": "Tue Sep 01 18:14:24 2026 +0200"
      },
      "message": "Merge remote-tracking branch \u0027upstream/master\u0027 into rustup\n"
    },
    {
      "commit": "baf382f0f5d9adc78de52dbc9eccd28c4b0eb225",
      "tree": "b4ba02ec045f8860e7d19abde7f32809c8141cd7",
      "parents": [
        "45f215f136e00d8a74c69afde2f71be3f16837cf"
      ],
      "author": {
        "name": "Ralf Jung",
        "email": "post@ralfj.de",
        "time": "Tue Sep 01 11:04:38 2026 +0200"
      },
      "committer": {
        "name": "Ralf Jung",
        "email": "post@ralfj.de",
        "time": "Tue Sep 01 18:14:01 2026 +0200"
      },
      "message": "make it clear that Range cannot represent arbitrary ranges\n"
    },
    {
      "commit": "8e6d69e8222ad61d0a3f8a1234b83cebc5eb720f",
      "tree": "aac220f13b7236ca75251b26e4110a75739e956b",
      "parents": [
        "70222712809cd5cc1718ed8995914a1cbacb6b92"
      ],
      "author": {
        "name": "Nikita Popov",
        "email": "npopov@redhat.com",
        "time": "Tue Sep 01 17:12:16 2026 +0200"
      },
      "committer": {
        "name": "Nikita Popov",
        "email": "npopov@redhat.com",
        "time": "Tue Sep 01 17:12:16 2026 +0200"
      },
      "message": "Update LLVM submodule\n"
    },
    {
      "commit": "418993806b416ec6749af0143dd33560ce9e423d",
      "tree": "29ea7f406a3442f598821aca6e97dc0c0a22418d",
      "parents": [
        "b9978df45062e62b758334e104fb6e03a8373681"
      ],
      "author": {
        "name": "laund",
        "email": "me@laund.moe",
        "time": "Tue Sep 01 17:04:22 2026 +0200"
      },
      "committer": {
        "name": "laund",
        "email": "me@laund.moe",
        "time": "Tue Sep 01 17:05:42 2026 +0200"
      },
      "message": "clean up CanonicalInputRaw, CanonicalInputData, and comment why its Interned\n"
    }
  ],
  "next": "5ba810f06513b45387f1ed249a49b3ed75c8f47f"
}
