lean4-htt/library/init/lean
Leonardo de Moura 42fbe3c18c chore(library/init,runtime,library/compiler): add fix primitive back
The new `partial def`s allow us to define `fix` in Lean, but the Lean
implementation is not as efficient as the native one. The native one
in C++ use weak pointers to prevent a closure allocation at every
recursive invocation.

This commit also fixes the `fixCore` helper functions that were broken
after we switched to camelCase.

We have updated the test `fix1.lean` to demonstrate the native
implementation is faster. Here are the numbers on my desktop.

```
./run.sh fix1.lean 24
721420279
Time for 'native fix': 816ms
721420279
Time for 'fix in lean': 1.34s
```
2019-03-27 17:13:53 -07:00
..
compiler chore(library/init): avoid wf_term_hack 2019-03-27 12:12:21 -07:00
parser chore(library/init,runtime,library/compiler): add fix primitive back 2019-03-27 17:13:53 -07:00
config.lean chore(*): use lowercase dir names 2019-03-21 15:06:44 -07:00
declaration.lean chore(library/init/lean/declaration): naming convention 2019-03-23 09:28:38 -07:00
default.lean chore(*): use lowercase dir names 2019-03-21 15:06:44 -07:00
disjoint_set.lean chore(*): use lowercase dir names 2019-03-21 15:06:44 -07:00
elaborator.lean chore(library/init): avoid wf_term_hack 2019-03-27 12:12:21 -07:00
expander.lean feat(library/init/lean/{parser/term,expander}): remove (x : e) → f macro hack and replace with actual parser 2019-03-25 16:12:14 +01:00
expr.lean feat(library/init/lean/options): add registerOption 2019-03-22 17:26:43 -07:00
extern.lean refactor(library/init/data/string/basic): simplify String.Iterator 2019-03-25 07:57:12 -07:00
format.lean chore(library/init): avoid wf_term_hack 2019-03-27 12:12:21 -07:00
frontend.lean fix(library/init/lean/frontend): naming style misrenamings 2019-03-23 23:09:55 +01:00
kvmap.lean chore(library/init): avoid wf_term_hack 2019-03-27 12:12:21 -07:00
level.lean feat(library/init/lean): avoid wf_term_hack 2019-03-27 12:36:17 -07:00
message.lean chore(library/init): avoid wf_term_hack 2019-03-27 12:12:21 -07:00
name.lean chore(library/init): avoid wf_term_hack 2019-03-27 12:12:21 -07:00
name_mangling.lean chore(*): use lowercase dir names 2019-03-21 15:06:44 -07:00
options.lean feat(library/init/lean): improving options 2019-03-24 09:30:20 -07:00
position.lean refactor(library/init/data/string/basic): simplify String.Iterator 2019-03-25 07:57:12 -07:00
trace.lean chore(library/init): avoid wf_term_hack 2019-03-27 12:12:21 -07:00
util.lean chore(library): unit => Unit 2019-03-21 15:06:44 -07:00