Commit graph

16256 commits

Author SHA1 Message Date
Leonardo de Moura
e53cb81255 test(tests/playground/parser): replace parser.lean with parser2.lean 2019-04-12 07:50:50 -07:00
Leonardo de Moura
87690217c6 test(tests/playground/parser/parser2): add missing definitions 2019-04-12 07:30:43 -07:00
Leonardo de Moura
4aa3036e14 chore(library/init/lean/parser/trie): add HasEmptyc instance 2019-04-12 07:30:06 -07:00
Leonardo de Moura
376830bd0d chore(tests/playground/parser): missing files and small issues 2019-04-12 07:29:46 -07:00
Leonardo de Moura
da00dae9df fix(library/compiler/util): typo at has_inline2_attribute 2019-04-11 14:28:54 -07:00
Leonardo de Moura
7461bf9d1d fix(library/compiler/extract_closed): do not inline closed constants that have been extracted 2019-04-11 14:12:13 -07:00
Leonardo de Moura
b46f5f3eca fix(library/compiler/reduce_arity): bug at arity_was_reduced
It was retuning true for declarations such as
```lean
def f (n : Nat) :=
g._rarg n
```
It should only return true if the nested application is of the form
`f._rarg ...`
2019-04-11 14:12:13 -07:00
Leonardo de Moura
be328bd8e9 test(tests/playground/parser/parser2): add symbol BasicParser 2019-04-10 08:58:41 -07:00
Leonardo de Moura
804ff74350 feat(library/init/data/array/basic): add Array.back 2019-04-10 08:56:42 -07:00
Leonardo de Moura
1c73a4d089 test(tests/playground/parser): add identFn 2019-04-09 09:16:12 -07:00
Leonardo de Moura
0a1b751efd chore(library/init/data/string/basic): naming consistency 2019-04-09 08:18:29 -07:00
Leonardo de Moura
67ba4d25b1 test(tests/playground/parser/parser2): add number parser 2019-04-09 07:20:35 -07:00
Leonardo de Moura
ab5519c7fe test(tests/playground/parser/parser2): add recurse 2019-04-08 07:57:45 -07:00
Leonardo de Moura
b633b32f2c test(tests/playground/parser/parser2): add whitespace and strLit 2019-04-08 07:39:55 -07:00
Leonardo de Moura
363f4449e4 test(tests/playground/parser/parser2): add optional combinator 2019-04-08 06:37:41 -07:00
Leonardo de Moura
deba610203 test(tests/playground/parser/parser2): add many and many1 combinators 2019-04-07 13:41:22 -07:00
Leonardo de Moura
16f9d1a5b6 test(tests/playground/parser/parser2): add node combinator 2019-04-07 13:26:25 -07:00
Leonardo de Moura
9c81cd7f1d feat(library/init/data/array/basic): add Array.extract 2019-04-07 13:08:23 -07:00
Leonardo de Moura
d7035497f3 test(tests/playground/parser): continue experiment 2019-04-07 12:45:11 -07:00
Leonardo de Moura
8d2d43beb2 feat(library/init/data/array/basic): add shrink 2019-04-07 12:42:56 -07:00
Leonardo de Moura
97ebe4603b test(tests/playground/parser): add syntax.lean with flat nodes and arrays 2019-04-06 19:36:04 -07:00
Leonardo de Moura
4d3689ea33 feat(library/init/data/array/basic): add new array functions
@kha I renamed the homogeneous `map` to `hmap`, and added the
heterogeneous one as `map`. As soon as we add user-defined rewriting
rules, we will be able to replace `map` with `hmap` whenever the types
are the same.
2019-04-06 19:25:32 -07:00
Leonardo de Moura
0c9fe3c7d4 feat(library/compiler): add [inline2] attribute, and stage2 inlining
This feature is useful since it allows us to perform inlining
after lambda lifting has been performed.
2019-04-06 08:00:58 -07:00
Leonardo de Moura
d3afb41f51 feat(library/compiler/lambda_lifting): add function detecting lambda_lifting aux declarations 2019-04-06 07:42:45 -07:00
Leonardo de Moura
c54589007e feat(library/compiler): extract closed terms after caching stage2 decls 2019-04-06 07:19:19 -07:00
Leonardo de Moura
23febc9977 test(tests/playground/parser/parser2): more experiments 2019-04-05 18:09:13 -07:00
Leonardo de Moura
69fb157ff7 chore(tests/playground/parser/parser2): update TODO list 2019-04-05 17:25:36 -07:00
Leonardo de Moura
50d2488946 fix(library/compiler/csimp): cases-merging was failing when scrutinee was a constant 2019-04-05 17:24:01 -07:00
Leonardo de Moura
d603baea70 test(tests/compiler): add new test 2019-04-05 16:58:47 -07:00
Leonardo de Moura
1bb920322d feat(library/init/lean/compiler/constfolding): constant folding for strictAnd and strictOr 2019-04-05 16:51:29 -07:00
Leonardo de Moura
2cd3954198 chore(library/init/core): remove misleading annotation
The compiler will not try to inline definitions tagged as `@[extern]`.
`strictOr` and `strictAnd` must be handled using the constant folding module.
2019-04-05 16:29:44 -07:00
Leonardo de Moura
da9ceea0e5 chore(stage0): update 2019-04-05 16:16:46 -07:00
Leonardo de Moura
1e198ca72e fix(library/compiler/csimp): missing optimization opportunity 2019-04-05 16:16:24 -07:00
Leonardo de Moura
7b835f3d02 feat(library/compiler/csimp): keep simplifying if cse and elim_dead_let reduced expression
Both `cse` and `elim_dead_let` may create new simplification opportunities for `csimp`.
2019-04-05 15:39:43 -07:00
Leonardo de Moura
6c44a5d997 feat(library/compiler/csimp): add Thunk.get (Thunk.mk f) ==> f () simplification 2019-04-05 14:55:48 -07:00
Leonardo de Moura
48fbaefa2a chore(library/constants.txt): remove leftover 2019-04-05 14:29:51 -07:00
Leonardo de Moura
8ec95767d7 chore(stage0): update 2019-04-05 14:18:50 -07:00
Leonardo de Moura
994ca779ef feat(library/compiler/csimp): improve try_inline_instance 2019-04-05 14:16:38 -07:00
Leonardo de Moura
e7f379fb0f chore(library/init/control/id): spurious [inline] annotations 2019-04-05 14:16:38 -07:00
Leonardo de Moura
c44f79f981 test(tests/playground/parser/parser2): yet another parsing combinators experiment 2019-04-05 08:18:28 -07:00
Leonardo de Moura
de880dc15f chore(stage0): update 2019-04-04 15:26:43 -07:00
Leonardo de Moura
c2e474f216 chore(library/init/lean/compiler): cleanup notation 2019-04-04 15:26:09 -07:00
Leonardo de Moura
f25554baa7 test(tests/playground/parser): multiple targets 2019-04-04 10:50:34 -07:00
Leonardo de Moura
dd72df26bd test(tests/playground/parser): create directory and Makefile for experiment 2019-04-04 10:36:17 -07:00
Leonardo de Moura
5f6106be83 chore(init): add reserve for all control notation at core.lean
cc @kha
2019-04-04 08:53:42 -07:00
Leonardo de Moura
861a292d8f chore(stage0): update 2019-04-03 13:29:09 -07:00
Leonardo de Moura
8b145d7884 chore(library/init/control/combinators): use Applicative instead of Monad in relevant combinators 2019-04-03 13:28:08 -07:00
Leonardo de Moura
e09374afa6 perf(library/init/data/hashmap/basic): reuse AssocList memory cells when expanding hashtable 2019-04-03 10:49:46 -07:00
Leonardo de Moura
273a0775d6 perf(library/init/data/array): mkArray in Lean doesn't seem to buy us anything
The primitive implementation combines all `inc`'s into a single one.
2019-04-03 10:27:58 -07:00
Leonardo de Moura
a18c88a727 perf(library/init/data/hashmap/basic): add [inline] to reinsertAux 2019-04-03 09:52:34 -07:00