Sebastian Ullrich
b1aff14650
feat(library/init/lean/parser/syntax.lean): simplify syntax debug output
2018-06-07 14:57:13 +02:00
Sebastian Ullrich
613b6805b3
chore(library/init/lean/parser/parser_t.lean): fix comments
2018-06-07 14:57:13 +02:00
Sebastian Ullrich
bdfdd1288e
feat(library/init/lean/parser/macro): allow expanders to be skipped dynamically
2018-06-07 14:57:13 +02:00
Leonardo de Moura
441b9077b2
feat(library/comp_val): add mk_name_val_ne_proof
...
We need this procedure otherwise it takes forever to prove equation lemmas
for definitions such as:
```
def macros : name → option macro
| `lambda := some lambda_macro
| `intro_x := some intro_x_macro
| _ := none
```
We never experienced this problem in Lean3 because we used `name`
literals only occurred in patterns of *meta* definitions. So, no
equation lemma was generated.
@kha `def macros` was taking more than 1 second to elaborate on my
machine. It is now instantaneous.
2018-06-06 09:18:59 -07:00
Sebastian Ullrich
1c380037d3
refactor(library/init/lean/parser/syntax): replace syntax.lst with syntax.node, remove span field from syntax_node
2018-06-06 15:46:39 +02:00
Sebastian Ullrich
732c823646
feat(library/init/lean/parser): remove syntax_id, use De Bruijn indices instead
2018-06-06 15:36:28 +02:00
Leonardo de Moura
1bae8f8eab
refactor(library/init/lean/ir/parser): parser.lean => parser_t.lean
2018-06-05 08:00:13 -07:00
Sebastian Ullrich
0f7c0ac8bf
feat(init/lean/parser/parser): make a monad transformer
...
Also move parser combinators into the more specific namespace `init.lean.parser.parser_t`.
2018-06-04 12:57:23 +02:00
Sebastian Ullrich
6a0f3056f4
chore(library/init/lean/parser/syntax): cleanup
2018-06-04 11:02:45 +02:00
Leonardo de Moura
9a671d7c7d
chore(library/compiler): delete rec_fn_macro
2018-05-31 17:11:25 -07:00
Leonardo de Moura
1a369521cb
chore(library/init/lean/macro): update macro TODO list
2018-05-30 10:24:31 -07:00
Sebastian Ullrich
c4d7eb7949
feat(init/lean/parser/macro): global names can be overloaded
2018-05-29 16:43:32 +02:00
Leonardo de Moura
a7760631dc
chore(library/init/lean/macro): document macros in use
2018-05-24 17:39:10 -07:00
Leonardo de Moura
9a4b3f85f3
feat(library/init/lean/level): missing functions
2018-05-22 10:49:24 -07:00
Leonardo de Moura
4d7ae73d39
feat(library/init/lean): add level
2018-05-22 09:45:18 -07:00
Leonardo de Moura
b78e9df869
chore(runtime/object): tag => obj_tag
...
`tag` at `object.h` conflicts with `tag` at `expr.h`
2018-05-20 12:00:59 -07:00
Leonardo de Moura
2944f7a027
chore(runtime): lean_obj.* ==> object.*
2018-05-20 10:17:15 -07:00
Leonardo de Moura
2d604e7d25
chore(runtime/lean_obj): remove lean_ prefix
2018-05-20 10:13:44 -07:00
Leonardo de Moura
115ca87555
feat(library/init/lean/core): define core language
2018-05-18 15:35:42 -07:00
Sebastian Ullrich
bba55aad47
feat(library/init/lean/trace): implement conditional tracing via good old trace classes
2018-05-18 14:52:15 +02:00
Sebastian Ullrich
3796c73b85
feat(library/init/lean/options): add lean.options
2018-05-18 14:51:40 +02:00
Leonardo de Moura
acdcbdb71e
feat(library/init/lean/ir): add instructions for (big) integer arithmetic
2018-05-17 18:17:23 -07:00
Leonardo de Moura
5d8501acf5
chore(runtime/lean_obj): consistent naming convention
2018-05-17 16:45:27 -07:00
Leonardo de Moura
217fa0e8c9
feat(library/init/lean/ir/lirc): add option to specify whether input is in SSA or not
2018-05-17 15:53:49 -07:00
Leonardo de Moura
af1a5fe874
feat(library/init/lean/ir): add x : ty := y instruction
...
It is useful when we are not producing IR in SSA.
2018-05-17 15:44:13 -07:00
Leonardo de Moura
b14f7e2fa4
chore(library/init/lean/ir/reserved): update list of reserved words
2018-05-17 15:44:01 -07:00
Leonardo de Moura
dede61b122
feat(library/init/lean/ir): add tag and tag_ref instructions
2018-05-17 14:51:41 -07:00
Leonardo de Moura
5d53eccb59
feat(runtime): string support
2018-05-17 13:11:47 -07:00
Sebastian Ullrich
4a7c2fcafc
test(tests/lean/macro1): add examples from prototype
2018-05-17 17:45:02 +02:00
Sebastian Ullrich
789707efe6
refactor(library/init/lean/trace): avoid init.meta import
2018-05-17 14:25:12 +02:00
Sebastian Ullrich
308d58ad77
chore(library/init/lean/trace): remove 'meta'
2018-05-17 14:15:25 +02:00
Leonardo de Moura
53d459911f
refactor(library/init/lean/ir): RC instructions
2018-05-16 10:28:51 -07:00
Leonardo de Moura
8cb7511a91
feat(runtime/lean_obj): natural number support
2018-05-16 10:28:51 -07:00
Sebastian Ullrich
2cf731c607
feat(library/init/lean/trace.lean): add tracing structure and monad prototypes
2018-05-16 18:47:37 +02:00
Leonardo de Moura
ade8cb7296
chore(library/init/lean/ir): make it clear that big number may be a tagged pointer
2018-05-15 15:58:58 -07:00
Leonardo de Moura
6e1a64a3ed
fix(library/init/lean/ir): change semantics of big number operations
...
Remark: only `inc`, `dec` and `decs` should modify the reference counters.
2018-05-15 15:52:54 -07:00
Leonardo de Moura
65b9da7a29
doc(library/init/lean/ir/ir): document operators
2018-05-15 15:31:27 -07:00
Leonardo de Moura
cf36d8b08e
refactor(library/init/lean/ir): rename ir.instr constructors
2018-05-15 14:48:12 -07:00
Leonardo de Moura
272f80c799
feat(library/init/lean/ir): add string_push and string_append instructions
2018-05-15 14:27:10 -07:00
Leonardo de Moura
74767df5ff
feat(library/init/lean/ir/extract_cpp): add initialize_prefix and finalize_prefix
2018-05-15 14:09:38 -07:00
Leonardo de Moura
be74e3f974
refactor(library/init/lean/ir): add init/lean/ir/instances.lean
2018-05-15 12:14:36 -07:00
Leonardo de Moura
0f2a8f09c2
chore(library/init/lean/ir): cleanup
2018-05-15 12:09:04 -07:00
Leonardo de Moura
5cfb442f2c
feat(library/init/lean/ir): add compilation unit initializer/finalizer
2018-05-15 11:57:53 -07:00
Leonardo de Moura
52b5ab1514
doc(library/init/lean/ir/ir): document unary operators
2018-05-14 20:29:28 -07:00
Leonardo de Moura
59f9de720d
feat(library/init/lean/ir/lirc): we should support only C external names without mangling
2018-05-14 16:32:18 -07:00
Leonardo de Moura
d166b69e2c
feat(library/init/lean/ir/parser): add support for functions that do not return anything
2018-05-14 16:05:15 -07:00
Leonardo de Moura
aa1006d01b
feat(library/init/lean/ir/extract_cpp): generate libleanruntime.a
2018-05-14 14:34:10 -07:00
Leonardo de Moura
31ce1a23e7
fix(library/init/lean/ir/extract_cpp): add support for bignum literals
2018-05-14 11:12:49 -07:00
Leonardo de Moura
37201b9192
feat(library/init/lean/ir/extract_cpp): add emit_closure
2018-05-14 09:53:45 -07:00
Leonardo de Moura
c6de7ae4d1
fix(library/init/lean/ir/type_check): typo
2018-05-14 09:53:29 -07:00