Commit graph

8717 commits

Author SHA1 Message Date
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
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