lean4-htt/tests
Mario Carneiro 49f66dc485
perf: rewrite UnusedVariables lint (#3186)
This is a rewrite of the `UnusedVariables` lint to inline and simplify
many of the dependent functions to try to improve the performance of
this lint, which quite often shows up in perf reports.

* The mvar assignment scanning is one of the most expensive parts of the
process, so we do two things to improve this:
  * Lazily perform the scan only if we need it
* Use an object-pointer hashmap to ensure that we don't have quadratic
behavior when there are many mvar assignments with slight differences.
* The dependency on `Lean.Server` is removed, meaning we don't need to
do the LSP conversion stuff anymore. The main logic of reference finding
is inlined.
* We take `fvarAliases` into account, and union together fvars which are
aliases of a base fvar. (It would be great if we had `UnionFind` here.)

More docs will be added once we confirm an actual perf improvement.

---------

Co-authored-by: Sebastian Ullrich <sebasti@nullri.ch>
2024-03-21 12:28:57 +00:00
..
bench test: add language server startup benchmark (#3558) 2024-03-04 09:01:51 +00:00
compiler fix: do not dllexport symbols in core static libraries (#3601) 2024-03-15 11:58:34 +00:00
elabissues feat: add bitwise operations to reduceNat? and kernel (#3134) 2024-01-11 18:12:45 +00:00
ir feat: lake: GNU/BSD OS detection in test scripts (#3180) 2024-01-14 02:49:38 +00:00
lean perf: rewrite UnusedVariables lint (#3186) 2024-03-21 12:28:57 +00:00
pkg feat: allow duplicate theorems to be imported 2024-03-13 12:57:41 -07:00
playground chore: bool and prop lemmas for Mathlib compatibility and improved confluence (#3508) 2024-03-04 23:56:30 +00:00
plugin fix: do not dllexport symbols in core static libraries (#3601) 2024-03-15 11:58:34 +00:00
simpperf
.gitignore
common.sh
lean-toolchain