Commit graph

6170 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
e40c54013a feat(library/vm): add basic support for IO monad 2016-05-24 17:52:22 -07:00
Leonardo de Moura
174fba9dbd feat(frontends/lean): add support for monadic 'do'-notation 2016-05-24 17:18:15 -07:00
Leonardo de Moura
6a9e5079c9 feat(library,frontends/lean/pp): add support for new string encoding 2016-05-24 16:20:43 -07:00
Leonardo de Moura
cf5e7e4185 chore(library/type_context): improve aux_type_context interface 2016-05-24 14:38:21 -07:00
Leonardo de Moura
408d1fae70 refactor(library/norm_num): use new type_context 2016-05-24 14:11:43 -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
c3805a9a81 fix(library/vm/optimize): bytecode optimization 2016-05-23 14:35:10 -07:00
Leonardo de Moura
17e3223467 chore(library/vm/vm): add debugging helper procedure 2016-05-23 14:14:43 -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
76942ae150 fix(kernel,library): OSX warnings 2016-05-13 21:33:40 -07:00
Leonardo de Moura
af1908be94 feat(frontends/lean/decl_cmds): do not generate warning for definitions that are implemented in the VM 2016-05-13 18:17:20 -07:00
Leonardo de Moura
65b9cab9b4 feat(frontends/lean/decl_cmds): generate bytecode when adding definitions
Remark: when the code generator fails we just generate a warning.
Reason: code generator does not support wellfounded recursion yet.
2016-05-13 18:05:47 -07:00
Leonardo de Moura
423d129105 feat(library/vm/vm): bytecode serialization 2016-05-13 17:51:01 -07:00
Leonardo de Moura
c2959dc77b feat(frontends/lean/builtin_cmds): improve error message 2016-05-13 16:27:44 -07:00
Leonardo de Moura
7242de7238 feat(library/vm/vm): improve vm_obj pretty printer 2016-05-13 16:16:31 -07:00
Leonardo de Moura
bd23f5d63d feat(frontends/lean/builtin_cmd): improve vm_eval command 2016-05-13 16:15:44 -07:00
Leonardo de Moura
6142fbb1c6 feat(library/vm/vm): check interruptions and memory at invocation 2016-05-13 15:38:48 -07:00
Leonardo de Moura
9e7d8c10ae perf(library/vm/vm): small optimizations 2016-05-13 15:33:58 -07:00
Leonardo de Moura
11b63b0fcd fix(util/small_object_allocator): warning 2016-05-13 15:20:32 -07:00
Leonardo de Moura
0c0dec8aa6 feat(library/vm/vm): use small object allocator for VM objects 2016-05-13 14:56:53 -07:00
Leonardo de Moura
92bc367c5c feat(util): add small object allocator 2016-05-13 14:41:31 -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
4f53cfe5e8 fix(library/vm/vm): std::copy issue 2016-05-13 12:22:28 -07:00
Leonardo de Moura
00bc55af3e feat(library/vm/vm): improve trace 2016-05-13 12:13:47 -07:00
Leonardo de Moura
dc3d7597ee chore(library/vm/vm): document VM instructions 2016-05-13 11:54:11 -07:00
Leonardo de Moura
56ec91284b chore(library/vm/vm): cleanup 2016-05-13 11:06:25 -07:00
Leonardo de Moura
35cf7bf8e2 feat(library/vm/vm): remove atomic from VM object reference counter
VM objects should not be shared between different threads.
So, the atomic<unsigned> in the reference counter produces an
unnecessary performance penalty.
2016-05-13 11:00:33 -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
dbcd609aff feat(library/vm/vm): disable VM trace in release mode 2016-05-13 10:33:25 -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
7bdf2d4a5a feat(library/vm/vm): avoid macros 2016-05-13 09:50:07 -07:00
Leonardo de Moura
437fee1919 feat(frontends/lean/builtin_cmds): track runtime 2016-05-13 09:38:18 -07:00
Leonardo de Moura
990d2dc06e fix(library/vm/vm): typo 2016-05-13 00:45:18 -07:00
Leonardo de Moura
b8b32c2a3b fix(library/vm/vm): typo 2016-05-13 00:43:09 -07:00
Leonardo de Moura
843f3a69ba fix(library/vm/vm): memory management 2016-05-13 00:29:20 -07:00
Leonardo de Moura
46c50831fd fix(library/vm/vm): initialization bug 2016-05-12 23:43:44 -07:00
Leonardo de Moura
06039d95b4 feat(library/vm/vm): add tracing 2016-05-12 23:43:30 -07:00
Leonardo de Moura
8a0b2534bb fix(library/vm/vm): builtin function invocation 2016-05-12 19:35:28 -07:00
Leonardo de Moura
a533cc56ec fix(library/vm/vm_nat): typo 2016-05-12 19:34:06 -07:00
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