)]}'
{
  "commit": "683dd08db5808c41baceef49368fc82a6c4767bb",
  "tree": "5b56416709c7b32b7e49ecc5bcb4098341dee331",
  "parents": [
    "d2f887349fe3ea079a4f89b020ce6df1993e1e06",
    "ff0011054366bac13a6b01e4a84c76f2a821c52e"
  ],
  "author": {
    "name": "bors",
    "email": "bors@rust-lang.org",
    "time": "Thu Nov 20 04:26:30 2025 +0000"
  },
  "committer": {
    "name": "bors",
    "email": "bors@rust-lang.org",
    "time": "Thu Nov 20 04:26:30 2025 +0000"
  },
  "message": "Auto merge of #89917 - davidtwco:issue-60705-stabilize-rust-symbol-mangling-scheme, r\u003dwesleywiser\n\nsess: default to v0 symbol mangling on nightly\n\ncc rust-lang/rust#60705 rust-lang/compiler-team#938\n\nRust\u0027s current mangling scheme depends on compiler internals; loses information about generic parameters (and other things) which makes for a worse experience when using external tools that need to interact with Rust symbol names; is inconsistent; and can contain `.` characters which aren\u0027t universally supported. Therefore, Rust has defined its own symbol mangling scheme which is defined in terms of the Rust language, not the compiler implementation; encodes information about generic parameters in a reversible way; has a consistent definition; and generates symbols that only use the characters `A-Z`, `a-z`, `0-9`, and `_`.\n\nSupport for the new Rust symbol mangling scheme has been added to upstream tools that will need to interact with Rust symbols (e.g. debuggers).\n\nThis pull request changes the default symbol mangling scheme from the legacy scheme to the new Rust mangling scheme on nightly.\n\nThe following pull requests implemented v0 mangling in rustc (if I\u0027m missing any, let me know):\n\n- rust-lang/rust#57967\n- rust-lang/rust#63559\n- rust-lang/rust#75675\n- rust-lang/rust#77452\n- rust-lang/rust#77554\n- rust-lang/rust#83767\n- rust-lang/rust#87194\n- rust-lang/rust#87789\n\nRust\u0027s symbol mangling scheme has support in the following external tools:\n\n- `binutils`/`gdb` (GNU `libiberty`)\n    - [[PATCH] Move rust_{is_mangled,demangle_sym} to a private libiberty header.\n](https://gcc.gnu.org/pipermail/gcc-patches/2019-June/523011.html) committed as https://github.com/gcc-mirror/gcc/commit/979526c9ce7bb79315f0f91fde0668a5ad8536df\n    - [[PATCH] Simplify and generalize rust-demangle\u0027s unescaping logic.\n](https://gcc.gnu.org/pipermail/gcc-patches/2019-August/527835.html) committed as https://github.com/gcc-mirror/gcc/commit/42bf58bb137992b876be37f8b2e683c49bc2abed\n    - [[PATCH] Remove some restrictions from rust-demangle.\n](https://gcc.gnu.org/pipermail/gcc-patches/2019-September/530445.html) committed as https://github.com/gcc-mirror/gcc/commit/e1cb00db670e4eb277f8315ecc1da65a5477298d\n    - [[PATCH] Refactor rust-demangle to be independent of C++ demangling.\n](https://gcc.gnu.org/pipermail/gcc-patches/2019-November/533719.html) ([original submission](https://gcc.gnu.org/pipermail/gcc-patches/2019-October/532388.html)) committed as https://github.com/gcc-mirror/gcc/commit/32fc3719e06899d43e2298ad6d0028efe5ec3024\n    - [[PATCH] Support the new (\"v0\") mangling scheme in rust-demangle.\n](https://gcc.gnu.org/pipermail/gcc-patches/2020-November/558905.html) ([original submission](https://gcc.gnu.org/pipermail/gcc-patches/2020-March/542012.html)) committed as https://github.com/gcc-mirror/gcc/commit/84096498a7bd788599d4a7ca63543fc7c297645e\n- `lldb`/`llvm-objdump`/`llvm-nm`/`llvm-symbolizer`/`llvm-cxxfilt`/etc\n  - https://github.com/llvm/llvm-project/commit/7310403e3cdf8a436f94770e1a1498db05d2d091\n  - https://github.com/llvm/llvm-project/commit/c8c2b4629f7597ac16102dab6150da14d68167de\n  - https://github.com/llvm/llvm-project/commit/0a2d4f3f24a377dc7d3cbed16d30603dc27554a8\n- Linux `perf`\n- `valgrind`\n  - [Update demangler to support Rust v0 name mangling.](https://bugs.kde.org/show_bug.cgi?id\u003d431306)\n\nhttps://github.com/rust-lang/rust/pull/85530#issuecomment-857855379 contains a summary of the most recent crater run of the v0 mangling, and the remaining issues from that were fixed by rust-lang/rust#87194 (confirmed by follow-up crater run, https://github.com/rust-lang/rust/pull/85530#issuecomment-883679416).\n\n`@rustbot` label +T-compiler\nr? `@michaelwoerister`\n",
  "tree_diff": []
}
