Commit graph

34 commits

Author SHA1 Message Date
Leonardo de Moura
63ed0c0056 feat(library/compiler/erase_irrelevant): add support for IO monad.bind 2016-05-24 18:14:39 -07:00
Leonardo de Moura
d7e863c3f4 feat(library/compiler/erase_irrelevant): add support for quotient types
and expand macros
2016-05-23 17:49:42 -07:00
Leonardo de Moura
fd1141d999 fix(library/vm/vm,library/compiler/vm_compiler): invoke n ==> apply
This change fixes a bug in the VM and simplifies the VM instruction semantics.
2016-05-23 16:45:42 -07:00
Leonardo de Moura
e42972b501 feat(library/compiler/erase_irrelevant): add support for acc.rec 2016-05-23 16:31:29 -07:00
Leonardo de Moura
5333e07eb9 fix(library/compiler/vm_compiler): incorrect assertion 2016-05-23 15:10:50 -07:00
Leonardo de Moura
9545620a54 fix(library/compiler/simp_inductive): generate error message for inductive predicates
indutive predicates that support elimination on Type (e.g., eq and acc) must be
eliminated before this step.
2016-05-23 13:27:05 -07:00
Leonardo de Moura
423d129105 feat(library/vm/vm): bytecode serialization 2016-05-13 17:51:01 -07:00
Leonardo de Moura
752c81a166 fix(library/compiler/nat_value): add expand method, otherwise we may fail to type check terms using nat_value_macro 2016-05-13 12:50:28 -07:00
Leonardo de Moura
f75caddc35 feat(library/vm/vm): rename cases1 to destruct 2016-05-13 12:30:47 -07:00
Leonardo de Moura
2bd400964c feat(library/vm/vm): store arguments in reverse order on the stack
It simplifies the code for handling closures.
2016-05-13 10:54:29 -07:00
Leonardo de Moura
039e960799 feat(library/vm/vm): add InvokeBuiltin instruction 2016-05-13 10:28:05 -07:00
Leonardo de Moura
2c0dee5b41 feat(library/vm/vm): cases2 and casesn take pc of first branch too 2016-05-13 10:15:20 -07:00
Leonardo de Moura
df9352ea6e feat(library/compiler): better support for numeric constants 2016-05-12 16:33:37 -07:00
Leonardo de Moura
f2af5828ba refactor(library/compiler): preprocess_rec ==> preprocess 2016-05-12 16:03:39 -07:00
Leonardo de Moura
c48a17563c feat(library/vm/optimize): add basic bytecode optimizations 2016-05-12 15:24:58 -07:00
Leonardo de Moura
399b83122c refactor(library): move vm to a separate directory 2016-05-12 14:45:06 -07:00
Leonardo de Moura
7852247376 feat(compiler/simp_inductive): add optimization for inductive datatypes that have only one constructor C, and C has only one relevant field 2016-05-12 14:24:14 -07:00
Leonardo de Moura
a9f05abbe7 feat(library/compiler,library/vm): add unreachable instruction 2016-05-12 14:01:58 -07:00
Leonardo de Moura
0558214b7c fix(library/compiler/vm_compiler): emit code for neutral expr 2016-05-12 13:45:05 -07:00
Leonardo de Moura
38bd7e6d10 fix(library/compiler/vm_compiler): typo 2016-05-12 11:54:38 -07:00
Leonardo de Moura
705317ae77 feat(library/compiler): generate bytecode 2016-05-11 19:21:47 -07:00
Leonardo de Moura
70cff1a4bd feat(library/compiler/lambda_lifting): avoid unnecessary auxiliary decls 2016-05-11 16:34:47 -07:00
Leonardo de Moura
ecc9014d82 fix(library/compiler/simp_inductive): check ignore predicate at visit_constant 2016-05-11 16:06:21 -07:00
Leonardo de Moura
7ca916cddf feat(library/compiler/simp_inductive): add optimization for _cases based on the number of reachable cases 2016-05-11 14:40:53 -07:00
Leonardo de Moura
a5c6741d1b fix(library/compiler/simp_inductive): add support for constructor without arguments 2016-05-11 14:24:43 -07:00
Leonardo de Moura
e53bfb9d0a feat(library/compiler): add new compilation step where we reduce cases_on, constructor and projection applications into a basic primitives 2016-05-11 14:17:32 -07:00
Leonardo de Moura
1bb36e5a0a chore(library/compiler/simp_pr1_rec): assume num of typeformers (aka motive) is 1 2016-05-11 11:51:35 -07:00
Leonardo de Moura
08a563dc0a fix(library/compiler/simp_pr1_rec): bug in simplification step 2016-05-11 11:47:59 -07:00
Leonardo de Moura
9d01d1bb04 chore(library/compiler/preprocess_rec): add extra assertions 2016-05-11 11:24:12 -07:00
Leonardo de Moura
a581017d8d chore(library/compiler/preprocess_rec): trace preprocessing steps 2016-05-11 11:17:40 -07:00
Leonardo de Moura
3b47d91b3e feat(library/compiler): add lambda lifting 2016-05-11 11:07:39 -07:00
Leonardo de Moura
1820bdc430 feat(library/compiler): generate better auxiliary function names 2016-05-11 10:26:51 -07:00
Leonardo de Moura
b12587dc5c feat(library/compiler/erase_irrelevant): false.rec ==> unreachable 2016-05-11 10:17:14 -07:00
Leonardo de Moura
de9df69ef6 refactor(src): move compiler folder to library 2016-05-09 13:28:00 -07:00