Leonardo de Moura
18093f3f24
feat(library/compiler/csimp): eta-expand lambda-expressions during simplification
2018-10-09 19:16:41 -07:00
Leonardo de Moura
e958f20874
fix(library/compiler/csimp): beta_reduce was not preserving the "join-point" invariant
2018-10-09 19:11:16 -07:00
Leonardo de Moura
256112be5b
chore(library/compiler/lcnf): disable lambda eta-expansion during LCNF conversion
...
We should do it at `csimp`
2018-10-09 15:25:57 -07:00
Leonardo de Moura
27e6f7f424
feat(library/compiler): invoke specialize skeleton
2018-10-09 15:23:42 -07:00
Leonardo de Moura
5d726eb210
feat(library/compiler/compiler): switch to new compiler frontend
...
We also rename `vm_compiler` module to `emit_bytecode`.
We will eventually replace this module with the new IR emitter.
2018-10-08 17:38:17 -07:00
Leonardo de Moura
662c0ebb31
feat(library/compiler/compiler): cache stage1
2018-10-08 17:06:45 -07:00
Leonardo de Moura
124b4d37fe
feat(library/compiler): port simp_inductive to the new compiler stack
...
This commit also fixes a bug in the old `simp_inductive` module, and
removes now obsolete files (`compiler_step_visitor` and `old_util`).
2018-10-08 16:58:43 -07:00
Leonardo de Moura
d2fcb7af39
chore(library/compiler/compiler): add tracing to new compiler frontend
2018-10-08 15:22:36 -07:00
Leonardo de Moura
787d1ecb93
feat(library/compiler/lambda_lifting): new lambda lifting
2018-10-08 15:04:59 -07:00
Leonardo de Moura
e75d8eacb6
fix(frontends/lean/elaborator): compilation erros with g++ 4.9
2018-10-08 11:54:28 -07:00
Sebastian Ullrich
305984bab5
feat(frontends/lean/elaborator): show context of unassigned mvars
2018-10-08 09:32:41 -07:00
Sebastian Ullrich
8e0778e54a
fix(library/init/lean/parser/token): parse whitespace after raw_ident
2018-10-08 09:30:48 -07:00
Sebastian Ullrich
50e6b42f8c
fix(frontends/lean/elaborator): ensure_no_unassigned_metavars: only check mvars in parameter
...
Had forgotten to re-check the standard lib...
2018-10-07 21:11:02 -07:00
Sebastian Ullrich
aea86eb828
feat(frontends/lean/elaborator): simple, accurate mvar error position tracking
...
The accuracy of `m_last_pos` still needs to be improved at some point
2018-10-05 21:25:39 -07:00
Leonardo de Moura
eb51b9ef26
chore(library/init/core): avoid . as end-of-command and empty equations
2018-10-05 17:30:27 -07:00
Leonardo de Moura
fc62e8f3a4
chore(library/compiler): cdecl ==> comp_decl
2018-10-05 17:30:27 -07:00
Leonardo de Moura
d75b1c57bf
chore(library/compiler/preprocess): remove dependency
2018-10-05 17:30:27 -07:00
Leonardo de Moura
b1f98e8f38
feat(library/compiler/lcnf): eta expand lambdas
2018-10-05 17:30:27 -07:00
Leonardo de Moura
4fd546c132
feat(library/compiler): remove old extract_values
2018-10-05 17:30:27 -07:00
Leonardo de Moura
2eea3d4c4b
chore(library/compiler): simplify procedure class
...
Remark: `procedure` will be deleted soon.
2018-10-05 17:30:27 -07:00
Leonardo de Moura
dc5dbb3b81
chore(library/compiler): remove dead code
2018-10-05 17:30:27 -07:00
Leonardo de Moura
d93b2a2656
chore(library/compiler): remove dead code
2018-10-05 17:30:27 -07:00
Leonardo de Moura
335b37d480
chore(library/compiler): remove old reduce_arity
2018-10-05 17:30:27 -07:00
Leonardo de Moura
6b8008a222
feat(library/compiler): new compiler entry point (skeleton)
2018-10-05 17:30:27 -07:00
Leonardo de Moura
d29e95af08
fix(util/list_ref): typo
2018-10-05 17:30:27 -07:00
Leonardo de Moura
be6324e183
chore(util/list_ref): missing include
2018-10-05 17:30:27 -07:00
Leonardo de Moura
1d1efdd5f3
chore(library/compiler/preprocess): remove dead global
2018-10-05 17:30:27 -07:00
Leonardo de Moura
a21dac4384
chore(library/compiler/vm_compiler): remove option
2018-10-05 17:30:27 -07:00
Leonardo de Moura
135a8d7508
chore(library/compiler): remove old compiler steps that have already been replaced
2018-10-05 17:30:27 -07:00
Leonardo de Moura
e18af852c8
feat(library/compiler): add code specialization skeleton
2018-10-05 17:30:27 -07:00
Sebastian Ullrich
4e3f9b46c2
refactor(library/init/lean/parser/token): remove weird with_source higher-order function
2018-10-05 08:52:04 -07:00
Sebastian Ullrich
ebeec844af
perf(library/init/lean/parser): minor performance tweaks
2018-10-05 08:52:04 -07:00
Sebastian Ullrich
d1b6b9721a
chore(bin/lean-gdb): exclude scalar fields
2018-10-04 18:32:03 -07:00
Leonardo de Moura
66fe6463fe
fix(library/compiler/csimp): missing mk_let
2018-10-04 15:25:03 -07:00
Leonardo de Moura
78842d4b9b
fix(library/compiler/util): macro_inline was ignoring constants
2018-10-04 15:25:03 -07:00
Sebastian Ullrich
c50b89a318
fix(frontends/lean/elaborator): node!/node_choice!: use constant options for printing-parsing
2018-10-04 14:27:24 -07:00
Sebastian Ullrich
22714b9b10
perf(library/init/lean/parser/combinators): node: no need to fill up with syntax.missing anymore
...
Views now do iterated pattern matches instead of a single one
2018-10-04 14:27:24 -07:00
Sebastian Ullrich
988d38b892
perf(library/init/control): inline monad_map instances even when partially applied
2018-10-04 14:23:03 -07:00
Leonardo de Moura
4bcb7051a8
chore(library/init/data/nat/basic): missing @[inline]
2018-10-03 17:24:53 -07:00
Leonardo de Moura
08425c456a
chore(library/compiler/preprocess): remove dead code
2018-10-03 16:22:44 -07:00
Leonardo de Moura
adfc0e28ea
feat(library/compiler/erase_irrelevant): missing is_irrelevant checks, missing terms being visited, mixing erased with non-erased terms
2018-10-03 16:22:44 -07:00
Sebastian Ullrich
959948b901
feat(library/init/lean): even more core.lean progress
2018-10-03 16:00:08 -07:00
Sebastian Ullrich
ca8e75be9e
fix(library/init/lean/elaborator): check for and consume end of input
2018-10-03 16:00:08 -07:00
Sebastian Ullrich
5274be8c3e
feat(library/init/lean/elaborator): local notation
...
Implemented by treating the parser cfg as a cache that can be recreated from the
elaborator state after e.g. a scope has ended
2018-10-03 16:00:08 -07:00
Leonardo de Moura
cf5141f8ad
chore(library/vm/vm): fix style
2018-10-03 13:25:54 -07:00
Leonardo de Moura
826e63873e
feat(library/compiler/preprocess): use new compiler stack that has already been implemented
2018-10-03 13:24:01 -07:00
Leonardo de Moura
13f0a7cd81
chore(frontends/lean, library/vm): save some debugging help code
2018-10-03 13:20:24 -07:00
Leonardo de Moura
9f161e6968
fix(library,kernel): the new proj_sname field must be taken into account during comparisons
...
`proj_sname` is not just for enabling better pretty printing. It is
necessary in the compiler when type information is lost, and we can't
infer the type of a `proj`-term argument (field `proj_expr`).
2018-10-03 13:11:46 -07:00
Leonardo de Moura
1b95cbeca1
fix(library/compiler/simp_inductive): adjust kernel projections
2018-10-02 18:56:13 -07:00
Leonardo de Moura
c9aab6ef50
feat(library/compiler): register noinline attribute
2018-10-02 18:56:13 -07:00