commit | 13be70d35d0bbdbafda8c5dfec7b938963e6501a | [log] [tgz] |
---|---|---|
author | Mark Rousskov <mark.simulacrum@gmail.com> | Fri Mar 24 12:10:39 2023 -0400 |
committer | Mark Rousskov <mark.simulacrum@gmail.com> | Sat Apr 01 15:29:03 2023 -0400 |
tree | 46db48050b7316b503b2475551f03b314b94c279 | |
parent | 69fb82bd9c2da8b8977809e4d5d0c03109519831 [diff] |
Directly write to output instead of local String buffer Previous measurements showed this to be a net loss in performance, but further investigation shows that is likely to be a result of increased syscalls in the test benchmark. Adjusting the benchmark to buffer the output (e.g., with std::io::BufWriter) makes this a win, around 16% faster. Documentation on demangle_stream is updated to recommend buffering the output writer.
Demangling for Rust symbols, written in Rust.
You can add this as a dependency via your Cargo.toml
[dependencies] rustc-demangle = "0.1"
and then be sure to check out the crate documentation for usage.
You can also use this crate from other languages via the C API wrapper in the crates/capi
directory. This can be build with:
$ cargo build -p rustc-demangle-capi --release
You'll then find target/release/librustc_demangle.a
and target/release/librustc_demangle.so
(or a different name depending on your platform). These objects implement the interface specified in crates/capi/include/rustc_demangle.h
.
This project is licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in rustc-demangle you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.