lean4-htt/src/Lean/Compiler/LCNF
Henrik Böving 09de5cd70e
refactor: remove Lean.RBMap usages (#9260)
This PR removes uses of `Lean.RBMap` in Lean itself.

Furthermore some massaging of the import graph is done in order to avoid
having `Std.Data.TreeMap.AdditionalOperations` (which is quite
expensive) be the critical path for a large chunk of Lean. In particular
we can build `Lean.Meta.Simp` and `Lean.Meta.Grind` without it thanks to
these changes.

We did previously not conduct this change as `Std.TreeMap` was not
outperforming `Lean.RBMap` yet, however this has changed with the new
code generator.
2025-07-21 14:04:45 +00:00
..
Simp refactor: remove Lean.RBMap usages (#9260) 2025-07-21 14:04:45 +00:00
AlphaEqv.lean refactor: remove Lean.RBMap usages (#9260) 2025-07-21 14:04:45 +00:00
AuxDeclCache.lean fix: make new codegen async realization-compatible (#7316) 2025-04-01 15:55:14 +00:00
BaseTypes.lean fix: make new codegen async realization-compatible (#7316) 2025-04-01 15:55:14 +00:00
Basic.lean perf: do not import non-template IR for codegen (#8666) 2025-06-30 15:52:56 +00:00
Bind.lean chore: use mutual inductives for data structures in the new compiler (#8332) 2025-05-14 18:04:49 +00:00
Check.lean refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
Closure.lean chore: use FVarIdHashSet for the visited set in LCNF closure computation (#8779) 2025-06-13 23:39:16 +00:00
CompatibleTypes.lean fix: support borrowed params in the new compiler (#8127) 2025-04-28 17:02:47 +00:00
CompilerM.lean chore: remove unused impure LCNF Phase (#8924) 2025-06-22 05:38:16 +00:00
ConfigOptions.lean fix: make compiler.extract_closed option work again after migration (#9279) 2025-07-09 14:31:58 +00:00
CSE.lean fix: correctly handle never_extract attribute in LCNF CSE (#8952) 2025-06-23 23:03:10 +00:00
DeclHash.lean feat: add support for extern LCNF decls (#6429) 2024-12-20 21:20:56 +00:00
DependsOn.lean chore: rename LetValue.value to .lit (#8393) 2025-05-18 21:12:35 +00:00
ElimDead.lean fix: delete code with false assumption that LCNF local vars can occur in types (#9221) 2025-07-06 15:04:13 +00:00
ElimDeadBranches.lean refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
ExtractClosed.lean chore: move compiler.extract_closed option from C++ to Lean (#9272) 2025-07-09 04:36:16 +00:00
FixedParams.lean refactor: remove Lean.RBMap usages (#9260) 2025-07-21 14:04:45 +00:00
FloatLetIn.lean chore: fix if/else indentation (#8803) 2025-06-15 23:03:52 +00:00
FVarUtil.lean fix: replace bad simp lemmas for Id (#7352) 2025-05-22 22:45:35 +00:00
InferType.lean refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
Internalize.lean feat: add support for extern LCNF decls (#6429) 2024-12-20 21:20:56 +00:00
JoinPoints.lean refactor: remove Lean.RBMap usages (#9260) 2025-07-21 14:04:45 +00:00
LambdaLifting.lean fix: modify eager lambda lifting heuristics to match the old compiler (#8007) 2025-04-17 21:46:51 +00:00
LCtx.lean chore: switch to Std.HashMap and Std.HashSet almost everywhere 2024-08-07 18:24:42 +02:00
Level.lean feat: add the nondep field of Expr.letE to the C++ data model (#8751) 2025-06-14 23:10:27 +00:00
Main.lean fix: include ._closed decls in trace.Compiler.result output (#9336) 2025-07-13 02:24:00 +00:00
MonadScope.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
MonoTypes.lean chore: fix "isRuntimeBultinType" typo (#9307) 2025-07-11 12:27:07 +00:00
OtherDecl.lean chore: remove unused impure LCNF Phase (#8924) 2025-06-22 05:38:16 +00:00
Passes.lean fix: run LCNF checks less often by default (#8764) 2025-06-13 05:39:21 +00:00
PassManager.lean refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
PhaseExt.lean refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
PrettyPrinter.lean refactor: migrate all usages of old slice notation (#9000) 2025-06-27 18:52:07 +00:00
Probing.lean refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
PullFunDecls.lean refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
PullLetDecls.lean fix: don't pull instances depending on erased propositions (#9177) 2025-07-03 19:17:25 +00:00
ReduceArity.lean refactor: migrate all usages of old slice notation (#9000) 2025-06-27 18:52:07 +00:00
ReduceJpArity.lean refactor: remove Lean.RBMap usages (#9260) 2025-07-21 14:04:45 +00:00
Renaming.lean refactor: remove Lean.RBMap usages (#9260) 2025-07-21 14:04:45 +00:00
ScopeM.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
Simp.lean fix: change inlining heuristics to match old code generator (#8006) 2025-04-17 20:47:40 +00:00
Specialize.lean perf: treat partial application and eta expansion equally for specialization (#9438) 2025-07-20 14:57:21 +00:00
SpecInfo.lean refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
StructProjCases.lean refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
Testing.lean chore: rename LetValue.value to .lit (#8393) 2025-05-18 21:12:35 +00:00
ToDecl.lean refactor: migrate all usages of old slice notation (#9000) 2025-06-27 18:52:07 +00:00
ToExpr.lean refactor: remove Lean.RBMap usages (#9260) 2025-07-21 14:04:45 +00:00
ToLCNF.lean refactor: remove Lean.RBMap usages (#9260) 2025-07-21 14:04:45 +00:00
ToMono.lean chore: lower Nat.zero in toMono (#9320) 2025-07-11 23:25:05 +00:00
Types.lean fix: support borrowed params in the new compiler (#8127) 2025-04-28 17:02:47 +00:00
Util.lean chore: fix "isRuntimeBultinType" typo (#9307) 2025-07-11 12:27:07 +00:00