rust/src/etc
bors 4d669fb34e Auto merge of #133134 - Walnut356:synth_prov, r=Mark-Simulacrum
Don't use a SyntheticProvider for literally every type

Replaces a glob regex with individualized imports for each standard library type. This improves debugger performance by quite a bit when populating lots of values with lots of fields

With the glob, afaik every single value of every single type that the debugger renders is run through a python function that does quite a few string comparisons (i plan to fix those next) to determine the SyntheticProvider to use.  It looks like DefaultSyntheticProvider's functions internally call the liblldb c++ functions, which ends up with identical behavior to not using a SyntheticProvider at all, except you have extra python round trips slowing things down.

These sample vidoes were run on x86-64-pc-windows-gnu. `vect` is a 1000 element `Vec<Big>`, `Big` contains a dozen or so `Small`, and `Small` contains a dozen or so `[i32; 5]`

Before:

https://github.com/user-attachments/assets/07c31fe7-e126-4c2e-8ae9-cfe36e351d3f

After:

https://github.com/user-attachments/assets/6c0d1a45-1ffe-46de-95a0-5dbe59a173b5

---

try-job: aarch64-apple
2024-12-08 19:30:33 +00:00
..
completions Bump bootstrap deps 2024-11-13 17:58:04 +00:00
installer fix missing rustfmt and clippy for msi 2024-10-15 23:53:24 +08:00
natvis rename RcBox in other places too 2024-10-11 10:04:22 +02:00
test-float-parse Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
third-party Strip all leading/trailing newlines 2015-03-15 09:08:21 -07:00
cat-and-grep.sh remove dead code in CGREP script 2024-10-27 21:23:28 -04:00
CONFIGS.md Add sublime-rust to CONFIGS.md. 2016-08-22 01:24:01 -04:00
cpu-usage-over-time-plot.sh Fix a bunch of typo 2022-08-31 18:24:55 +08:00
ctags.rust Update the ctags rules and targets. 2015-07-30 06:35:42 +10:00
dec2flt_table.py Reformat Python code with ruff 2024-12-04 23:03:44 +01:00
gdb_load_rust_pretty_printers.py Reformat Python code with ruff 2024-12-04 23:03:44 +01:00
gdb_lookup.py Reformat Python code with ruff 2024-12-04 23:03:44 +01:00
gdb_providers.py Reformat Python code with ruff 2024-12-04 23:03:44 +01:00
generate-deriving-span-tests.py Reformat Python code with ruff 2024-12-04 23:03:44 +01:00
generate-keyword-tests.py Reformat Python code with ruff 2024-12-04 23:03:44 +01:00
htmldocck.py Reformat Python code with ruff 2024-12-04 23:03:44 +01:00
indenter fix some python3 incompatibilities 2017-11-16 13:34:13 -05:00
lldb_batchmode.py Reformat Python code with ruff 2024-12-04 23:03:44 +01:00
lldb_commands add explicit synthetic lookup for tuples 2024-11-29 19:19:12 -06:00
lldb_lookup.py lldb-formatters: Use StdSliceSyntheticProvider for &str 2024-05-11 12:11:55 -07:00
lldb_providers.py Reformat Python code with ruff 2024-12-04 23:03:44 +01:00
pre-push.sh remove GIT_DIR handling in pre-push hook 2024-06-19 07:33:12 +03:00
rust-gdb Typo fix in src/etc/rust-gdb 2023-04-14 19:07:13 -07:00
rust-gdbgui rust-gdbgui: remove excessive quotes 2023-08-22 09:09:00 -04:00
rust-lldb Fix loading pretty-printers in rust-lldb script 2020-08-28 09:29:45 +03:00
rust-windbg.cmd Remove licenses 2018-12-25 21:08:33 -07:00
rust_analyzer_eglot.el bootstrap: Add support for ./x setup emacs 2024-10-01 12:59:52 +01:00
rust_analyzer_helix.toml Use a separate dir for r-a builds consistently in helix config 2024-11-09 01:27:29 +01:00
rust_analyzer_settings.json rust_analyzer_settings: force use of 'nightly' toolchain 2024-12-01 22:54:08 +01:00
rust_types.py Reformat Python code with ruff 2024-12-04 23:03:44 +01:00