Commit graph

11891 commits

Author SHA1 Message Date
Leonardo de Moura
38320fa07c refactor(library/vm/vm): use locals 2016-05-12 19:06:14 -07:00
Leonardo de Moura
505ab4c0ba fix(library/vm/vm): uninit var
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2016-05-12 19:03:32 -07:00
Leonardo de Moura
4e9cafb67f feat(library/vm/vm): add missing swap 2016-05-12 19:01:25 -07:00
Leonardo de Moura
682407b54d fix(library/vm/vm): incorrect assertion 2016-05-12 18:59:18 -07:00
Leonardo de Moura
8c1238637a feat(frontends/lean): add vm_eval command 2016-05-12 18:56:31 -07:00
Leonardo de Moura
8a8cafdcdb fix(library/vm/vm): support for builtin functions 2016-05-12 18:56:13 -07:00
Leonardo de Moura
474737bfb9 feat(library/vm/vm): add very basic display for vm_obj 2016-05-12 18:42:17 -07:00
Leonardo de Moura
6febe9677d feat(library/vm/vm): add main loop 2016-05-12 18:36:29 -07:00
Leonardo de Moura
9fbf3f2921 feat(library/vm): encode small numerals using scnstr instead of num operation 2016-05-12 16:43:21 -07:00
Leonardo de Moura
de327c0c20 feat(library/vm/vm_nat): add builtin support for nat lt 2016-05-12 16:36:37 -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
1393238c9d fix(library/vm/vm_nat): fix constant name 2016-05-12 15:29:14 -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
5a7f96a995 refactor(library/vm): simplify initialization 2016-05-12 14:49:06 -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
670e7117a2 feat(library/vm): throw error if VM already has code for the given function 2016-05-12 13:50:46 -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
324ca84b27 feat(frontends/lean/builtin_cmds): keep bytecode 2016-05-12 13:44:45 -07:00
Leonardo de Moura
38bd7e6d10 fix(library/compiler/vm_compiler): typo 2016-05-12 11:54:38 -07:00
Leonardo de Moura
7e7129272f fix(library/annotation): memory leak 2016-05-12 11:43:45 -07:00
Leonardo de Moura
41786f41f0 fix(library/vm): did not use copy constructor 2016-05-12 11:41:28 -07:00
Leonardo de Moura
705317ae77 feat(library/compiler): generate bytecode 2016-05-11 19:21:47 -07:00
Leonardo de Moura
7a4ed85fee feat(library/vm): add get_vm_decl 2016-05-11 17:42:14 -07:00
Leonardo de Moura
61471df3eb feat(library/vm): store idx at vm_decl 2016-05-11 17:39:49 -07:00
Leonardo de Moura
5189a83f57 feat(library/vm): pretty print bytecode 2016-05-11 16:57:56 -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
99716306f1 feat(library/vm): accessors and setters for vm_instr 2016-05-11 15:54:46 -07:00
Leonardo de Moura
a383b25c50 feat(library/vm): add auxiliary procedures 2016-05-11 15:47:05 -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
dd4d115cc5 fix(frontends/lean/structure_cmd): mark recursors generated by structure cmd as auxiliary 2016-05-11 14:18:29 -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
ef8b182fb6 feat(library/util): add get_constructor_idx 2016-05-11 13:16:40 -07:00
Leonardo de Moura
5f9120be63 feat(library/util): add get_contructor_relevant_fields 2016-05-11 13:11:37 -07:00
Leonardo de Moura
53308d55b1 feat(library/vm): add is_vm_builtin_function 2016-05-11 12:49:54 -07:00
Leonardo de Moura
74b9690b7f feat(library/vm): add Proj (projection) operation 2016-05-11 11:56:55 -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
26029c2078 chore(library/definitional/projection): cleanup 2016-05-11 11:42:46 -07:00
Leonardo de Moura
ca891c176e feat(frontends/lean/pp): add option pp.hide_comp_irrelevant
It is true by default
2016-05-11 11:31:38 -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
2e7422fcd6 feat(library/init/logic): mark auxiliary definitions as 'inline' 2016-05-11 10:11:29 -07:00