Commit graph

12841 commits

Author SHA1 Message Date
Leonardo de Moura
70b41fe659 feat: revert tactic 2020-02-08 17:30:00 -08:00
Leonardo de Moura
f3de32cbf4 chore: helper method 2020-02-08 17:29:35 -08:00
Leonardo de Moura
79f30d5c8c chore: file name convention 2020-02-08 11:21:52 -08:00
Leonardo de Moura
29f0a1c4c9 chore: nary subst 2020-02-08 11:16:45 -08:00
Leonardo de Moura
9986a653e2 refactor: we can't elaborate substructure fields using elabTerm
Reason: derived structures may override/set the default value for
substructure fields.
2020-02-07 17:42:44 -08:00
Leonardo de Moura
d9ca2751c2 chore: mark MutQuot.val as [neverExtract] 2020-02-07 11:44:51 -08:00
Leonardo de Moura
a897f7e7f3 chore: style nonsense 2020-02-06 17:06:36 -08:00
Leonardo de Moura
224fe05d51 feat: reset memory 2020-02-06 16:56:25 -08:00
Leonardo de Moura
469562d524 feat: maximize sharing at compact 2020-02-06 16:39:20 -08:00
Leonardo de Moura
9eef6851be chore: track number of objects 2020-02-06 14:58:20 -08:00
Leonardo de Moura
3c5b3cd91f feat: add Expr.replace helper function 2020-02-06 14:03:54 -08:00
Leonardo de Moura
193e1cb81a feat: add MutSquash and MutSquash.liftUpdate
cc @cipher1024
2020-02-06 11:55:59 -08:00
Leonardo de Moura
7e959f8393 chore: try to control code explosion
@Kha We got 100k extra lines of code in the last update stage0
2020-02-06 10:10:10 -08:00
Sebastian Ullrich
47f3d54acb fix: interpreter: do not consume values in explicit unbox instructions 2020-02-06 09:36:19 -08:00
Leonardo de Moura
9270fa5ad8 chore: add [inline] to make sure we do not allocate a closure
cc @kha
2020-02-06 08:15:39 -08:00
Sebastian Ullrich
933ff6dc88 perf: short-circuit all antiquotation parsers 2020-02-06 08:12:08 -08:00
Leonardo de Moura
fb1c60c04a feat: add mkCtorHeader 2020-02-05 19:15:36 -08:00
Leonardo de Moura
3f4c27efa5 feat: add getFieldViews 2020-02-05 19:15:05 -08:00
Leonardo de Moura
86891a83e0 feat: add expandNumLitFields 2020-02-05 14:53:02 -08:00
Leonardo de Moura
8c6806037c refactor: add helper combinator 2020-02-05 14:32:32 -08:00
Leonardo de Moura
69d8809ff5 chore: allow numLit 2020-02-05 14:32:11 -08:00
Leonardo de Moura
93cfdf264f feat: add expandCompositeFields 2020-02-05 13:47:43 -08:00
Leonardo de Moura
c3715bb5a0 feat: add expandParentFields 2020-02-05 13:07:14 -08:00
Leonardo de Moura
9169a975f8 perf: improve peekToken performance
`peekToken` is invoked 3 times in sequence whenever we use
`categoryParser`.

1- `currLbp` at `prattParser`
2- check `$` at `leadingParser`
3- `indexed`

@Kha It improved the performance by 10% on my machine.
2020-02-05 09:58:34 -08:00
Leonardo de Moura
5ff62ebf06 feat: check user given path 2020-02-05 09:42:26 -08:00
Leonardo de Moura
9993eb9b2b fix: increase scope of try
Motivation: avoid "libc++abi.dylib: terminating with uncaught
exception of type lean::exception ..."
2020-02-05 09:27:54 -08:00
Leonardo de Moura
660571ab38 fix: closes #109
Fixed myself after wasting time wondering whether a segfault was
coming from today.

cc @cipher1024
2020-02-05 09:16:33 -08:00
Leonardo de Moura
eacff1a448 feat: implement withPtrEq and withPtrAddr 2020-02-04 17:48:11 -08:00
Leonardo de Moura
38e6961003 feat: MutQuot by implementedBy 2020-02-04 16:51:08 -08:00
Leonardo de Moura
ac88b46299 feat: MutQuot primitives 2020-02-04 15:56:20 -08:00
Leonardo de Moura
850b1c90a0 feat: mark as irrelevant functions that return types 2020-02-04 15:55:21 -08:00
Leonardo de Moura
b5eb64da3a fix: add mkFilePath and try to fix Windows build 2020-02-04 11:24:33 -08:00
Leonardo de Moura
3a9f6e4133 perf: avoid closure allocations and orelse when next token is not "$" 2020-02-04 10:45:41 -08:00
Leonardo de Moura
76677049e2 chore: fix precedence of leading tokens 2020-02-04 09:44:43 -08:00
Sebastian Ullrich
52a0a0937e feat: check precedence of leading parsers as well 2020-02-04 07:49:33 -08:00
Leonardo de Moura
1f359b9844 chore: remove unnecessary workaround
It is not needed anymore after we fixed the `app` parser
2020-02-03 20:25:09 -08:00
Leonardo de Moura
d75cd49ea2 fix: app parser
cc @kha
2020-02-03 20:13:38 -08:00
Leonardo de Moura
2138a11480 feat: use custom error messages at checkRBPGreater 2020-02-03 18:30:22 -08:00
Leonardo de Moura
99f7aff491 fix: liftMethod notation 2020-02-03 17:12:44 -08:00
Leonardo de Moura
31bb6a1dec feat: extend tryCoeAndLift
Add combined coe+lift case.
2020-02-03 14:30:13 -08:00
Leonardo de Moura
bcfaeaceab feat: change ite and dite argument order
Motivation: make sure `propagateExpectedType` heuristic is applied in
the new frontend when processing them.
2020-02-03 14:11:29 -08:00
Leonardo de Moura
a474850f5e feat: use automatic liftM at ensureHasType 2020-02-03 13:06:36 -08:00
Leonardo de Moura
48acc748ef feat: improve automatic liftM at do blocks
We now don't need to use `decide` in the following example:

```
def pred (x : Nat) : IO Bool := do
pure $ decide $ (← g 1) > 0
```
2020-02-03 12:16:57 -08:00
Leonardo de Moura
ba915d90f5 feat: do not enable constApprox in the combinator approxDefEq 2020-02-03 11:50:40 -08:00
Leonardo de Moura
a134db5e07 feat: add Coe instances for monads 2020-02-03 11:41:00 -08:00
Sebastian Ullrich
4279df4170 perf: special-case antiquotation syntax in Pratt parser to avoid choice nodes
fixes #99
2020-02-03 09:43:41 -08:00
Leonardo de Moura
17cc925115 feat: change liftMethod notation
cc @Kha
2020-02-03 09:38:05 -08:00
Leonardo de Moura
f8bfe88d6b fix: consume unnecessary let-decls at isDefEq
Make sure we solve unification constraints such as `(let x := v; ?m) =?= ?m`
2020-02-02 21:54:44 -08:00
Leonardo de Moura
2ad065eb93 feat: add expandNonAtomicExplicitSource and getStructName 2020-02-02 21:24:14 -08:00
Leonardo de Moura
f40129ad8d fix: precedence 2020-02-02 17:37:46 -08:00