Commit graph

40 commits

Author SHA1 Message Date
Leonardo de Moura
27e0ad0d9e chore(library/init/lean/compiler/ir/emitcpp): remove constant registration 2019-07-19 10:52:18 -07:00
Leonardo de Moura
c00788a982 fix(library/init/lean/compiler/ir/emitcpp): header of big boxed functions 2019-07-08 21:52:01 -07:00
Leonardo de Moura
1a81d60820 chore(frontends/lean/parser): simplify binder notation
The `<ident> : <expr>` now requires explicit brackets.
2019-07-08 08:54:19 -07:00
Leonardo de Moura
ea6eee516b chore(frontends/lean): use => instead of := in match-expressions
Motivation: use same separator used in lambda expressions as in
other programming languages.
2019-07-04 11:38:38 -07:00
Leonardo de Moura
92466272ed fix(library/init/lean/compiler/ir/emitcpp): incorrectly emitting unicode characters in the range [128, 255]
For example, "·" was being stored as `\xb7` which is not the valid UTF8.
2019-07-02 15:56:32 -07:00
Leonardo de Moura
a02443d23d chore(frontends/lean): fun x, e ==> fun x => e 2019-07-02 13:22:11 -07:00
Leonardo de Moura
91e1d30cf8 feat(frontends/lean/builtin_exprs): use ; in do-notation 2019-06-27 18:00:43 -07:00
Leonardo de Moura
ab487ea4ac feat(frontends/lean): allow ; instead of in in let-decls 2019-06-27 17:12:03 -07:00
Leonardo de Moura
7ca4607ef3 chore(library/init/lean): move name_mangling.lean to compiler directory 2019-06-26 07:05:23 -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
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
f176a7963c feat(library/init/lean/compiler/ir/emitcpp): register arity 0 declarations 2019-06-07 17:15:16 -07:00
Leonardo de Moura
c3a7cc4617 feat(library/init/lean/compiler/ir/emitcpp): register functions 2019-06-07 15:34:55 -07:00
Leonardo de Moura
d9cceec9eb feat(library/init/lean/compiler/ir/emitcpp): avoid unnecessary var decls 2019-05-30 09:36:28 -07:00
Leonardo de Moura
7ef495a526 fix(library/init/lean/compiler/ir): use setTag at expandresetreuse
This commit also adds the instruction `setTag`, and removes `release`.
2019-05-23 17:41:14 -07:00
Leonardo de Moura
7cb5c04f4f feat(library/init/lean/compiler/ir/expandresetreuse): first draft 2019-05-23 14:07:08 -07:00
Leonardo de Moura
8ba7dd4cff feat(library/init/lean/compiler/ir): add del instruction for releasing memory 2019-05-23 08:01:15 -07:00
Leonardo de Moura
a8f8df1475 chore(library/init/lean/compiler): add export.lean 2019-05-22 11:27:25 -07:00
Leonardo de Moura
ef89945ea0 fix(library/init/lean/compiler/ir/emitcpp): tail call
Implement fix used at 4d2837430a in the new IR compiler.
2019-05-22 07:58:33 -07:00
Leonardo de Moura
64525116f5 fix(library/init/lean/compiler/ir): avoid compilation warning 2019-05-21 20:19:45 -07:00
Leonardo de Moura
c391bff33c fix(library/init/lean/compiler/ir/emitcpp): misssing condition 2019-05-21 20:09:27 -07:00
Leonardo de Moura
40b890f220 fix(library/init/lean/compiler/ir/emitcpp): typo 2019-05-21 16:21:21 -07:00
Leonardo de Moura
5b3aec088e feat(library/init/lean/compiler/ir/emitcpp): emit module initialization code 2019-05-21 16:06:10 -07:00
Leonardo de Moura
baa99aa4a5 fix(library/init/lean/compiler/ir/emitcpp): small bugs 2019-05-21 15:34:05 -07:00
Leonardo de Moura
ba9a10265e feat(library/init/lean/compiler/ir/emitcpp): implement emitVDecl remaining cases 2019-05-21 14:55:11 -07:00
Leonardo de Moura
88cf3aa5e8 feat(library/init/lean/compiler/ir/emitcpp): emit different kinds of application 2019-05-21 14:30:45 -07:00
Leonardo de Moura
5a72368967 feat(library/init/lean/compiler/ir): improve checker 2019-05-21 13:18:56 -07:00
Leonardo de Moura
5aa8647b18 feat(library/init/lean/compiler/ir/emitcpp): more cases 2019-05-21 10:54:58 -07:00
Leonardo de Moura
f3e13c18f8 fix(library/init/lean/compiler/ir): reset 2019-05-21 10:28:50 -07:00
Leonardo de Moura
cc4c26e8ab feat(library/init/lean/compiler/ir/emitcpp): add some missing cases 2019-05-21 10:21:52 -07:00
Leonardo de Moura
510de7a3a9 feat(library/init/lean/compiler/ir/emitcpp): emitBlock 2019-05-21 09:20:19 -07:00
Leonardo de Moura
636415f645 chore(library/init/lean/compiler/ir/emitcpp): minor 2019-05-21 08:46:20 -07:00
Leonardo de Moura
49ef6e474a feat(library/init/lean/compiler/ir/emitcpp): better error messages 2019-05-21 08:17:55 -07:00
Leonardo de Moura
4ed803c564 feat(library/init/lean/compiler/ir/emitcpp): emit skeletons 2019-05-20 19:08:21 -07:00
Leonardo de Moura
f852cd774f feat(library/init/lean/compiler/ir): expose C++ primitives for accessing export and extern attributes 2019-05-20 15:49:03 -07:00
Leonardo de Moura
8c4a9116f6 feat(library/init/lean/compiler/ir/emitcpp): generate header and function decls 2019-05-20 14:47:54 -07:00
Leonardo de Moura
3ffe0e22c8 feat(shel/lean): add temporary option for testing new IR compiler code emitter 2019-05-20 10:19:09 -07:00
Leonardo de Moura
b0e7b05f63 feat(library/init/lean/compiler/ir/emitcpp): add entry point 2019-05-20 09:50:57 -07:00
Leonardo de Moura
40ecbb7cbc feat(library/init/control/monad): mark monadInhabited as an instance 2019-05-20 09:33:17 -07:00
Leonardo de Moura
ff74b9f44a feat(library/init/lean/compiler/ir): add emitutil.lean and emitcpp.lean files 2019-05-20 09:25:16 -07:00