lean4-htt/library/init/lean/parser
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
..
basic.lean refactor(library/init/data/string/basic): simplify String.Iterator 2019-03-25 07:57:12 -07:00
combinators.lean fix(library/init/lean/parser/combinators): (x) -> e should not be a dependent function 2019-03-26 11:26:39 +01:00
command.lean chore(*): use lowercase dir names 2019-03-21 15:06:44 -07:00
declaration.lean chore(*): use lowercase dir names 2019-03-21 15:06:44 -07:00
identifier.lean chore(*): use lowercase dir names 2019-03-21 15:06:44 -07:00
level.lean chore(*): use lowercase dir names 2019-03-21 15:06:44 -07:00
module.lean refactor(library/init/data/string/basic): simplify String.Iterator 2019-03-25 07:57:12 -07:00
notation.lean chore(library/init/data/dlist): Dlist => DList 2019-03-21 17:03:22 -07:00
parsec.lean refactor(library/init/data/string/basic): String.Pos as Nat 2019-03-26 15:35:52 -07:00
pratt.lean refactor(library/init/data/string/basic): simplify String.Iterator 2019-03-25 07:57:12 -07:00
rec.lean chore(library/init,runtime,library/compiler): add fix primitive back 2019-03-27 17:13:53 -07:00
stringliteral.lean chore(*): lowercase file names 2019-03-21 15:06:44 -07:00
syntax.lean chore(library/init): avoid wf_term_hack 2019-03-27 12:12:21 -07:00
term.lean fix(library/init/lean/parser/combinators): (x) -> e should not be a dependent function 2019-03-26 11:26:39 +01:00
token.lean feat(library/init/lean): avoid wf_term_hack 2019-03-27 12:36:17 -07:00
trie.lean chore(library/init): avoid wf_term_hack 2019-03-27 12:12:21 -07:00