lean4-htt/library/init/lean/compiler
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
..
ir feat(library/init/lean/compiler/ir/emitcpp): register arity 0 declarations 2019-06-07 17:15:16 -07:00
closedtermcache.lean refactor(library/init/lean/environment): more flexible PersistentEnvExtensionState 2019-06-04 16:35:21 -07:00
constfolding.lean feat(library/init/lean/compiler/constfolding): fold Nat.pow, UInt*.toNat and USize.toNat 2019-06-01 10:28:04 -07:00
default.lean chore(library/init/lean/compiler): attributes.lean ==> inline.lean 2019-06-06 14:08:13 -07:00
export.lean fix(library/init/lean/compiler/ir/borrow): do not perform borrow inference for @[export] declarations 2019-05-22 11:44:34 -07:00
initattr.lean fix(library/init/lean/parser/parser): new registerBuiltinParserAttribute 2019-06-19 09:52:56 -07:00
inline.lean chore(library/init/lean/compiler/inline): export typo 2019-06-06 15:28:20 -07:00
util.lean feat(library/init/lean/environment): add Environment.addAndCompile 2019-06-18 18:20:17 -07:00