Commit graph

12317 commits

Author SHA1 Message Date
Leonardo de Moura
491028df25 feat: add compileParserDescr 2019-12-30 22:11:49 -08:00
Leonardo de Moura
45075c135d chore: move ParserKind to LeanExt 2019-12-30 22:11:49 -08:00
Leonardo de Moura
a1f079227b chore: prepare to move ParserKind 2019-12-30 22:11:49 -08:00
Sebastian Ullrich
b439de68a5 feat: support nested interpreter executions and make sure closures are run in compatible environments
/cc @leodemoura
2019-12-31 00:07:45 +01:00
Leonardo de Moura
fb86f2e421 feat: add LeanExt.lean and ParserDescr type 2019-12-30 13:51:40 -08:00
Leonardo de Moura
769debf970 fix: is_unsafe 2019-12-30 12:05:28 -08:00
Leonardo de Moura
c650e11d6b fix: missing isUnsafe fieldat OpaqueVal 2019-12-30 11:53:08 -08:00
Leonardo de Moura
28a4859832 feat: expose evalConst
@Kha Could you please check `lean_eval_const`?
2019-12-30 11:41:36 -08:00
Leonardo de Moura
b1570ba865 feat: elaborate sortApp 2019-12-30 11:00:13 -08:00
Leonardo de Moura
74741bf613 feat: elaborate explicit universe levels 2019-12-30 10:52:22 -08:00
Sebastian Ullrich
ec13f37414 refactor: use more quotations in the elaborator 2019-12-30 10:19:14 -08:00
Leonardo de Moura
387dbd4036 feat: add liftLevelM 2019-12-30 09:49:04 -08:00
Sebastian Ullrich
eb2f26a71e fix: let $e now matches the whole letDecl, so specify kinds 2019-12-30 08:24:30 -08:00
Sebastian Ullrich
6fc47e4baf fix: match_syntax should not check kind of anonymous antiquotations 2019-12-30 08:24:29 -08:00
Sebastian Ullrich
30e795a84d feat: allow $(x) in match_syntax patterns 2019-12-30 08:24:29 -08:00
Sebastian Ullrich
881e3bf490 fix: raise precedence inside antiquotation parser 2019-12-30 08:24:29 -08:00
Sebastian Ullrich
81381d5c77 feat: make all antiquotation kinds optional 2019-12-30 08:24:29 -08:00
Sebastian Ullrich
8ebe0cb94f feat: fieldIdx antiquotation 2019-12-30 08:24:29 -08:00
Sebastian Ullrich
f130a82cd9 fix: FirstTokens computation of <|> 2019-12-30 08:24:29 -08:00
Sebastian Ullrich
1f2040727c feat: autogenerate antiquotations in parser! 2019-12-30 08:24:29 -08:00
Sebastian Ullrich
ebde775671 fix: invoke new parser from old one with maximum precedence 2019-12-30 08:24:29 -08:00
Sebastian Ullrich
1a7cd0e54d feat: support ident antiquotations (inside term parsers, for now) 2019-12-30 08:24:29 -08:00
Sebastian Ullrich
b32038862e feat: allow antiquotation kinds to be optional, where unambiguous 2019-12-30 08:24:29 -08:00
Sebastian Ullrich
fe9bd200da feat: refactor match_syntax compiler to properly match quotation kinds, which can act as both "variable" and "constructor" patterns simultaneously 2019-12-30 08:24:29 -08:00
Sebastian Ullrich
9bf8c96502 feat: save original node kind in antiquot node kind for checking in match_syntax 2019-12-30 08:24:29 -08:00
Leonardo de Moura
11c7045f4b feat: add elabLevel 2019-12-30 08:17:55 -08:00
Leonardo de Moura
16cb6fe759 feat: add foldrRangeM 2019-12-30 08:11:23 -08:00
Leonardo de Moura
527c3c73b4 chore: improve trace message 2019-12-29 16:55:52 -08:00
Leonardo de Moura
c14ded6984 fix: using incorrect context for withDefault 2019-12-29 10:04:44 -08:00
Leonardo de Moura
02ddbfa7da fix: typo 2019-12-29 09:49:55 -08:00
Leonardo de Moura
7148fc1078 fix: Borrow.lean
The following bugs have been fixed
- The implementation for the `Expr.proj` rule did not match our paper nor `RC.lean`.
The correct rule is:
```
| Expr.proj _ x       => whenM (isOwned x) $ ownVar z
```

- We take the OwnsetSet (`O` in our paper) into account when computing
the fixpoint.

- `applyParamMap` and `mkInitParamMap` were not visiting the alternatives of `case` statements.
2019-12-22 19:20:42 -08:00
Sebastian Ullrich
a2d668ec99 fix: leaks 2019-12-22 17:24:57 -08:00
Sebastian Ullrich
f171404530 fix: "superficial" leaks to shut up lsan 2019-12-22 17:23:51 -08:00
Leonardo de Moura
61191f9921 chore: use b_obj_arg annotation 2019-12-22 15:14:36 -08:00
Sebastian Ullrich
3b37737c8a fix: leaks 2019-12-22 15:09:19 -08:00
Leonardo de Moura
bceb02951c feat: better postpone messages 2019-12-22 10:24:22 -08:00
Leonardo de Moura
ef8e63a47c refactor: trace directly to MessageLog at Elab monads
Motivation: better position information, and it is simpler (e.g., no `tracingAt`)
2019-12-22 09:58:31 -08:00
Leonardo de Moura
ec892c905a fix: missing tracingAt 2019-12-22 09:34:35 -08:00
Leonardo de Moura
64227b8134 feat: position information for mkHole 2019-12-22 09:34:17 -08:00
Leonardo de Moura
a4e3cc5fb3 fix: trace Elab.step 2019-12-22 09:27:19 -08:00
Leonardo de Moura
9d53fa701c chore: combine MessageData.context + MessageData.withOptions into MessageData.context 2019-12-22 09:15:04 -08:00
Leonardo de Moura
6a3f06642c feat: add option for controlling sytax max depth in trace messages 2019-12-22 08:56:13 -08:00
Leonardo de Moura
0880332761 feat: add maxDepth option to formatStx 2019-12-22 08:48:08 -08:00
Leonardo de Moura
d53c5a31cb refactor: use PersistentArray to implement MessageLog
Motivation: consistency. Now, Traces and MessageLog use the same datastructure.
2019-12-22 08:11:20 -08:00
Leonardo de Moura
050008cb84 refactor: use PersistentArray instead of Array for default [MonadTracer] implementation
Motivation: flexibility. Now, the default implementation is better
suited for code that uses traces nonlinearly (e.g., `TermElabM`).
2019-12-22 07:36:26 -08:00
Leonardo de Moura
80165d24a1 chore: style 2019-12-22 07:25:27 -08:00
Leonardo de Moura
a32fd2e693 feat: implement design documented at 868a217202 2019-12-21 15:53:36 -08:00
Leonardo de Moura
c14192670f feat: add PersistentHashMap.forM 2019-12-21 09:22:10 -08:00
Leonardo de Moura
fdfff29bb1 feat: expose liftLooseBVars and lowerLooseBVars 2019-12-21 08:57:11 -08:00
Leonardo de Moura
a7e33a85a6 chore: remove reverse and add comment 2019-12-21 07:55:58 -08:00