Lean 4 fork for HoTT-compatible kernel extensions (Path types, transport, HITs). Maintained against upstream leanprover/lean4.
Find a file
Leonardo de Moura 1cb22b6801 perf(library/init/lean/parser/command): move common command parsers to the beginning of the list
@kha This modification saved 150k object allocations on my machine.

BTW, the function
```
def command_parser.run (commands : list command_parser) (p : command_parser)
  : parser_t command_parser_config id syntax :=
λ cfg, (p.run cfg).run_parsec $ λ _, any_of $ commands.map (λ p, p.run cfg)
```
is also affected by the problem I described at Zulip. It is another
example where eager eta-expansion is bad. Every time we call it, we
will create approx. 20 closures and 20 cons memory cells. We have at
least 600 commands in core.lean. So, just the `map` nested there will
generate 24k memory allocations. Moreover, the problem will get worse as we add
more commands.
2018-11-08 14:45:34 -08:00
.github chore(.github/CONTRIBUTING): fix typos and URLs 2017-10-30 16:23:22 +01:00
bin chore(bin/lean-gdb): exclude scalar fields 2018-10-04 18:32:03 -07:00
doc doc(doc/coding_style,doc/commit_convention): fix git hook commands 2018-07-05 10:20:25 +02:00
gen fix(runtime/apply): must use free_heap_obj instead of free 2018-08-28 12:29:14 -07:00
images chore(CMakeLists.txt): move Lean logo to make sure we can test leanemacs without installing Lean 2015-01-31 17:38:49 -08:00
lean4-mode feat(lean4-mode/lean4-flycheck): store .olean of dependencies 2018-09-11 16:35:25 -07:00
library perf(library/init/lean/parser/command): move common command parsers to the beginning of the list 2018-11-08 14:45:34 -08:00
script chore(script/lib_perf): adapt to change in lean command line behavior 2018-09-27 13:11:42 -07:00
src fix(library/compiler/specialize): remove bogus optimization 2018-11-07 18:00:28 -08:00
tests perf(library/init/lean/parser): move backtrackable state from parser_core_t to module_parser_m 2018-11-08 15:58:41 +01:00
.appveyor.yml chore(.appveyor,.travis): disable leanpkg registry tests 2018-04-12 18:32:20 +02:00
.clang-format feat(library/vm/process): add basic process support 2017-03-28 18:08:06 -07:00
.codecov.yml fix(.codecov.yml): do not fail github ci if coverage drops by 0.01% 2017-06-25 10:35:02 +02:00
.gitattributes chore(.gitattributes): use union merge strategy for doc/changes.md 2017-12-11 12:49:10 +01:00
.gitignore chore(.gitignore): ignore library/Makefile 2018-11-07 09:30:32 +01:00
.travis.yml chore(.travis.yml): trigger AppVeyor nightly build from Travis 2018-04-13 16:44:27 +02:00
LICENSE Add LICENSE file 2013-07-15 18:55:48 -07:00
README.md chore(README): point CI links to lean4 branch 2018-04-12 13:50:42 +02:00

logo

LicenseWindowsLinux / macOSTest CoverageChat
Codecov Join the Zulip chat

About

Installation

Stable and nightly binary releases of Lean are available on the homepage. For building Lean from source, see the build instructions.

Miscellaneous

Roadmap