Commit Graph

934 Commits

Author SHA1 Message Date
Yuichi Nishiwaki 878370c29a gurantee allocators return NULL given size is zero 2014-02-27 13:55:19 +09:00
Yuichi Nishiwaki 06a7b0f5f6 add pic_func struct to hold native function name 2014-02-26 00:39:16 +09:00
Yuichi Nishiwaki bb93a8be14 catch up to XFILE changes 2014-02-25 21:07:32 +09:00
Yuichi Nishiwaki 9a73ba707c add pic_strcmp 2014-02-23 17:45:34 +09:00
Yuichi Nishiwaki 0fa61b6a4a change pic_get_args API. 'z' now returns a pointer to null terminated
cstr, 's' a pointer to pic_str
2014-02-23 11:52:15 +09:00
Yuichi Nishiwaki 9f240c191c add pic_str_new_fill 2014-02-23 11:25:39 +09:00
Yuichi Nishiwaki 349d7f1799 don't take int arguments with size_t 2014-02-23 10:51:21 +09:00
Yuichi Nishiwaki 067a4756ff fix #58 2014-02-23 09:16:29 +09:00
Yuichi Nishiwaki 7ac4cd9ded add 'pic_' prefix to heap manipulte functions 2014-02-22 16:54:12 +09:00
Yuichi Nishiwaki 5175f0bb8d change gc heap API and hide sturctures. 2014-02-22 15:53:59 +09:00
Yuichi Nishiwaki 56f5f4a1f5 move sturct definitions for basic types to type-specific headers respectively 2014-02-22 15:21:55 +09:00
Yuichi Nishiwaki a8aa6b2c5e add some string utility functions 2014-02-21 18:24:20 +09:00
Yuichi Nishiwaki 131440b1d0 s/struct pic_string/pic_str/g 2014-02-21 18:05:59 +09:00
Yuichi Nishiwaki 80a794310d call/cc must save pic->ip 2014-02-20 20:59:35 +09:00
Yuichi Nishiwaki 078b72ff17 cleanup 2014-02-20 20:44:30 +09:00
Yuichi Nishiwaki 19f426a4f4 [bugfix] segv on pic_receive 2014-02-20 18:57:01 +09:00
Yuichi Nishiwaki 7c5d337119 support call-with-values in VM level 2014-02-20 18:38:09 +09:00
Yuichi Nishiwaki 942e053cde compile values in tail position 2014-02-20 18:00:30 +09:00
Yuichi Nishiwaki 742be0b2c0 don't reset retc in pic_receive 2014-02-20 18:00:16 +09:00
Yuichi Nishiwaki acc3afc120 don't emit debug message into stderr 2014-02-20 17:58:00 +09:00
Yuichi Nishiwaki 85a766a242 adjust stack pointer to the next to the initial position after calling function 2014-02-20 17:41:59 +09:00
Yuichi Nishiwaki 213177eb10 reset ci->retc when pic_receive is called 2014-02-20 17:19:40 +09:00
Yuichi Nishiwaki bad8daa813 ci->retc is set to 1 by default 2014-02-20 17:19:28 +09:00
Yuichi Nishiwaki c9331fb59e [refactor] proceed return values from C functions in OP_RET block 2014-02-20 17:14:58 +09:00
Yuichi Nishiwaki 29b2d84268 show invalid application callee 2014-02-20 17:10:55 +09:00
Yuichi Nishiwaki 2d0faff732 VM end state shows info based on the position the VM entered 2014-02-20 17:09:55 +09:00
Yuichi Nishiwaki 82647584e8 [bugfix] handle 1-coarity native function 2014-02-20 16:50:14 +09:00
Yuichi Nishiwaki 7217baee0a add coarity register to the VM 2014-02-20 16:33:18 +09:00
Yuichi Nishiwaki 0f75a1b7cb let OP_RET take an argument 2014-02-20 16:01:29 +09:00
Yuichi Nishiwaki 16639a1764 fix #56. thank you @justinethier 2014-02-20 11:58:27 +09:00
Yuichi Nishiwaki d718490a03 (finally!) hunt the bug. no more segv on error in repl 2014-02-19 02:24:30 +09:00
Yuichi Nishiwaki b69b549fca delegate error handling to REPL when no exception handlers remain 2014-02-19 02:22:34 +09:00
Yuichi Nishiwaki 6e3a2b176a split error and raise 2014-02-19 02:11:29 +09:00
Yuichi Nishiwaki a1a0aff657 newlines are included in block comments 2014-02-19 01:58:40 +09:00
Yuichi Nishiwaki a5f5eb3b06 skip block comments 2014-02-19 01:53:47 +09:00
Yuichi Nishiwaki 844f25b5c1 [workaround] traverse_seq is broken, use traverse_shared instead 2014-02-19 01:15:30 +09:00
Yuichi Nishiwaki d5e27e0949 add char-ready? 2014-02-18 19:20:29 +09:00
Yuichi Nishiwaki cc97f857e1 add read-line 2014-02-18 18:56:14 +09:00
Yuichi Nishiwaki 17ae669b30 support nested comments 2014-02-18 17:24:08 +09:00
Yuichi Nishiwaki a078266c2d add pic_raise_continuable 2014-02-18 16:58:51 +09:00
Yuichi Nishiwaki c42090f0b7 cleanup 2014-02-18 04:40:19 +09:00
Yuichi Nishiwaki 80a7e31901 s/port_/write_/g 2014-02-18 04:24:41 +09:00
Yuichi Nishiwaki 26808c1f51 add write function in C level (must not enter into a infinite loop) 2014-02-18 04:22:58 +09:00
Yuichi Nishiwaki 52a89ef5c9 fix memory leak 2014-02-18 03:45:00 +09:00
Yuichi Nishiwaki b4166dde71 refactor tagged expression checker 2014-02-18 03:42:33 +09:00
Yuichi Nishiwaki cd34417c42 add write-shared 2014-02-18 03:40:03 +09:00
Yuichi Nishiwaki c6c88e976f add support for circular objects to write 2014-02-18 03:39:32 +09:00
Yuichi Nishiwaki 7358e0933c fix segv in is_quote etc 2014-02-18 03:38:12 +09:00
Yuichi Nishiwaki c3d221f2da revert prev commit 2014-02-17 23:31:12 +09:00
Yuichi Nishiwaki ad3aca95a3 [workaround] write function now stops in a certain recursion depth 2014-02-17 23:08:17 +09:00
Yuichi Nishiwaki ceef33af8a [bugfix] is_quote family don't stop when circular object is given 2014-02-17 23:07:46 +09:00
Yuichi Nishiwaki 3a8aa3e728 publish format function family 2014-02-15 19:53:16 +09:00
Yuichi Nishiwaki c4473335b4 add macroexpand function. close #46. 2014-02-15 13:02:06 +09:00
Yuichi Nishiwaki da7ec5b64f place `load` function under (scheme load) library 2014-02-15 12:53:07 +09:00
Yuichi Nishiwaki 95fae80658 pic->envp is nullable 2014-02-13 15:37:15 +09:00
Yuichi Nishiwaki 64cdd5f152 cleanup 2014-02-13 15:01:01 +09:00
Yuichi Nishiwaki f9046cc614 improve export error message 2014-02-13 15:00:48 +09:00
Yuichi Nishiwaki ac136bbc2e add gensym function 2014-02-13 14:59:51 +09:00
Yuichi Nishiwaki f32754c0f9 place define-macro syntax in (picrin macro) library 2014-02-13 14:59:17 +09:00
Yuichi Nishiwaki e5a84e3f4c refactor pic_gensym 2014-02-13 13:53:56 +09:00
Yuichi Nishiwaki 38bb76808b small comment fix 2014-02-13 13:52:11 +09:00
Yuichi Nishiwaki a5f93fbd30 Merge remote-tracking branch 'refs/remotes/origin/master' 2014-02-13 13:49:46 +09:00
Yuichi Nishiwaki aa48198270 cosmetic changes 2014-02-13 13:44:30 +09:00
Yuichi Nishiwaki 6c849bbac9 defsyntax functon no longer used 2014-02-13 13:42:17 +09:00
Yuichi Nishiwaki a16eee7e1e improve hygiene on define-macro 2014-02-13 13:26:32 +09:00
Yuichi Nishiwaki 923a762411 save symbol names in xhash 2014-02-13 00:14:03 +09:00
Yuichi Nishiwaki 907a6a1207 save memory consumption in macroexpand_list 2014-02-12 23:25:37 +09:00
Yuichi Nishiwaki 170a20ef1d write supports quote/quasiquote/unquote/unquote-splicing notations 2014-02-12 23:07:12 +09:00
Yuichi Nishiwaki 234c573bb6 add another debug print 2014-02-12 22:30:46 +09:00
Yuichi Nishiwaki edc91bd588 remove unneeded include 2014-02-12 21:50:28 +09:00
Yuichi Nishiwaki 910e006dc3 resolve symbols bound by define-syntax 2014-02-12 21:49:28 +09:00
Yuichi Nishiwaki 03ef82fd16 defmacro takes a symbol for the name 2014-02-12 11:32:17 +09:00
Yuichi Nishiwaki b24e1b05c4 cleanup 2014-02-12 11:30:32 +09:00
Yuichi Nishiwaki a40c79116f use symbol_rename function in macro transformers 2014-02-12 11:20:38 +09:00
Yuichi Nishiwaki 098d5dc022 s/syntax/macro/g 2014-02-12 11:13:29 +09:00
Yuichi Nishiwaki 8ea3a7b544 rename a property of pic_syntax s/macro/proc/g 2014-02-12 11:05:32 +09:00
Yuichi Nishiwaki 6b69e8e74b stx->sym property is no longer used 2014-02-12 11:02:59 +09:00
Yuichi Nishiwaki 3d97e7f749 syntax_new is a private API 2014-02-12 10:59:10 +09:00
Yuichi Nishiwaki 25ae2ef6b0 add identifier_eq_p 2014-02-12 10:57:58 +09:00
Yuichi Nishiwaki 93a259870c replace pic_syntax_new with pic_syntax_new_macro 2014-02-12 10:52:33 +09:00
Yuichi Nishiwaki a18fe136e1 cosmetic fixes 2014-02-12 10:50:26 +09:00
Yuichi Nishiwaki c759fee566 add new_senv 2014-02-12 10:48:44 +09:00
Yuichi Nishiwaki 9cf7d72e82 inline-expand a small function 2014-02-12 10:42:17 +09:00
Yuichi Nishiwaki 527f46480a rename symbols before macro lookup 2014-02-12 10:39:20 +09:00
Yuichi Nishiwaki 9c278889fc add partial apply funciton 2014-02-12 01:17:05 +09:00
Yuichi Nishiwaki 34c10b0054 unify includes of stdio and assert 2014-02-11 23:25:25 +09:00
Yuichi Nishiwaki 5be10aefc9 [bugfix] compiling big library faults with arena overflow 2014-02-11 22:44:04 +09:00
Yuichi Nishiwaki 855702716c clarify some error messages 2014-02-11 21:36:11 +09:00
Yuichi Nishiwaki c2a1ea6748 dont consume arena in pic_append 2014-02-11 16:22:17 +09:00
Yuichi Nishiwaki 93e7a1cf32 clarify wrong number of arguments error message 2014-02-11 13:52:03 +09:00
Yuichi Nishiwaki 7843dc1023 add pic_errorf 2014-02-11 13:47:11 +09:00
Yuichi Nishiwaki fc7b59100d add some user functions to manipulate ports 2014-02-11 13:45:41 +09:00
Yuichi Nishiwaki b404f30a50 pic_debug family return obj 2014-02-11 13:38:42 +09:00
Yuichi Nishiwaki 372fd3157b error report is propagated through pic->err 2014-02-11 13:21:00 +09:00
Yuichi Nishiwaki 468e1b4d1f add pic_fdebug 2014-02-11 00:47:57 +09:00
Yuichi Nishiwaki 7fe109a998 include xfile in picirn.h 2014-02-09 14:52:53 +09:00
Yuichi Nishiwaki 687706eaee fix error message 2014-02-09 14:29:51 +09:00
Yuichi Nishiwaki 241012d2f9 add output-bytevector 2014-02-09 14:29:28 +09:00
Yuichi Nishiwaki 49e5e3085b pic_str_new may take a NULL ptr 2014-02-09 03:11:08 +09:00
Yuichi Nishiwaki 668ace7901 implement some string functions in c 2014-02-09 03:10:58 +09:00
Yuichi Nishiwaki 39af5ca254 implement string-append in C 2014-02-09 02:42:50 +09:00
Yuichi Nishiwaki 7187e4e982 add open-input-bytevector 2014-02-09 02:41:52 +09:00
Yuichi Nishiwaki 3d0657074f first argument of get-output-string is optinoal 2014-02-09 02:41:20 +09:00
Yuichi Nishiwaki a666951f21 add open-output-string and get-output-string 2014-02-09 01:49:55 +09:00
Yuichi Nishiwaki 0e464b2f75 [bugfix] write-string doesn't detect given port 2014-02-09 01:21:44 +09:00
Yuichi Nishiwaki 8d067f66ed add open-input-string 2014-02-08 23:23:53 +09:00
Yuichi Nishiwaki dd0ed6bfea add write-string/write-u8/write-bytevector 2014-02-08 17:31:54 +09:00
Yuichi Nishiwaki 5efdf3cfcc write-simple support optional output port 2014-02-08 17:15:34 +09:00
Yuichi Nishiwaki 93f7270ea3 auto export symbols defined by pic_defmacro 2014-02-08 15:24:27 +09:00
Yuichi Nishiwaki 4cb661c252 add 'include' macro 2014-02-08 15:05:28 +09:00
Yuichi Nishiwaki b0d955c771 analyze in order 2014-02-08 03:17:49 +09:00
Yuichi Nishiwaki d100dde6b1 Merge branch 'master' into trampoline 2014-02-07 10:05:31 +09:00
Yuichi Nishiwaki 1afbfcda23 add 'static' 2014-02-07 10:02:09 +09:00
Yuichi Nishiwaki cd12977cfe receive values by trampoline 2014-02-07 09:59:02 +09:00
Yuichi Nishiwaki 1208fc9f0e execute procedure by trampoline in call/cc 2014-02-07 09:56:57 +09:00
Yuichi Nishiwaki 67a856b1db [bugfix] pic_trampoline was broken 2014-02-07 09:49:49 +09:00
Yuichi Nishiwaki 1c633b3cda cleanup 2014-02-07 02:23:55 +09:00
Yuichi Nishiwaki 7288cd0614 redefinition might be against a local variable 2014-02-07 02:15:08 +09:00
Yuichi Nishiwaki c4040949ff stop warning in macroexpand, and creating a duplicate slot 2014-02-07 02:14:39 +09:00
Yuichi Nishiwaki fd0553ac25 warn variable redefinition in macroexpansion level 2014-02-07 02:13:16 +09:00
Yuichi Nishiwaki d74b82b1a5 warn global variable redefinition 2014-02-07 02:12:43 +09:00
Yuichi Nishiwaki 620fee4236 refactor global_ref and global_def 2014-02-07 01:48:56 +09:00
Yuichi Nishiwaki c75d6e5789 refactor global_def 2014-02-07 01:42:28 +09:00
Yuichi Nishiwaki ae5acd005c refactor global_ref 2014-02-07 01:42:15 +09:00
Yuichi Nishiwaki e7d38ea165 rename scope_global_define -> global_def 2014-02-07 01:31:45 +09:00
Yuichi Nishiwaki faac3f7e9d include xhash in picrin.h 2014-02-07 01:24:51 +09:00
Yuichi Nishiwaki 53979bf848 prefer type alias to types with 'struct' 2014-02-07 01:15:17 +09:00
Yuichi Nishiwaki 1901a7ab30 e->key is no longer of const char * type 2014-02-07 01:09:05 +09:00
Yuichi Nishiwaki a4062b5b76 use xh_new_int 2014-02-07 01:08:57 +09:00
Yuichi Nishiwaki 104fd823b2 use a pointer to newly allocated region to pass to xh_put 2014-02-06 22:13:42 +09:00
Yuichi Nishiwaki 66ac29519e use pic_trampoline in pic_proc_apply 2014-02-06 14:22:42 +09:00
Yuichi Nishiwaki 2ef426d90b add trampoline helper 2014-02-06 14:22:29 +09:00
Yuichi Nishiwaki 845961e7f9 adjust OP_CALL count 2014-02-06 13:18:39 +09:00
Yuichi Nishiwaki 613f692c09 apply is broken with arg_list is nil 2014-02-06 13:04:11 +09:00
Yuichi Nishiwaki 9f21c8d7b1 Merge branch 'master' into trampoline 2014-02-06 13:01:31 +09:00
Yuichi Nishiwaki c1e5eefbbd staticize compile function 2014-02-04 18:54:33 +09:00
Yuichi Nishiwaki 849746b919 remove redundant message 2014-02-04 18:54:01 +09:00
Yuichi Nishiwaki f29f10ddd7 clenaup debug message format 2014-02-04 18:53:51 +09:00
Yuichi Nishiwaki 060fb227a7 refactor pic_compile 2014-02-04 18:53:40 +09:00
Yuichi Nishiwaki 0d33900745 delegate initial instruction fetch to VM_LOOP 2014-02-04 18:42:37 +09:00
Yuichi Nishiwaki 0e0cc96859 booting message completely useless, shrink. 2014-02-04 18:39:47 +09:00
Yuichi Nishiwaki 90713100c2 show argument values when entering OP_CALL 2014-02-04 18:38:32 +09:00
Yuichi Nishiwaki 2d544ffa01 toplevel expression can be considered tail expresssion 2014-02-04 18:23:37 +09:00
Yuichi Nishiwaki ae2cae8a47 duplicate OP_RET 2014-02-04 18:22:18 +09:00
Yuichi Nishiwaki 3a4bf769ce don't emit duplicate OP_RET in codegen_lambda 2014-02-04 18:20:51 +09:00
Yuichi Nishiwaki f59ce74148 add RETURN node 2014-02-04 18:20:35 +09:00
Yuichi Nishiwaki dd547ac093 add OP_NOP 2014-02-04 16:58:50 +09:00
Yuichi Nishiwaki 16466fd35c use OP_NOP in pic_proc_apply 2014-02-04 16:20:49 +09:00
Yuichi Nishiwaki 7837a30d53 add OP_NOP 2014-02-04 16:20:17 +09:00
Yuichi Nishiwaki c3b45c6d16 'apply' calls given procedure by trampoline 2014-02-04 15:46:52 +09:00