Commit Graph

84 Commits

Author SHA1 Message Date
Yuichi Nishiwaki 0515b8ba2a pic_get_args supports double type (f) 2013-10-15 23:25:07 +09:00
Yuichi Nishiwaki e42eb5acd5 change ways of stack operation (no longer push dummy object at first) 2013-10-15 22:34:20 +09:00
Yuichi Nishiwaki a93c3caabf move pic_env to proc.h 2013-10-15 21:53:45 +09:00
Yuichi Nishiwaki b998c903a3 remove eval.c 2013-10-15 21:52:44 +09:00
Yuichi Nishiwaki d40c8b5921 add cfunc_p flag to pic_proc 2013-10-15 21:52:14 +09:00
Yuichi Nishiwaki a5dcaba970 add support for arithmetic operations 2013-10-15 21:29:07 +09:00
Yuichi Nishiwaki 2d4a5ed1ea add standard functions: write/newline 2013-10-15 21:14:33 +09:00
Yuichi Nishiwaki af9dd45e65 change the type of immediate number value from int to double 2013-10-15 20:05:12 +09:00
Yuichi Nishiwaki 02d52723ac add some FFI functions such as pic_defun and pic_get_args 2013-10-15 19:19:34 +09:00
Yuichi Nishiwaki 8a5ea7d7dc implement OP_CALL 2013-10-15 19:18:33 +09:00
Yuichi Nishiwaki e5ada35d9d directly change pic->sp via PUSH/POP macros 2013-10-15 19:15:51 +09:00
Yuichi Nishiwaki 266e6c6400 change repl prompt 2013-10-15 19:12:33 +09:00
Yuichi Nishiwaki 6f80f9287b adjust heap/arena size 2013-10-15 19:12:17 +09:00
Yuichi Nishiwaki 6a10162c2c add picrin/proc.h 2013-10-15 13:21:40 +09:00
Yuichi Nishiwaki 5874b7a350 configurable heap/arena size 2013-10-15 13:20:45 +09:00
Yuichi Nishiwaki daece7ae67 add object creation debug flag to picconf 2013-10-15 09:14:34 +09:00
Yuichi Nishiwaki 099d40cfb8 print raw read expression in repl 2013-10-15 09:08:10 +09:00
Yuichi Nishiwaki 78303a72e5 include necessary headers when GC_DEBUG 2013-10-15 09:07:55 +09:00
Yuichi Nishiwaki 2afdb54c16 print generated irep 2013-10-15 09:07:19 +09:00
Yuichi Nishiwaki 60ed971dd9 add picconf.h 2013-10-15 09:05:44 +09:00
Yuichi Nishiwaki fea6b7f633 push undef to the stack as a first dummy object 2013-10-15 09:02:49 +09:00
Yuichi Nishiwaki 528c2e2c15 bugfix around GC 2013-10-15 08:58:23 +09:00
Yuichi Nishiwaki 6bd38273d2 free arena objects created in main function 2013-10-14 18:29:30 +09:00
Yuichi Nishiwaki 42dbd5fe98 save some special symbols in pic_state structure 2013-10-14 18:28:52 +09:00
Yuichi Nishiwaki 8c73ded2c4 add debug prints at GC 2013-10-14 18:22:14 +09:00
Yuichi Nishiwaki 276e139ec6 fix bugs around GC 2013-10-14 18:21:56 +09:00
Yuichi Nishiwaki ed7a9d5758 fix commit bug introduced in HEAD^^ 2013-10-14 17:36:07 +09:00
Yuichi Nishiwaki 22414b61e8 let the printer output proc objects and unknown values 2013-10-14 17:35:01 +09:00
Yuichi Nishiwaki c706d4f326 sweep objects from base pointer (not from freep) 2013-10-14 17:34:04 +09:00
Yuichi Nishiwaki a7cc9bd69d add missing braek statement 2013-10-14 17:32:24 +09:00
Yuichi Nishiwaki c53bf58e7e move debug prints 2013-10-14 17:07:09 +09:00
Yuichi Nishiwaki daa65bdecf pop value from the stack at the end of VM execution 2013-10-14 17:05:49 +09:00
Yuichi Nishiwaki 298a8e685f replace use of malloc/free with pic_alloc/pic_free 2013-10-14 17:04:59 +09:00
Yuichi Nishiwaki a5db43ba91 add object finalizer 2013-10-13 19:00:39 +09:00
Yuichi Nishiwaki dc2f25ef2a initial GC commit 2013-10-13 19:00:12 +09:00
Yuichi Nishiwaki 2ef277d5bd add arena protection to the VM 2013-10-13 17:29:21 +09:00
Yuichi Nishiwaki 8b859d4dbc define stack operation macros POP and PUSH 2013-10-13 17:27:44 +09:00
Yuichi Nishiwaki f0541e0f6b arena doesn't have to be explicitly initialized 2013-10-13 17:26:17 +09:00
Yuichi Nishiwaki a6f561d66e change the type of argument pic_gc_protect accepts 2013-10-13 17:25:36 +09:00
Yuichi Nishiwaki ee985a31cd add GC arena 2013-10-13 17:02:29 +09:00
Yuichi Nishiwaki 012b387c89 change the semantics of pic_alloc/pic_free 2013-10-13 16:56:30 +09:00
Yuichi Nishiwaki a0556087f9 rename pic_gc_alloc to pic_obj_alloc 2013-10-13 16:55:07 +09:00
Yuichi Nishiwaki 1fb9ac5d03 let pic_proc be a first class object 2013-10-13 16:16:13 +09:00
Yuichi Nishiwaki d92bd71293 force alignment of headers 2013-10-13 16:02:08 +09:00
Yuichi Nishiwaki c250d3b07f use C malloc instead of pic_alloc 2013-10-13 16:01:40 +09:00
Yuichi Nishiwaki e3600a65c9 replace mock allocator with simple k&r malloc 2013-10-13 15:14:15 +09:00
Yuichi Nishiwaki 38858e7a11 replace big VM loop stuff with macros 2013-10-12 18:48:35 +09:00
Yuichi Nishiwaki 3eefa2669f depress compiler warnings 2013-10-12 18:46:41 +09:00
Yuichi Nishiwaki e4be084b0e skip whitespaces in lex 2013-10-12 18:46:11 +09:00
Yuichi Nishiwaki 4cceb73db6 support global variable 2013-10-12 14:40:55 +09:00