botw/tools
Léo Lam 6e30bbea32
tools: Add a new, optimized check tool
Reimplements tools/check.py in a faster language (picked Rust to learn
and play with the language and because installing dependencies is way
easier than with C++)

On my machine, a full run takes ~160ms with this new implementation
and 49s (!) with check.py.

The main performance improvements come from not having to use
pyelftools and the Python bindings of Capstone (which are both insanely
slow and perhaps less efficient than they could be). Function checking
is now also performed in parallel rather than sequentially for yet
another significant performance boost.

Other tweaks include editing Capstone and the bindings to avoid
computing expensive things that we don't actually need and avoiding
dynamic memory allocations in hot paths as much as possible.

check.py will be removed after the setup instructions are updated.
2021-07-30 23:52:55 +02:00
..
asm-differ@7cd33c4e7f tools: Update asm-differ and add support for -mw (make, watch) 2021-01-25 14:41:33 +01:00
nx-decomp-tools-binaries@011c369bc4 Streamline project setup by automating NSO conversion (if needed) 2021-07-23 12:40:49 +02:00
util CSV formatting improvements 2021-07-27 12:44:10 +12:00
viking tools: Add a new, optimized check tool 2021-07-30 23:52:55 +02:00
add_missing_functions.py data: Add functions that were missed because of IDA's function tail system 2020-11-10 18:48:52 +01:00
ai_generate_actions.py Generate AIs 2020-12-31 14:16:09 +01:00
ai_generate_ais.py Generate AIs 2020-12-31 14:16:09 +01:00
ai_generate_queries.py Generate query factories as well 2020-12-23 14:22:24 +01:00
ai_identify_matching_stubs.py Add matching AI functions to CSV 2020-12-31 14:35:21 +01:00
ai_progress.py Track AI class decompilation macro progress 2021-01-21 12:52:56 +01:00
ai_show_nontrivial_hierarchies.py Generate AIs 2020-12-31 14:16:09 +01:00
check.py tools/check: Improve error reporting 2020-11-11 17:00:25 +01:00
diff.py tools: Deduplicate code 2020-11-09 19:16:37 +01:00
diff_settings.py tools: Use bundled copy of objdump to simplify setup 2021-07-23 18:05:23 +02:00
generate_bgparamlist_struct.py tools/generate_bgparamlist_struct: Represent floats with reasonable precision 2020-09-19 23:56:31 +02:00
generate_gdt_common_flags.py ksys/gdt: Implement Manager increase functions 2020-11-11 12:35:59 +01:00
ida_ai_rename_action_vfns.py Generate AIs 2020-12-31 14:16:09 +01:00
ida_ai_rename_ai_vfns.py Generate AIs 2020-12-31 14:16:09 +01:00
ida_generate_gdt_common_flags_list.py ksys/gdt: Add common flags 2020-11-06 22:21:02 +01:00
ida_remove_function_tails.py tools: Add IDA script to get rid of function tails 2020-11-11 00:30:24 +01:00
identify_matching_functions.py tools: Add function call checking 2020-11-10 21:25:45 +01:00
identify_matching_functions_by_call.py identify_matching_functions_by_call: Add support for matching one fn 2021-01-01 18:58:39 +01:00
identify_matching_rtti_functions.py Add more AI matches 2020-12-31 15:09:42 +01:00
print_decomp_symbols.py tools: Sort decomp symbols by address 2021-01-22 14:20:01 +01:00
progress.py Remove expected/ 2021-07-30 20:06:14 +02:00
rename_functions_in_ida.py CSV formatting improvements 2021-07-27 12:44:10 +12:00
setup.py Streamline project setup by automating NSO conversion (if needed) 2021-07-23 12:40:49 +02:00
show_vtable.py tools: Optimize symbol parsing 2020-12-29 15:04:45 +01:00
suppress-gdt-flags-builds.sh Add a script to suppress gdt*Flags.cpp rebuilds for faster builds 2021-04-02 16:08:05 +02:00
translate_ida_types.py Add tool to translate IDA types to real C++ types 2021-06-20 14:25:46 +02:00