Commit Graph

1355 Commits

Author SHA1 Message Date
Yuichi Nishiwaki 0b4cb76834 add xvect 2014-03-20 21:17:28 +09:00
Yuichi Nishiwaki 1548a17b35 cleanup 2014-03-20 13:48:51 +09:00
Yuichi Nishiwaki 37a87046b7 remove redundant arena management 2014-03-20 13:48:32 +09:00
Yuichi Nishiwaki 3158a41772 refactor analyze_args 2014-03-20 13:41:47 +09:00
Yuichi Nishiwaki 6d6420f2b9 refactor analyze_var 2014-03-20 11:44:12 +09:00
Yuichi Nishiwaki 0cb8920276 refactor analyzer 2014-03-19 21:45:02 +09:00
Yuichi Nishiwaki 5776940420 POPN macro was not used 2014-03-19 19:49:09 +09:00
Yuichi Nishiwaki bc602aa767 pic_state is not used in pic_dump_* 2014-03-19 19:44:45 +09:00
Yuichi Nishiwaki e80c3cc60b move irep dump function definitions to irep.h 2014-03-19 19:41:24 +09:00
Yuichi Nishiwaki fc5ea838ab move global variable accessor/mutator definitions to vm.c 2014-03-19 19:38:40 +09:00
Yuichi Nishiwaki ef7d01971b publish UNREACHABLE macro 2014-03-19 17:40:31 +09:00
Yuichi Nishiwaki acfa79bc62 s/NORETURN/noreturn/g 2014-03-19 17:37:06 +09:00
Yuichi Nishiwaki 41a3e17904 no unistd.h in lex.yy.c 2014-03-19 17:35:54 +09:00
Yuichi Nishiwaki 04375c3056 [bugfix] propagate errors through the VM 2014-03-16 23:32:28 +09:00
Yuichi Nishiwaki 00d92c79bf pic_length is now unsafe to circular list 2014-03-16 23:13:03 +09:00
Yuichi Nishiwaki 8598042deb pic_list_p don't need to take pic_state *. 2014-03-16 23:12:07 +09:00
Yuichi Nishiwaki 27d4853aef refactor pic_list_p 2014-03-16 22:51:33 +09:00
Yuichi Nishiwaki 6cc6046ea3 Merge pull request #69 from koba-e964/master
list? for circular lists (Issue #17)
2014-03-16 22:39:57 +09:00
koba-e964 c23e3254fb cleanup
Re-format the code so that it complies with the C coding rule of picrin.
2014-03-16 21:55:50 +09:00
koba-e964 138ac70130 list? for circular lists
pic_list_p() detects circular lists using Floyd's cycle-finding algorithm.
2014-03-16 01:38:12 +09:00
Yuichi Nishiwaki 0e1b6d93b4 load srfi files at init. close #61 2014-03-15 20:53:07 +09:00
Yuichi Nishiwaki b4609aafb7 refine pic_load error message 2014-03-15 20:52:34 +09:00
Yuichi Nishiwaki a785719ccc [bugfix] pic_close broken 2014-03-10 01:53:09 +09:00
Yuichi Nishiwaki 68ea22f6eb add pic_blk_exit 2014-03-10 01:51:27 +09:00
Yuichi Nishiwaki 851187f7bb use pic_try/catch in stdlib_load 2014-03-10 01:12:19 +09:00
Yuichi Nishiwaki d227c22379 change native_stack marker type to char * 2014-03-10 01:11:01 +09:00
Yuichi Nishiwaki 920674a6ef typedef struct pic_block pic_block 2014-03-07 22:09:12 +09:00
Yuichi Nishiwaki 751d0f87f8 typedef struct pic_code pic_code 2014-03-07 22:06:43 +09:00
Yuichi Nishiwaki 488a2c902c mmm, cmake on travis seems earlier than 2.8.8... 2014-03-05 23:00:24 +09:00
Yuichi Nishiwaki 19371d1d81 some compilers don't support liking a static library into another shared
library. compiling xfile into an object file instead.
2014-03-05 16:06:35 +09:00
Yuichi Nishiwaki f0367d95a0 cleanup 2014-03-04 23:58:07 +09:00
Yuichi Nishiwaki 818fb41f77 fix #63. process escape sequences in string 2014-03-04 23:45:55 +09:00
Yuichi Nishiwaki f8b3f5f1fd don't rename unbound symbols 2014-03-04 00:45:47 +09:00
Yuichi Nishiwaki 6fbfd15011 formatter support display syntax (~a) 2014-03-04 00:32:55 +09:00
Yuichi Nishiwaki 4bf2262605 pic_alloc is the right name, not pic_malloc 2014-03-04 00:30:11 +09:00
Yuichi Nishiwaki 8f5c053bd8 add display function API 2014-03-04 00:28:39 +09:00
Yuichi Nishiwaki 5b2898ae5c rename read functions which return a list of multiple expressions to 'parse' 2014-03-04 00:26:33 +09:00
Yuichi Nishiwaki 8a9bd366a1 define display function in C 2014-03-04 00:12:28 +09:00
Yuichi Nishiwaki 1de4073212 cleanup 2014-03-03 23:13:32 +09:00
Yuichi Nishiwaki 5d4d90228d update read error message 2014-03-03 23:02:52 +09:00
Yuichi Nishiwaki 777f951caf pic_compile now unsafe to compilation error 2014-03-03 22:49:59 +09:00
Yuichi Nishiwaki 306a5f53a5 string formatter follow srfi-28's spec 2014-03-03 22:44:38 +09:00
Yuichi Nishiwaki a9d3d847af add pic_printf 2014-03-03 22:43:59 +09:00
Yuichi Nishiwaki 408255381c add pic_eval 2014-03-03 22:39:38 +09:00
Yuichi Nishiwaki 34bcabf5bc s/pic_trampoline/pic_apply_trampoline/g 2014-03-03 22:19:27 +09:00
Yuichi Nishiwaki 3302721c65 catch up to xrope API change 2014-03-02 19:26:37 +09:00
Yuichi Nishiwaki 0b4f65bf9e auto remove lex.yy.h 2014-03-02 19:03:01 +09:00
Yuichi Nishiwaki d01a29b0e0 use file glob 2014-03-02 18:50:35 +09:00
Yuichi Nishiwaki e4d4c51e78 use absolute path for flex output 2014-03-02 13:24:12 +09:00
Yuichi Nishiwaki d77035a537 fix flex problem 2014-03-02 13:21:26 +09:00
Yuichi Nishiwaki e30529d629 Add experimental cmake support 2014-03-02 01:52:41 +09:00
Yuichi Nishiwaki 3b8868c577 typedef pic_value pic_list 2014-03-01 20:54:02 +09:00
Yuichi Nishiwaki c357a9302d remove pic_list, and add pic_listn 2014-03-01 20:46:08 +09:00
Yuichi Nishiwaki dfb6eeb72d cleanup 2014-03-01 20:25:58 +09:00
Yuichi Nishiwaki 6e7567a598 my own read impl. 2014-03-01 20:21:44 +09:00
Yuichi Nishiwaki 6cf6c72f84 change default library in repl 2014-03-01 19:55:52 +09:00
Yuichi Nishiwaki 6ddaa0eda0 use pic_deflibrary in init.c 2014-03-01 19:54:29 +09:00
Yuichi Nishiwaki 95dc14bac2 use yyfree/yyalloc during bytevector lex 2014-03-01 13:24:43 +09:00
Yuichi Nishiwaki 491fd81c97 add an alias 'yylval' linked to '*yylvalp' 2014-03-01 00:35:16 +09:00
Yuichi Nishiwaki cbad58f560 remove useless includes 2014-03-01 00:24:23 +09:00
Yuichi Nishiwaki 3bedc65d2b use yyrealloc 2014-03-01 00:20:19 +09:00
Yuichi Nishiwaki a51dc51a09 use volatile string 2014-03-01 00:19:57 +09:00
Yuichi Nishiwaki 0b8c7a8ccb add pic_intern 2014-03-01 00:13:11 +09:00
Yuichi Nishiwaki 81f839ea04 use yyget_extra function 2014-03-01 00:02:46 +09:00
Yuichi Nishiwaki 222c3bdcaa use noyywrap option 2014-02-28 23:59:50 +09:00
Yuichi Nishiwaki 513727f94c emit additional scanner header file 2014-02-28 22:38:12 +09:00
Yuichi Nishiwaki e781a063f8 scan.l cleanup 2014-02-28 22:35:38 +09:00
Yuichi Nishiwaki 1f858f05e3 avoid implicit int -> size_t cast 2014-02-27 22:14:21 +09:00
Yuichi Nishiwaki 7a1c04f1fa [bugfix] old proc#cfunc_p property remained in debug block 2014-02-27 22:00:48 +09:00
Yuichi Nishiwaki 8586dc9057 xrope is now the internal representation of pic_str 2014-02-27 21:54:37 +09:00
Yuichi Nishiwaki 8e511bc410 remove dependencies on pic_state from pic_strlen and pic_strcmp 2014-02-27 19:42:59 +09:00
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
Yuichi Nishiwaki 2ed2b503a6 apply' argument treatment was broken 2014-02-04 14:33:36 +09:00
Yuichi Nishiwaki 96fc08dd0b [bugfix] close only closed variables... 2014-02-04 14:20:01 +09:00
Yuichi Nishiwaki a3b0fa701b rename pic_callinfo.pc -> ip 2014-02-04 10:46:36 +09:00
Yuichi Nishiwaki f090eae241 restore ip when returned from c function 2014-02-04 10:40:16 +09:00
Yuichi Nishiwaki 018db310d3 save instruction pointer to pic_state 2014-02-04 10:40:03 +09:00
Yuichi Nishiwaki 08337f1ed1 use 'pc' as little as possible 2014-02-04 10:28:40 +09:00
Yuichi Nishiwaki 0947173c32 small optimize 2014-02-04 10:28:22 +09:00
Yuichi Nishiwaki 2022fa163b fix #26 2014-02-04 10:18:31 +09:00
Yuichi Nishiwaki a99cf8458a implement ir-macro-transformer with C 2014-01-19 01:14:32 -08:00
Yuichi Nishiwaki ce90e4a2a6 compare int and size_t warning when DEBUG is on 2014-01-19 00:54:56 -08:00
Yuichi Nishiwaki ab411cc298 gcc complains that he can't assure if switch-enum is complete 2014-01-19 00:32:43 -08:00
Yuichi Nishiwaki 7bfe165a73 [bugfix] compiler complains fileno is not declared but used in lex.yy.c. 2014-01-19 00:31:03 -08:00
Yuichi Nishiwaki 9b31e5bd2f refactor list_by_array 2014-02-02 21:16:45 +09:00
Yuichi Nishiwaki b66021c042 print bytecode index in hex 2014-02-02 21:16:23 +09:00
Yuichi Nishiwaki 4a01b8296f emit OP_NOT 2014-02-02 14:55:46 +09:00
Yuichi Nishiwaki 0fec56362d add OP_NOT instruction 2014-02-02 14:54:47 +09:00
Yuichi Nishiwaki 0425dbdd1e implement values and call-with-values with C 2014-02-02 14:26:58 +09:00
Yuichi Nishiwaki 778ee89dfe fix pic_receive 2014-02-02 14:23:58 +09:00
Yuichi Nishiwaki 116a65cdee add pic_receive 2014-02-02 12:38:46 +09:00
Yuichi Nishiwaki 19db4bb6b2 rest array got by pic_get_args has a dynamic extent; that is, we cannot
store it to a heap object when we are going to rewind that stack and
restore an old continuation.
2014-02-02 12:27:48 +09:00
Yuichi Nishiwaki cb3128d241 refactor values functions 2014-02-02 12:27:24 +09:00
Yuichi Nishiwaki f2507b5cbf rename ..._from_... to ..._by_... 2014-02-02 12:26:43 +09:00
Yuichi Nishiwaki 2373e7a067 continuation now can take more than 1 arguments 2014-02-02 12:11:15 +09:00
Yuichi Nishiwaki 7547b83515 add pic_values functions 2014-02-02 12:10:31 +09:00
Yuichi Nishiwaki ae85bbf60e refactor std port 2014-02-02 11:23:23 +09:00
Yuichi Nishiwaki b19631f18f use submodule 2014-02-01 22:16:09 +09:00
Yuichi Nishiwaki c5c3f4c1f5 use newer API of xhash 2014-02-01 20:01:26 +09:00
Yuichi Nishiwaki 6a8a0dc8cb use picrin's allocator in lexer 2014-02-01 19:33:38 +09:00
Yuichi Nishiwaki c68a7c41c7 use pic_strdup in lexer and parser 2014-02-01 19:33:23 +09:00
Yuichi Nishiwaki 1746243b15 use picrin's strdup impl if possible 2014-02-01 19:32:39 +09:00
Yuichi Nishiwaki d48ae9227a impl strdup and strndup by myself 2014-02-01 19:31:59 +09:00
Yuichi Nishiwaki 2f50f92ddc use pic_for_each 2014-02-01 16:05:29 +09:00
Yuichi Nishiwaki 47f4060086 rewrite deflibrary using gensym 2014-02-01 15:41:30 +09:00
Yuichi Nishiwaki 5080294472 change return value of pic_get_args 2014-02-01 14:23:21 +09:00
Yuichi Nishiwaki 54b318f3e1 remove new_irep 2014-02-01 13:44:43 +09:00
Yuichi Nishiwaki 53fe18a94e delete OP_PUSHFLOAT 2014-01-31 03:11:28 +09:00
Yuichi Nishiwaki 9172dc9f31 remove old pic_symbol_p macro 2014-01-31 03:03:36 +09:00
Yuichi Nishiwaki f7a871b1e8 delete value.c 2014-01-30 21:52:10 +09:00
Yuichi Nishiwaki 2dd8d2746d move all contents in value.c to value.h 2014-01-30 21:51:26 +09:00
Yuichi Nishiwaki f29e7b9cf1 inline definitions for pic_*_value()s 2014-01-30 20:58:27 +09:00
Yuichi Nishiwaki 173d4dcf07 use UNUSED macro 2014-01-30 18:15:59 +09:00
Yuichi Nishiwaki 8ae55bd9b6 unification uses of int and size_t. use size_t for every variable that
can possibly be used as an array index.
2014-01-30 18:14:33 +09:00
Yuichi Nishiwaki c1e2528395 depress warnings about unused variables in scan.l 2014-01-30 18:10:56 +09:00
Yuichi Nishiwaki 1d2fa33372 some of global tables are missed to free 2014-01-30 14:34:09 +09:00
Yuichi Nishiwaki e8258edfa7 remove use of typo'd name function 2014-01-30 14:33:16 +09:00
Yuichi Nishiwaki 4d95707db5 add FALLTHROUGH macro 2014-01-30 14:13:01 +09:00
Yuichi Nishiwaki 7c35e50260 add NORETURN macro 2014-01-30 14:08:36 +09:00
Yuichi Nishiwaki 75037adfaa hide debug prints 2014-01-30 13:50:47 +09:00
Yuichi Nishiwaki f32e542392 analyze should not emit raw self-evaluating values 2014-01-30 13:47:58 +09:00
Yuichi Nishiwaki 64038fae02 unwrap begin expression if it contains 1 or 0 expressions inside 2014-01-30 13:36:49 +09:00
Yuichi Nishiwaki d471dba322 current codegen not supporting env chain short cut 2014-01-27 22:24:12 +09:00
Yuichi Nishiwaki 055272f0d5 arena management in pic_list 2014-01-27 22:20:46 +09:00
Yuichi Nishiwaki b5cf174b5c wrong FOLD_ARGS impl 2014-01-27 22:20:31 +09:00
Yuichi Nishiwaki 8255e11486 gc management 2014-01-27 22:20:18 +09:00
Yuichi Nishiwaki 8343ccd675 [bugfix] lset never be emit 2014-01-27 22:20:08 +09:00
Yuichi Nishiwaki 82ea416c34 get rid of redundant code in is_closed function 2014-01-27 22:19:33 +09:00
Yuichi Nishiwaki 2f8b016d86 improve debug prints 2014-01-27 22:18:49 +09:00
Yuichi Nishiwaki 30fcd6468f reverse condition for tail position marking 2014-01-27 21:24:10 +09:00
Yuichi Nishiwaki 3418aebe3f remove unused properties 2014-01-27 21:20:12 +09:00
Yuichi Nishiwaki c3fd4addc3 change AST format 2014-01-27 21:20:00 +09:00
Yuichi Nishiwaki a2d9d2f93a resolve TODOs 2014-01-27 21:18:03 +09:00
Yuichi Nishiwaki 52927ac452 gc resolver 2014-01-27 21:17:24 +09:00
Yuichi Nishiwaki 244ec06953 add implicit casts from void * 2014-01-27 21:17:04 +09:00
Yuichi Nishiwaki 26544ff6fd dump ireps recursively 2014-01-27 21:14:59 +09:00
Yuichi Nishiwaki 15ca95eb8f improve debug prints 2014-01-27 21:14:41 +09:00
Yuichi Nishiwaki 09840601c4 fflush buffer in pic_debug 2014-01-24 17:11:52 +09:00
Yuichi Nishiwaki 9dd04fd3b3 impl resolver 2014-01-24 17:11:37 +09:00
Yuichi Nishiwaki 6b20e004e5 [bugfix] var must be a symbol 2014-01-24 17:11:15 +09:00
Yuichi Nishiwaki 237e8c26a6 wrong length for call operation 2014-01-24 17:10:51 +09:00
Yuichi Nishiwaki 2126f5b453 rename local variables 2014-01-24 17:10:19 +09:00
Yuichi Nishiwaki f3e2321679 add missing returns 2014-01-24 17:09:51 +09:00
Yuichi Nishiwaki a35606dc16 gref/cref/lref are not used by analyzer 2014-01-24 17:09:06 +09:00
Yuichi Nishiwaki cfdf1ceaf8 cleaning up 2014-01-24 17:08:35 +09:00
Yuichi Nishiwaki 56e90f564c quote everything 2014-01-23 19:21:37 +09:00
Yuichi Nishiwaki 03e21218a5 remove depth property 2014-01-23 19:21:17 +09:00
Yuichi Nishiwaki b2c5f5cb6d change ast format 2014-01-23 18:57:18 +09:00
Yuichi Nishiwaki 66a7e653ba change analyze_args API 2014-01-23 18:56:52 +09:00
Yuichi Nishiwaki 801c04788f add cv_foo properties to codegen_context 2014-01-23 18:55:39 +09:00
Yuichi Nishiwaki 75167697f0 start using pic_list_ref and pic_list_tail 2014-01-23 16:32:20 +09:00
Yuichi Nishiwaki 2e28f604a6 Merge branch 'master' into analyzer
Conflicts:
	include/picrin/pair.h
	src/pair.c
2014-01-23 16:21:10 +09:00
Yuichi Nishiwaki c7811f0c39 add depth property 2014-01-23 16:17:52 +09:00
Yuichi Nishiwaki 6d346fef87 unify the names of IR reference nodes to a name 'ref' 2014-01-23 15:18:41 +09:00
Yuichi Nishiwaki 3dbafd58be cleanup 2014-01-23 15:03:43 +09:00
Yuichi Nishiwaki 95c5361197 rewrite min/max/gcd/lcm with C 2014-01-22 23:47:33 +09:00
Yuichi Nishiwaki 2f965fa809 replace some number predicates with c imples 2014-01-22 22:58:08 +09:00
Yuichi Nishiwaki 5dd66cbcd1 replace list-copy and make-list impls by scheme with ones by C 2014-01-22 22:37:27 +09:00
Yuichi Nishiwaki c539f889cd native implementatino of for-each 2014-01-22 22:21:48 +09:00
Yuichi Nishiwaki 85a5745716 native implmentation of map 2014-01-22 22:18:25 +09:00
Yuichi Nishiwaki 74088d0130 replace list-set! impl with C impl 2014-01-22 21:35:13 +09:00
Yuichi Nishiwaki d07456466d replace cxxr and list? impls by scheme with ones by C 2014-01-22 21:29:11 +09:00
Yuichi Nishiwaki 7fc2885fad replace list impl by scheme with impl by C 2014-01-22 21:20:13 +09:00
Yuichi Nishiwaki bbd1ec3fbb replace length/reverse/append impls with c functions 2014-01-22 21:14:10 +09:00
Yuichi Nishiwaki 67d4d28d19 impl list-ref and list-tail as C functions 2014-01-22 21:00:29 +09:00
Yuichi Nishiwaki 7865cfe9b3 add pic_append 2014-01-22 20:57:14 +09:00
Yuichi Nishiwaki a443d9e3f6 add pic_list_ref and pic_list_tail 2014-01-22 20:57:05 +09:00
Yuichi Nishiwaki 655eb7a3bd add pic_compile 2014-01-20 16:57:39 +09:00
Yuichi Nishiwaki 293fef5235 add pic_list_ref 2014-01-20 16:43:54 +09:00
Yuichi Nishiwaki 78420ef042 remove unused properties 2014-01-20 13:22:45 +09:00
Yuichi Nishiwaki 35cf4e1fcd initialize with global scope 2014-01-20 13:15:09 +09:00
Yuichi Nishiwaki b2c74552f2 change lookup_var API 2014-01-20 13:04:21 +09:00
Yuichi Nishiwaki fbeb32ee83 typo 2014-01-20 11:16:52 +09:00
Yuichi Nishiwaki 6dcf04d50c fix some bugs 2014-01-18 22:36:02 -08:00
Yuichi Nishiwaki 14eb6b334d arena management 2014-01-18 22:35:36 -08:00
Yuichi Nishiwaki ae933252c9 add analyzer prototype 2014-01-18 20:20:28 -08:00
Yuichi Nishiwaki 0ceb9c9953 add sSYMBOLs to pic_state 2014-01-18 11:47:32 -08:00
Yuichi Nishiwaki 395f48bc81 move rSYMBOLs from pic_state to codegen_state 2014-01-18 11:47:18 -08:00
Yuichi Nishiwaki 9495e9bf5c alloc functions may take 0 for the size 2014-01-18 07:33:51 -08:00
Yuichi Nishiwaki 1aa35891ad [bugfix] must multiply the size by sizeof(struct) when using realloc function 2014-01-18 23:01:11 +09:00
Yuichi Nishiwaki a315f518d2 auto-extend constant pool array 2014-01-18 22:56:43 +09:00
Yuichi Nishiwaki 9fadf16fdb make iseq length configurable 2014-01-18 22:54:28 +09:00
Yuichi Nishiwaki 494989ff3e embed constant pool into irep object 2014-01-18 22:32:41 +09:00
Yuichi Nishiwaki a0f27a68cd grammartical fix 2014-01-18 22:31:40 +09:00
Yuichi Nishiwaki fdac5061fd free irep->irep 2014-01-18 22:31:25 +09:00
Yuichi Nishiwaki 5e616e7774 store irep objects inside parent irep object 2014-01-18 21:48:50 +09:00
Yuichi Nishiwaki 4f5743ad0f shrink code size 2014-01-18 21:47:52 +09:00
Yuichi Nishiwaki 53e3e019de ccapa property no longer used 2014-01-18 21:03:12 +09:00
Yuichi Nishiwaki d3412deae1 duplicate variable binding 2014-01-18 20:53:16 +09:00
Yuichi Nishiwaki 801d92e0a4 store constructing iseq in scope object, not pic_irep 2014-01-18 20:49:01 +09:00
Yuichi Nishiwaki 05a69d10dd cosmetic changes 2014-01-18 17:19:46 +09:00
Yuichi Nishiwaki a9574155b8 do not free objects in pic->irep by hands 2014-01-18 16:59:43 +09:00
Yuichi Nishiwaki 82e205bbd0 Merge branch 'master' into irep-gc 2014-01-18 16:58:24 +09:00
Yuichi Nishiwaki 9d18af51da some global stacks are missed to free 2014-01-18 16:58:14 +09:00
Yuichi Nishiwaki 0db09b146c ireps generated by top codegen are not registered to pic->irep. get them
marked manually.
2014-01-18 16:56:20 +09:00
Yuichi Nishiwaki 42c097a91f pic->irep is a root marker 2014-01-18 16:55:11 +09:00
Yuichi Nishiwaki 11e4f1644b irep object is now controlled under GC 2014-01-18 16:53:39 +09:00
Yuichi Nishiwaki 586b228156 add PIC_TT_IREP 2014-01-18 16:51:54 +09:00
Yuichi Nishiwaki b62374b4b4 s/print_irep/pic_dump_irep/g 2014-01-18 16:23:12 +09:00
Yuichi Nishiwaki acb513aa16 publish pic_callcc 2014-01-18 16:08:07 +09:00
Yuichi Nishiwaki 3ff7d5b208 grammatical fix 2014-01-18 16:06:59 +09:00
Yuichi Nishiwaki ee4cb87083 impl pic_unwrap_var 2014-01-18 12:58:00 +09:00
Yuichi Nishiwaki a16dcb9931 impl pic_set 2014-01-18 12:55:44 +09:00
Yuichi Nishiwaki 4522dd47af do not put includes in header, but put it in c file 2014-01-18 12:43:38 +09:00
Yuichi Nishiwaki ca068f560b clarify license information 2014-01-17 20:58:31 +09:00
Yuichi Nishiwaki ecaf96ea14 add missing break statement 2014-01-17 13:16:55 +09:00
Yuichi Nishiwaki 43f3f6d0ce impl pic_close 2014-01-16 22:02:50 +09:00
Yuichi Nishiwaki db75df2624 add heap finializer 2014-01-16 22:02:30 +09:00
Yuichi Nishiwaki 8f2f1faf63 use shorter name for library external representation 2014-01-16 21:32:38 +09:00
Yuichi Nishiwaki 5929020429 reordering functions 2014-01-16 21:32:22 +09:00
Yuichi Nishiwaki 41dea6c5d2 split functions related to 'write' procedure into files 2014-01-16 21:31:46 +09:00
Yuichi Nishiwaki 73ad915fcf set 0 to file->flags by default 2014-01-16 21:00:45 +09:00
Yuichi Nishiwaki 8709ada140 replace fpos_t with long since old versions of clang and gcc seem claim
that fpos_t and long are not convertible
2014-01-16 20:13:13 +09:00
Yuichi Nishiwaki 31adf248af suppress warnings 2014-01-16 20:08:22 +09:00
Yuichi Nishiwaki 6f32cbdea3 handle end-of-file while reading file object 2014-01-16 19:56:45 +09:00
Yuichi Nishiwaki 74be43195d cosmetic fixes 2014-01-16 19:56:02 +09:00
Yuichi Nishiwaki 1b45536fe2 [bugfix] ungetc enters infinite loop 2014-01-16 19:54:19 +09:00
Yuichi Nishiwaki 44be26b36f want reader and writer to return the actual byte count, not item count 2014-01-16 19:53:46 +09:00
Yuichi Nishiwaki 2ff0a5061b wrong timing and offset for buffer shifting in reading 2014-01-16 19:52:42 +09:00
Yuichi Nishiwaki 9aef0cdac0 get rid of a small redundant code 2014-01-16 19:51:40 +09:00
Yuichi Nishiwaki f564626556 pic_fflush and pic_ffill should change cursor positions 2014-01-16 19:51:03 +09:00
Yuichi Nishiwaki a5f478a7d5 currently pic_file don't support _IONBF mode 2014-01-16 19:49:41 +09:00
Yuichi Nishiwaki 5ee9539e9b impl pic_ungetc 2014-01-16 18:42:25 +09:00
Yuichi Nishiwaki 4e495c6fcc [WIP] add a buffer for ungetc 2014-01-16 18:42:10 +09:00
Yuichi Nishiwaki 9897f7581f impl pic_fread with buffering 2014-01-16 18:41:10 +09:00
Yuichi Nishiwaki fc506674c0 add missing includes 2014-01-16 18:39:38 +09:00
Yuichi Nishiwaki ce21353d50 impl pic_fwrite with simple buffering 2014-01-16 18:39:03 +09:00
Yuichi Nishiwaki 14b73501c4 [bugfix] call setvbuf in pic_file constructor 2014-01-16 18:37:54 +09:00
Yuichi Nishiwaki 3d72464e80 impl pic_fflush 2014-01-16 18:36:59 +09:00
Yuichi Nishiwaki eca456f875 add IO buffering (setvbuf) 2014-01-16 18:36:47 +09:00
Yuichi Nishiwaki 4d0a448a44 impl char/string IO functions 2014-01-16 18:35:22 +09:00
Yuichi Nishiwaki f043fbb0a7 impl pic_fopen and pic_close. add FILE*-pic_file* adapter functions. 2014-01-16 18:34:04 +09:00
Yuichi Nishiwaki 392549b315 replace old stdio functions with picrin's wrapper impls 2014-01-16 18:32:05 +09:00
Yuichi Nishiwaki 63d23bdeda [WIP] add generic file object constructor (pic_funopen) 2014-01-16 18:27:05 +09:00
Yuichi Nishiwaki 34d52e1a51 use pic_load to load built-in.scm 2014-01-13 14:52:19 +09:00
Yuichi Nishiwaki 0753b12f60 [bugfix] native operators such as = or + are not inline-expanded 2014-01-13 14:39:21 +09:00
Yuichi Nishiwaki daf67c34d9 = procedure is brokwn 2014-01-13 13:55:08 +09:00
Yuichi Nishiwaki 5b068d7cc7 implement load procedure 2014-01-13 13:54:52 +09:00
Yuichi Nishiwaki 9d54244424 match the order of functions with R7RS 2014-01-13 02:07:38 +09:00
Yuichi Nishiwaki 4a14531702 add write-char and flush-output-port 2014-01-13 02:06:09 +09:00
Yuichi Nishiwaki a232defd00 newline can take an optional argument 2014-01-13 01:47:46 +09:00
Yuichi Nishiwaki 19a561132e fix assert_port_profile to show clearer error message 2014-01-13 01:47:15 +09:00
Yuichi Nishiwaki ec9305e9a5 current write implementation in fact behaves as same as write-simple 2014-01-13 01:34:59 +09:00
Yuichi Nishiwaki 70f6b59856 add peek-char 2014-01-13 01:34:26 +09:00
Yuichi Nishiwaki 4a87120eb6 add read-char procedure 2014-01-13 00:51:30 +09:00
Yuichi Nishiwaki 1c14feffa4 add accessors of stdio ports 2014-01-13 00:51:19 +09:00
Yuichi Nishiwaki 3fb407329f implement missing pic_ref definition 2014-01-13 00:50:45 +09:00
Yuichi Nishiwaki 4a7a32829d use the new feature of pic_get_args (port specifier) 2014-01-13 00:50:18 +09:00
Yuichi Nishiwaki d9911cabc8 publish pic_eof_object() 2014-01-13 00:49:25 +09:00
Yuichi Nishiwaki 322021e5d5 pic_get_args supports port object 2014-01-13 00:48:00 +09:00
Yuichi Nishiwaki 6b808354c0 global variable accessors don't require library object 2014-01-13 00:45:49 +09:00
Yuichi Nishiwaki dbf73ecd7a refactor std ports 2014-01-13 00:02:58 +09:00
Yuichi Nishiwaki 0af0ecafb6 add standard io ports 2014-01-12 23:57:50 +09:00
Yuichi Nishiwaki f4202a7555 don't need to strip syntactic information away from quoted expressions 2014-01-12 20:21:07 +09:00
Yuichi Nishiwaki b70c689b1f keep track of xhash's HEAD 2014-01-12 19:53:20 +09:00
Yuichi Nishiwaki a6fafd6422 add missing 'static' modifier 2014-01-12 16:15:04 +09:00
Yuichi Nishiwaki d6abb5c0ba add defvar 2014-01-12 16:09:27 +09:00
Yuichi Nishiwaki 10e5546a53 functions defined by pic_defun will be implicitly renamed 2014-01-12 16:09:19 +09:00
Yuichi Nishiwaki 11ead27614 wrapper/unwrapper for var-proc conversion 2014-01-12 16:08:27 +09:00
Yuichi Nishiwaki 133e4c00bd leave a comment about conv parameter of pic_new_var is nullable 2014-01-12 16:05:42 +09:00
Yuichi Nishiwaki 944111ba09 make gensym API public 2014-01-12 16:03:36 +09:00
Yuichi Nishiwaki 825cde998b s/pic_proc_cv_reserve/pic_proc_cv_init/g 2014-01-12 13:02:16 +09:00
Yuichi Nishiwaki 45c49fdec3 don't rename each symbol more than a time 2014-01-10 17:55:58 +09:00
Yuichi Nishiwaki 62e52be061 [bugfix] macroexpand may return a non-symbol value even if passed a symbol. 2014-01-10 17:55:13 +09:00
Yuichi Nishiwaki 57253f9a6c compare is allowed to take non-symbol values 2014-01-10 17:52:31 +09:00
Yuichi Nishiwaki a159e52ae6 [bugfix] wrong error message 2014-01-10 17:49:27 +09:00
Yuichi Nishiwaki 6bdc9b360e [bugfix] wrong external representation for syntax type 2014-01-10 16:22:36 +09:00
Yuichi Nishiwaki 2e66b533c1 fix a small bug in a comment 2014-01-10 16:22:07 +09:00
Yuichi Nishiwaki 9b02247082 initial explicit renaming macro prototype 2014-01-09 16:34:22 +09:00
Yuichi Nishiwaki 8e4e226bd3 pic_get_args supports symbol 2014-01-09 16:33:38 +09:00
Yuichi Nishiwaki e8a50410a5 suppress unreachable warnings 2014-01-09 00:42:23 +09:00
Yuichi Nishiwaki 76f8916dca show debug print when a library is reopened 2014-01-09 00:40:13 +09:00
Yuichi Nishiwaki a9f4eff13e add parameter primitives: (picrin parameter) library 2014-01-09 00:39:13 +09:00
Yuichi Nishiwaki d7c510ae40 parameter implementation prototype 2014-01-09 00:38:09 +09:00
Yuichi Nishiwaki 92ceedbd15 add accessor functions to modify closed variables 2014-01-08 22:45:28 +09:00
Yuichi Nishiwaki e3e1ba4c11 rename procedure creation functions 2014-01-08 22:44:53 +09:00
Yuichi Nishiwaki e7f765d218 pic_get_args supports pic_procs 2014-01-08 20:53:28 +09:00
Yuichi Nishiwaki b9ef51530f don't intern symbols newly generated by new_uniq_sym 2014-01-08 20:41:29 +09:00
Yuichi Nishiwaki dccc234fd9 add pic_import 2014-01-08 15:38:31 +09:00
Yuichi Nishiwaki 33cbf5ff6a configurable none value 2014-01-08 15:22:23 +09:00
OGINO Masanori ceffd8a3bd Cast to `void *` for '%p' format specifiers.
Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
2014-01-05 18:10:33 +09:00
OGINO Masanori da1eb0bc10 Remove '\e'. The escape sequence is not in ISO C.
Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
2014-01-05 18:00:02 +09:00
Yuichi Nishiwaki 76f5cbf0b3 ENDLIBRARY requires a trailing semicolon 2013-12-10 07:26:43 -08:00
Yuichi Nishiwaki d23f686485 newline is not an element of (scheme write) 2013-12-10 05:59:03 -08:00
Yuichi Nishiwaki cdb1911f9f define (scheme inexact) library 2013-12-10 05:40:44 -08:00
Yuichi Nishiwaki 6dc66d354c add missing finite? function 2013-12-10 05:40:26 -08:00
Yuichi Nishiwaki afe630bc42 use find_library inside in_library 2013-12-10 05:40:03 -08:00
Yuichi Nishiwaki fb34b71de1 [bugfix] identifier=? dies when take auxiliary syntax (because they emit
errors during expansion)
2013-12-10 01:50:53 -08:00
Yuichi Nishiwaki 41ffd0d7e5 define macro primitives (such as make-syntactic-closure) in (picrin macro) 2013-12-10 01:49:48 -08:00
Yuichi Nishiwaki fd8c551159 use print_code for CODE_EXECUTE_HOOK 2013-12-10 01:47:45 -08:00
Yuichi Nishiwaki e021ac52ac identifier=? dons not necessarily take identifiers 2013-12-10 00:22:34 -08:00
Yuichi Nishiwaki 038020ff9f sequentially evaluate programs declared in library at the macroexpansion phase 2013-12-09 23:00:13 -08:00
Yuichi Nishiwaki bae4e6974b [bugfix] create a new senv before allocate a library 2013-12-09 22:59:27 -08:00
Yuichi Nishiwaki 74feec78f1 always emit the same unique symbol for unbound variable 2013-12-09 09:32:30 -08:00
Yuichi Nishiwaki 725297384a define-syntax is now capable of takeing a synclo object at the position
of the syntax name
2013-12-09 09:26:28 -08:00
Yuichi Nishiwaki d871c6f06c import and export take multiple spec in a time 2013-12-09 09:22:38 -08:00
Yuichi Nishiwaki 39b28fa674 debug print might cause segv 2013-12-09 09:09:24 -08:00
Yuichi Nishiwaki eeb09f336e Merge branch 'master' into libraries
Conflicts:
	src/macro.c
	src/pair.c
2013-12-09 08:27:29 -08:00
Yuichi Nishiwaki e05a469a06 fix ir-macro-transformer 2013-12-09 07:27:11 -08:00
Yuichi Nishiwaki 0dddddab55 ir-macro-transformer was broken 2013-12-09 07:26:51 -08:00
Yuichi Nishiwaki d21db9ae81 execute winded handlers when exit is called 2013-12-09 13:51:34 +09:00
Yuichi Nishiwaki 5035831d84 [bugfix] syntax objects should be brought to imported library's
senv->stx holder
2013-12-08 00:52:34 -08:00
Yuichi Nishiwaki dda8ad367c split built-in functins into libraries 2013-12-07 23:17:28 -08:00
Yuichi Nishiwaki 906f2c8a93 make-library returns existing library if name conflicts 2013-12-07 23:15:16 -08:00
Yuichi Nishiwaki fabe70aaf2 [bugfix] assq and assoc should return false if key is not found 2013-12-07 23:13:45 -08:00
Yuichi Nishiwaki bea04325e5 define arithmetic operators as c functions 2013-12-07 20:55:04 -08:00
Yuichi Nishiwaki 8720ffa0c5 s/DEFINE_MATH_PRED/DEFINE_ARITH_CMP/g 2013-12-07 20:55:04 -08:00
Yuichi Nishiwaki 617ee5aa68 add pic_parse 2013-12-07 20:54:23 -08:00
Yuichi Nishiwaki 24a41d8e27 add pic_assoc 2013-12-07 20:52:58 -08:00
Yuichi Nishiwaki 28da6d71ba add pic_equal_p 2013-12-07 20:52:58 -08:00
Yuichi Nishiwaki fb2e7ac498 declare all built-in functions and variables in (scheme base) library 2013-12-07 20:48:24 -08:00
Yuichi Nishiwaki 47dd186535 do not include core syntaces in the default library environment 2013-12-07 20:47:55 -08:00
Yuichi Nishiwaki 7f5a4c34a3 register and export to library functions defined by pic_defun 2013-12-07 20:47:09 -08:00
Yuichi Nishiwaki e71c5abfdb rename unbound symbols by default 2013-12-07 20:45:47 -08:00
Yuichi Nishiwaki 01e60b5d8e add pic_export and pic_export_as 2013-12-07 20:44:39 -08:00
Yuichi Nishiwaki 0110370cc4 improve reusability 2013-12-07 20:43:57 -08:00
Yuichi Nishiwaki 57ca3174aa define arithmetic operators as c functions 2013-12-07 20:43:36 -08:00
Yuichi Nishiwaki 629ee06b5f s/DEFINE_MATH_PRED/DEFINE_ARITH_CMP/g 2013-12-07 20:42:10 -08:00
Yuichi Nishiwaki 791ab95219 [bugfix] taking a wrong symbol for exporting 2013-12-07 19:03:18 -08:00
Yuichi Nishiwaki 0f491adc73 select library during macroexpanding define-library 2013-12-07 18:59:35 -08:00
Yuichi Nishiwaki 7cdcbd4604 set name to each library 2013-12-07 18:59:13 -08:00
Yuichi Nishiwaki 35b99d11a8 let make_library return a library 2013-12-07 18:44:14 -08:00
Yuichi Nishiwaki c764d28878 add pic_parse 2013-12-07 18:38:47 -08:00
Yuichi Nishiwaki 6b2d6a98eb Revert "change APIs of library functions"
This reverts commit 0115ede4de.

Conflicts:
	include/picrin.h
2013-12-07 18:27:08 -08:00
Yuichi Nishiwaki 818430bb81 implement import/export syntax 2013-12-07 09:42:34 -08:00
Yuichi Nishiwaki c989687564 [workaround] load core syntaces initially 2013-12-07 07:14:35 -08:00
Yuichi Nishiwaki 0115ede4de change APIs of library functions 2013-12-07 07:11:22 -08:00
Yuichi Nishiwaki 9cb777eec3 select the minimal library at first 2013-12-07 07:05:22 -08:00
Yuichi Nishiwaki 7c6ba80581 add library operation methods 2013-12-07 07:05:06 -08:00
Yuichi Nishiwaki 1ac5b6458c add pic_null_syntactic_env and pic_minimal_syntactic_env 2013-12-07 07:04:26 -08:00
Yuichi Nishiwaki aac2082991 add pic_assoc 2013-12-07 06:30:21 -08:00
Yuichi Nishiwaki dcb5b448cd add pic_equal_p 2013-12-07 06:29:29 -08:00
Yuichi Nishiwaki 381ed58bff add global library table 2013-12-07 05:36:14 -08:00
Yuichi Nishiwaki 931565d4ce add pic_lib 2013-12-07 03:58:18 -08:00
Yuichi Nishiwaki acbcde3b6a initial library support 2013-12-07 03:04:27 -08:00
Yuichi Nishiwaki a1e2e41840 add some symbols about library 2013-12-07 02:31:04 -08:00
Yuichi Nishiwaki 25378e3813 cosmetic changes 2013-12-06 07:51:32 -08:00
Yuichi Nishiwaki b3a2da1079 Merge remote-tracking branch 'origin/master' 2013-12-06 04:48:10 -08:00
Yuichi Nishiwaki ef04e3f02c add pic_core_syntactic_env 2013-12-06 18:04:36 +09:00
Yuichi Nishiwaki 4d8ffa43c8 delete auto resource releasing facility 2013-12-03 08:16:53 -08:00
Yuichi Nishiwaki 7e69ae1878 add port-close procedure 2013-12-03 08:16:13 -08:00
Yuichi Nishiwaki afffa20785 pic_apply supports multiple arguments 2013-12-03 06:40:50 -08:00
Yuichi Nishiwaki a7df867a55 suppress gcc's warnings 2013-12-03 06:10:46 -08:00
Yuichi Nishiwaki 4e98d37ab1 remove old debug prints 2013-12-03 13:08:23 +09:00
Yuichi Nishiwaki dc7c801c38 exprs during macroexpansion may have syntactic-closure in the tail position 2013-12-03 13:08:00 +09:00
Yuichi Nishiwaki 761deffe1f macroexpand_list supports any kind of improper list 2013-12-03 13:07:25 +09:00
Yuichi Nishiwaki b5b30de05a remove a field for debug of union header 2013-12-03 11:49:32 +09:00
Yuichi Nishiwaki 7685afdb79 fix logic flaw in GC 2013-12-03 11:45:38 +09:00
Yuichi Nishiwaki 704b2d148b rewrite pic_type_repr 2013-12-02 13:39:11 +09:00
Yuichi Nishiwaki a43e3248e8 calloc should take size_t 2013-12-01 12:44:43 +09:00
Yuichi Nishiwaki 04434f44fd cosmetic changes 2013-11-30 00:07:49 +09:00