Leonardo de Moura
e6e71a1f79
chore(init/lean/compiler): inline.lean ==> inlineattrs.lean
2019-06-26 14:10:00 -07:00
Leonardo de Moura
105ca4f76b
feat(library/init/lean/compiler/inline): use EnumAttributes to declare inlining attributes
2019-06-26 14:01:30 -07:00
Leonardo de Moura
34ca44cca1
chore(frontends/lean,library): remove unnecessary #includes and dead code
2019-06-26 11:36:23 -07:00
Leonardo de Moura
e00dc873a8
chore(library/pattern_attribute): [pattern] ==> [matchPattern]
2019-06-26 11:26:49 -07:00
Leonardo de Moura
7e60c6063e
chore(library/compiler): remove dead code
2019-06-26 11:08:23 -07:00
Leonardo de Moura
5cfdd2452a
chore(library/init/lean/compiler/externattr): remove unnecessary [export] annotations
2019-06-26 11:06:38 -07:00
Leonardo de Moura
16d423dab6
feat(frontends/lean): switch to [extern] implemented in Lean
...
This commit also changes how we represent attribute parameters as
Syntax objects.
2019-06-26 10:57:33 -07:00
Leonardo de Moura
be6ca5ba30
feat(library/init/lean/compiler/externattr): @[extern] attribute in Lean
2019-06-26 08:42:57 -07:00
Leonardo de Moura
ff07ec70f4
core(library/projection): switch to Lean implementation
2019-06-26 08:12:06 -07:00
Leonardo de Moura
0e86ae7a8c
feat(library/init/lean): projection info in Lean
2019-06-26 07:57:10 -07:00
Leonardo de Moura
8a1e2bf79b
chore(library/projection): preparing to port projection_info to Lean
2019-06-25 13:17:59 -07:00
Leonardo de Moura
5148497e8c
feat(library/init/lean/compiler/externattr): add mkExternAttr skeleton
2019-06-25 13:16:11 -07:00
Leonardo de Moura
1972f9a426
fix(stage0): missing files
2019-06-25 11:23:34 -07:00
Leonardo de Moura
2e01ac508a
feat(library/init/lean/syntax): primitives for creating and testing string and nat literals
2019-06-25 10:39:23 -07:00
Leonardo de Moura
d870b8af85
chore(stage0): update
2019-06-25 09:18:38 -07:00
Leonardo de Moura
70a1589817
refactor(library/init/lean): move extern.lean to compiler subdirectory
2019-06-25 08:59:55 -07:00
Leonardo de Moura
6cb35bd8a1
chore(frontends/lean/elaborator): replace C++ elaborator attributes with new ones implemented in Lean
2019-06-25 08:37:19 -07:00
Leonardo de Moura
74f0c77915
feat(library/init/lean/elaborator): implement elaborator strategy attributes in Lean
2019-06-25 08:24:56 -07:00
Leonardo de Moura
8206ef0dab
feat(library/reducible): use new Lean implementation
2019-06-24 15:48:12 -07:00
Leonardo de Moura
00ad43fcfe
chore(stage0): update
2019-06-24 15:48:12 -07:00
Leonardo de Moura
061e13eaea
chore(library/reducible): remove dead code
2019-06-24 15:48:12 -07:00
Leonardo de Moura
45dc2cd49a
feat(library/init/lean/compiler): [export] attribute in Lean
2019-06-24 15:48:12 -07:00
Leonardo de Moura
bc0c0ee9bc
chore(tests): fix tests
2019-06-24 15:48:11 -07:00
Leonardo de Moura
714468dc60
chore(frontends/lean): remove include and omit commands
2019-06-24 15:48:11 -07:00
Leonardo de Moura
4c8420406d
chore(stage0): update
2019-06-24 15:48:11 -07:00
Leonardo de Moura
af2d6dbd45
chore(library/init): avoid local attribute
2019-06-24 15:48:11 -07:00
Leonardo de Moura
ce016688ee
chore(frontends/lean/builtin_cmds): remove local notation from old parser
2019-06-24 15:48:11 -07:00
Leonardo de Moura
b225112234
chore(stage0): update
2019-06-24 15:48:11 -07:00
Leonardo de Moura
da09ef4f66
feat(frontends/lean/builtin_exprs): minor improvement
2019-06-24 15:48:11 -07:00
Leonardo de Moura
24e3bff429
feat(frontends/lean): add simple parser! macro
2019-06-24 15:48:11 -07:00
Leonardo de Moura
6a740723a4
chore(frontends/lean): remove node! and nodeChoice! macros
...
They were used in the parsing framework based on `Parsec`
2019-06-24 15:48:11 -07:00
Leonardo de Moura
e4344b0c94
chore(library/init/lean/parser/default): update default
2019-06-21 14:20:40 -07:00
Leonardo de Moura
bc9e460f62
fix(library/init/lean/compiler/ir): collectUsedDecls must take initialization functions into account
...
Move builtin parser level to its own directory
2019-06-21 13:34:42 -07:00
Leonardo de Moura
4ab31275a4
chore(library/init, frontends/lean): remove foldl and foldr notation, and implement list notation in the old parser
2019-06-20 14:32:08 -07:00
Leonardo de Moura
807ec2169a
chore(frontends/lean/notation_cmd): remove scoped notation support
2019-06-20 14:13:56 -07:00
Leonardo de Moura
00aa2a3ffe
chore(library/user_recursors): remove [recursor] attribute and environment extension
2019-06-20 11:25:53 -07:00
Leonardo de Moura
1e30f76511
chore(frontends/lean/pp): remove ppAsAnonymousCtor attribute
2019-06-20 11:03:20 -07:00
Leonardo de Moura
64a592899f
chore(frontends/lean/notation_cmd): remove parsingOnly attribute
2019-06-20 11:00:40 -07:00
Leonardo de Moura
6b5408b69c
chore(library/derive_attribute): remove derive_attribute
...
We will reimplement it in Lean after we have the new frontend working.
2019-06-20 10:55:53 -07:00
Leonardo de Moura
8ad653ae2d
chore(stage0): update
2019-06-20 09:55:55 -07:00
Leonardo de Moura
db325cb924
fix(stag0): missing file
2019-06-20 09:23:41 -07:00
Leonardo de Moura
e0ddacfd3e
feat(library/init/lean/attributes,frontends/lean): allow attributes to specify when they should be applied
2019-06-20 09:17:03 -07:00
Leonardo de Moura
e86e6af049
feat(library/init/lean/attributes): add applicationTime field and remove unnecessary parameters
2019-06-20 08:48:26 -07:00
Leonardo de Moura
b502f178c2
chore(library/compiler/reduce_arity): fix typo
2019-06-19 09:53:00 -07:00
Leonardo de Moura
697f69020f
fix(library/init/lean/parser/parser): new registerBuiltinParserAttribute
...
It is still broken since we apply attributes before we compile code.
Recall that attributes such as `@[export]` and `@[extern]` must be applied before we
compile code.
On the other hand, any attribute `attrName`
```
@[attrName] def foo := ...
```
which creates auxiliary definitions that depend on `foo` must be applied
AFTER we generate code for `foo`. Otherwise, we will fail to compile the
auxiliary definition since we don't have code for `foo` yet.
I will fix the issue above by allowing attributes to specify when they
should be applied. I will start with only two options: before and after
code compilation. In the future, we may need more options (e.g., before
elaboration), but I don't see the need yet.
cc @kha
2019-06-19 09:52:56 -07:00
Leonardo de Moura
766467d095
fix(stage0): missing files
2019-06-18 18:35:18 -07:00
Leonardo de Moura
08cdb757b4
feat(library/init/lean/environment): add Environment.addAndCompile
...
To fix `BuiltinParserAttribute`, we need to be able to add auxiliary declarations programmatically.
2019-06-18 18:20:17 -07:00
Leonardo de Moura
66e3f68dbc
chore(library/compiler/procedure): remove dead code
2019-06-18 17:29:19 -07:00
Leonardo de Moura
0dfca42f6d
chore(library/init/lean/compiler/initattr): remove unnecessary @[export]
2019-06-18 16:15:48 -07:00
Leonardo de Moura
9da080d398
feat(library/compiler/init_attribute): switch to @[init] attribute in Lean
2019-06-18 16:03:52 -07:00