Discussion of improved Rust demangling started with:
https://lore.kernel.org/lkml/jgxfnphfo3nzlfipnuuzdlfc4ehbr2tnh2evz3mdhynd6wvrsu@fcz6vrvepybb/
that led to implementing a Rust v0 demangler:
https://lore.kernel.org/lkml/20250129193037.573431-1-irogers@google.com/
Discussion on that patch series led to the rust-lang issue:
https://github.com/rust-lang/rust/issues/60705
where the pre-existing Rust C demangler, authored by
github.com/arielb1, was mentioned. There wasn't progress on that issue
and so I've pulled that work into perf as discussed on the issue.
Ian Rogers (6):
perf demangle-rust: Add rustc-demangle C demangler
perf symbol-elf: Integrate rust-v0 demangling
perf demangle-rust: Remove previous legacy rust decoder
perf test demangle-rust: Add Rust demangling test
perf test demangle-java: Switch to using dso__demangle_sym
perf test demangle-ocaml: Switch to using dso__demangle_sym
tools/perf/tests/Build | 1 +
tools/perf/tests/builtin-test.c | 1 +
tools/perf/tests/demangle-java-test.c | 17 +-
tools/perf/tests/demangle-ocaml-test.c | 7 +-
tools/perf/tests/demangle-rust-v0-test.c | 74 +
tools/perf/tests/tests.h | 1 +
tools/perf/util/Build | 5 +-
tools/perf/util/demangle-rust-v0.c | 2035 ++++++++++++++++++++++
tools/perf/util/demangle-rust-v0.h | 81 +
tools/perf/util/demangle-rust.c | 269 ---
tools/perf/util/demangle-rust.h | 8 -
tools/perf/util/symbol-elf.c | 49 +-
12 files changed, 2243 insertions(+), 305 deletions(-)
create mode 100644 tools/perf/tests/demangle-rust-v0-test.c
create mode 100644 tools/perf/util/demangle-rust-v0.c
create mode 100644 tools/perf/util/demangle-rust-v0.h
delete mode 100644 tools/perf/util/demangle-rust.c
delete mode 100644 tools/perf/util/demangle-rust.h
--
2.49.0.901.g37484f566f-goog