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
Leonardo de Moura
fa906c6bda
fix(library/compiler/lambda_lifting): use user_name
2018-10-02 18:56:13 -07:00
Leonardo de Moura
e89e0075a5
fix(library/compiler/lcnf): do not expand projections of builtin types
2018-10-02 18:56:13 -07:00
Leonardo de Moura
cd8dc8670d
fix(library/compiler/erase_irrelevant): visit_constant
2018-10-02 18:56:13 -07:00
Leonardo de Moura
49425aa80c
fix(library/compiler/erase_irrelevant): assertion violation
2018-10-02 18:56:13 -07:00
Leonardo de Moura
24bd5782e0
fix(library/compiler/erase_irrelevant): make sure lambda that return irrelevant data is marked as irrelevant
2018-10-02 18:56:13 -07:00
Leonardo de Moura
85c58e8f0e
feat(library/compiler): add support for string literals in the old VM
2018-10-02 18:56:13 -07:00
Sebastian Ullrich
0563c60b1a
feat(library/init/lean/elaborator): add coroutine, use it to implement section/namespace elaborators (they don't do anything yet except for checking the end name)
2018-10-02 14:55:28 -07:00
Sebastian Ullrich
097b7be14f
refactor(library/init/lean/parser/token): change raw view type to option syntax_atom and create raw_str to give some raw parsers view defaults
2018-10-02 14:55:28 -07:00
Sebastian Ullrich
25b9deab15
fix(frontends/lean/elaborator): fix try_monad_coercion
2018-10-02 14:55:28 -07:00
Sebastian Ullrich
918388ac26
refactor(library/init/control/except): reintroduce except_t.mk
2018-10-02 14:55:28 -07:00
Sebastian Ullrich
533ac2d5b2
fix(library/init/lean/parser/declaration): attributes before visibility modifiers
2018-10-02 14:55:28 -07:00
Sebastian Ullrich
71fd8a59b4
feat(library/init/lean/parser/notation): simple term language for precedences
2018-10-02 14:55:28 -07:00
Sebastian Ullrich
b8b39585ec
fix(library/init/lean/parser/command): variable may take unbracketed binder
2018-10-02 14:55:28 -07:00
Sebastian Ullrich
fc5120290f
feat(library/init/lean/parser/term): inductive levels, let, structure instances
2018-10-02 14:55:28 -07:00
Sebastian Ullrich
da04491df1
fix(frontends/lean/builtin_exprs): trim view field names
2018-10-02 14:55:28 -07:00
Leonardo de Moura
dc937281b3
chore(library/init/string): remove string.iterator_imp
2018-10-02 13:46:01 -07:00
Leonardo de Moura
fd46adb7b3
fix(library/compiler/erase_irrelevant): minor issues
2018-10-02 13:36:48 -07:00
Leonardo de Moura
20e7edd4ac
feat(library/compiler): erase trivial structures and flat cases on structures
2018-10-02 11:05:15 -07:00
Leonardo de Moura
c3569dc72d
feat(kernel): store structure name in proj-expressions
2018-10-02 09:23:11 -07:00
Leonardo de Moura
c05e7a31a3
chore(library/compiler): add is_runtime_scalar_type and is_runtime_builtin_type
2018-10-02 09:03:53 -07:00
Leonardo de Moura
3ac6eab393
chore(library/vm): remove vm_list
2018-10-02 08:44:05 -07:00
Leonardo de Moura
429f844fbe
@chore(library/init/lean/parser/parsec): remove @[inline] annotations to reduce compilation time
...
We will mark them as `@[specialize]` as soon as we implement code specialization
2018-10-01 17:30:13 -07:00
Leonardo de Moura
fbe702510d
fix(library/compiler/csimp): missing projection of instance simplification
2018-10-01 17:23:29 -07:00
Leonardo de Moura
25b45d6f9e
feat(library/compiler): add erase_irrelevant transformation to new compiler stack
2018-10-01 17:06:56 -07:00
Sebastian Ullrich
ab5460d010
perf(library/init/lean/parser/parsec): more [inline] attributes
2018-10-01 16:32:11 -07:00
Sebastian Ullrich
5596eea27b
test(tests/lean/parser1): deactivate core.lean test
2018-10-01 14:38:30 -07:00
Leonardo de Moura
efa77c2a5b
fix(library/compiler/inliner): bug in the old compiler
...
The bug was being masked by the `elim_recursors` transformation.
When this transformation was used, the bug would manifest itself as a
performance bug.
2018-10-01 14:17:11 -07:00
Leonardo de Moura
e466ecd263
chore(library/compiler/lambda_lifting): fix debug mode compilation errors
2018-10-01 14:17:11 -07:00
Leonardo de Moura
04caf5af42
chore(library/derive_attribute): remove unnecessary #includes
2018-10-01 14:17:11 -07:00
Leonardo de Moura
b4c2861939
refactor(library/compiler): rename "erasure normal form" functions
2018-10-01 14:17:11 -07:00
Leonardo de Moura
a5f55300ef
feat(library/constants): add uint constants
2018-10-01 14:17:11 -07:00
Leonardo de Moura
5ff63c3c96
feat(library/init/data/uint): add uint8
2018-10-01 14:17:11 -07:00
Leonardo de Moura
3a4acbee9e
chore(library/init/data/string): remove string_imp
...
We will use the (to be implemented) `opaque` keyword
2018-10-01 14:17:11 -07:00
Leonardo de Moura
81e9e95570
chore(library/compiler): erase_irrelevant ==> old_erase_irrelevant
2018-10-01 14:17:11 -07:00
Leonardo de Moura
761db5bc7e
chore(library/init/core): remove obsolete lemmas
...
We don't need them anymore.
2018-10-01 14:17:11 -07:00
Sebastian Ullrich
e261d8f222
perf(library/init): missing [inline] attributes
2018-10-01 11:53:38 -07:00
Leonardo de Moura
0279cb0766
fix(library/compiler/lcnf): must process constants too
2018-10-01 11:41:57 -07:00
Leonardo de Moura
b9cee7b8ae
chore(library/init/wf): disable codegen for wf
2018-10-01 11:41:57 -07:00
Leonardo de Moura
70041bf43f
feat(library/compiler/vm_compiler): add option codegen
2018-10-01 11:41:57 -07:00
Sebastian Ullrich
7d8c3c5db8
feat(library/init/lean/parser/term): use longest_match for Pratt parsing
2018-10-01 09:02:39 -07:00