Commit graph

44 commits

Author SHA1 Message Date
Leonardo de Moura
9eb9be2911 fix(library/vm/vm): make sure objects are not garbage collected at invoke_cfun when the VM stack is resized 2016-06-03 17:31:47 -07:00
Leonardo de Moura
b5ca231cdf fix(library/vm/vm): problems detected when using valgrind 2016-06-03 16:55:01 -07:00
Leonardo de Moura
5a9a5dabd6 perf(library/vm/vm): improve performance of invoke_closure 2016-06-03 15:39:18 -07:00
Leonardo de Moura
924f3629ee feat(library/vm): expose name of the C++ functions that implement builtins 2016-06-02 12:48:43 -07:00
Leonardo de Moura
81947e145e feat(library/vm,library/compiler): add support for builtin cases_on 2016-06-01 19:06:52 -07:00
Leonardo de Moura
e72a8f4a9b feat(library/vm/vm): add support for builtin constants 2016-06-01 13:05:39 -07:00
Leonardo de Moura
d1e37f1948 fix(library/vm/vm): invoke_closure 2016-05-31 18:44:53 -07:00
Leonardo de Moura
032750f4cb feat(library/vm/vm): add dynamic declare_vm_builtin 2016-05-31 17:42:42 -07:00
Leonardo de Moura
b31a7bd3e7 feat(library/vm): use cfunction style for nat and IO primitives 2016-05-31 17:22:27 -07:00
Leonardo de Moura
faf70ed58c feat(library/vm/vm): add support for declaring builtin cfunctions 2016-05-31 16:48:11 -07:00
Leonardo de Moura
25903645a7 feat(library/vm/vm): add some sanity checking 2016-05-31 16:29:01 -07:00
Leonardo de Moura
e843062be7 feat(library/vm/vm): add support to builtin c-like functions that use the system stack to pass arguments 2016-05-31 16:19:43 -07:00
Leonardo de Moura
93ca755e56 fix(library/vm/vm): vm::execute 2016-05-26 12:41:40 -07:00
Leonardo de Moura
53811822d4 chore(*): style 2016-05-25 18:10:15 -07:00
Leonardo de Moura
bf2d2b9feb fix(library/vm,library/compiler,frontends/lean): IO monad support 2016-05-25 13:30:43 -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
17e3223467 chore(library/vm/vm): add debugging helper procedure 2016-05-23 14:14:43 -07:00
Leonardo de Moura
423d129105 feat(library/vm/vm): bytecode serialization 2016-05-13 17:51:01 -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
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
0c0dec8aa6 feat(library/vm/vm): use small object allocator for VM objects 2016-05-13 14:56:53 -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
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
990d2dc06e fix(library/vm/vm): typo 2016-05-13 00:45:18 -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
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
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
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
Renamed from src/library/vm.cpp (Browse further)