Commit Graph

1355 Commits

Author SHA1 Message Date
Yuichi Nishiwaki 2b16aaded2 s/translate/make_identifier/g 2014-07-17 10:16:17 +09:00
Yuichi Nishiwaki 40897e6351 support character literal 2014-07-16 16:12:25 +09:00
Yuichi Nishiwaki 6ee4d49a96 Macro-generating macro may rename symbol that will be used as a newly
introduced identifier
2014-07-16 14:46:30 +09:00
Yuichi Nishiwaki f02bac1d88 register function name to lambdas like (define foo (lambda ...)) 2014-07-15 20:57:35 +09:00
Yuichi Nishiwaki d85801e396 rational number literal reads exact integer if possible 2014-07-15 17:58:46 +09:00
Yuichi Nishiwaki bb427cf275 style fix 2014-07-15 13:42:19 +09:00
Yuichi Nishiwaki 5faa7cd46d leave core syntax keywords renamed 2014-07-14 10:08:11 +09:00
Yuichi Nishiwaki 6c45bb3c5d support let-syntax 2014-07-13 22:36:30 +09:00
Yuichi Nishiwaki 730cfc8601 refactor macroexpand_lambda 2014-07-13 21:05:57 +09:00
Yuichi Nishiwaki 1989a972cb refactor macroexpand_define. make use of macroexpand_lambda function 2014-07-13 21:01:30 +09:00
Yuichi Nishiwaki e08ec23a9f s/formals/formal/g 2014-07-13 20:39:34 +09:00
Yuichi Nishiwaki 6cf4fe942a rewrite iteration with recursion. since we have variable-length arena
now, it is no longer required to avoid big arena consumption.
2014-07-13 20:32:26 +09:00
Yuichi Nishiwaki c57f8a5016 add pic_void macro 2014-07-13 20:20:04 +09:00
Yuichi Nishiwaki 631926aa96 function reorder 2014-07-13 20:19:45 +09:00
Yuichi Nishiwaki 6d20c0e3e0 cosmetic changes again 2014-07-13 20:09:42 +09:00
Yuichi Nishiwaki 601b54ba1f cosmetic changes 2014-07-13 20:06:08 +09:00
Yuichi Nishiwaki e1cba4b48e refactor translate to use pic_dict instead of boxes 2014-07-13 20:01:09 +09:00
Yuichi Nishiwaki 54d50d57a1 add pic_dict_has 2014-07-13 19:49:24 +09:00
Yuichi Nishiwaki 73c406ed42 add translate function 2014-07-13 19:49:24 +09:00
Yuichi Nishiwaki 9e5b019e44 add dictionary-for-each 2014-07-13 12:27:03 +09:00
Yuichi Nishiwaki 88593b1f9d rename 'dictionary' 'make-dictionary' 2014-07-13 12:07:56 +09:00
Yuichi Nishiwaki b0474aaec2 add dictionary operators 2014-07-13 12:07:07 +09:00
Yuichi Nishiwaki 2c4fd589bf manage values in a stack 2014-07-13 11:07:43 +09:00
Yuichi Nishiwaki 9e8d53088f add pic_set_c[ad]r 2014-07-13 11:07:42 +09:00
Yuichi Nishiwaki 7ffcbb7a7d refactor var. c api no longer supports converters. 2014-07-13 11:07:42 +09:00
Yuichi Nishiwaki c3106a9608 improve error message 2014-07-13 11:07:42 +09:00
Yuichi Nishiwaki 114e445901 get rid of doubled semicolons 2014-07-13 11:07:42 +09:00
Yuichi Nishiwaki 05309a1d38 don't use pic_defvar 2014-07-13 11:07:42 +09:00
Yuichi Nishiwaki fe375a7224 add pic_funcall 2014-07-13 11:07:42 +09:00
Yuichi Nishiwaki 13fec26c59 remove var accessor and mutators 2014-07-13 11:07:42 +09:00
Yuichi Nishiwaki fce57ec8c9 remove get_var_from_proc (essentially the same as pic_unwrap_var) 2014-07-13 11:07:42 +09:00
Yuichi Nishiwaki 378f01fa03 add attribute function 2014-07-13 11:01:23 +09:00
Yuichi Nishiwaki 56ae4de826 add attribute information to closure objects 2014-07-13 10:58:21 +09:00
Yuichi Nishiwaki 82de3cfe2f add pic_dict_new 2014-07-13 10:58:13 +09:00
Yuichi Nishiwaki 7aa17f5d1f read rational '123/456' literal 2014-07-11 22:44:44 +09:00
Yuichi Nishiwaki 6614f8fc4f support #true and #false literals 2014-07-04 13:44:30 +09:00
Yuichi Nishiwaki d810e42666 throw READ_ERROR when parser raised 2014-07-04 13:32:54 +09:00
Yuichi Nishiwaki 1402a97354 change pic_throw API 2014-07-04 13:32:45 +09:00
Yuichi Nishiwaki 69c0e702c6 remove useless fflush 2014-06-29 16:22:22 +09:00
Yuichi Nishiwaki a6ac56d311 rewrite `include` macro with scheme 2014-06-29 15:08:23 +09:00
Sunrim KIM (keen) 8d9b7e9bf3 ensure flush contents into the port made in `open-input-bytevector` 2014-06-29 13:46:46 +09:00
Yuichi Nishiwaki fdbd7bd2c9 [bugfix] glibc's getenv function does not igrore trailing '=' 2014-06-29 01:06:07 +09:00
Yuichi Nishiwaki 89506d0ced [bugfix] allocate size was inefficient 2014-06-29 00:54:20 +09:00
Yuichi Nishiwaki 690e2cdba6 refactor number parser 2014-06-28 22:32:26 +09:00
Yuichi Nishiwaki 4fd99b5955 [bugfix] return value from pic_get_args does not include proc object 2014-06-28 21:53:14 +09:00
Yuichi Nishiwaki 76220e1e8e infinity is not rational 2014-06-28 21:43:44 +09:00
Yuichi Nishiwaki 5d3c59fc98 reads number as accurate as possible 2014-06-28 21:41:35 +09:00
Yuichi Nishiwaki c44803d238 [bugfix] using uninitializing variable 2014-06-28 20:45:41 +09:00
Yuichi Nishiwaki 39b1e6c6bc [bugfix] comparator transitivity broken 2014-06-28 20:30:19 +09:00
Yuichi Nishiwaki c5400b4b2d support more than 2 argument-comparators 2014-06-28 20:29:49 +09:00
Yuichi Nishiwaki 4772441589 allow "(a . b #;c )" 2014-06-28 20:02:13 +09:00
Yuichi Nishiwaki aae4bba98d [bugfix] wrong size for read string 2014-06-28 19:47:45 +09:00
Yuichi Nishiwaki 5ba0402221 fix type warning (int and size_t) 2014-06-28 19:23:24 +09:00
Yuichi Nishiwaki 2fb97d16ed style fix 2014-06-28 19:23:06 +09:00
Sunrim KIM (keen) 49a4808a22 check length before compare contents 2014-06-28 19:18:35 +09:00
Sunrim KIM (keen) 8533876682 vectors, blobs, strings with equal contets are equal 2014-06-28 19:17:42 +09:00
Yuichi Nishiwaki 3ee807a347 fix xr_put 2014-06-27 17:40:43 +09:00
Yuichi Nishiwaki 39a87d1c60 Merge pull request #131 from KeenS/missing-functions
( ref #130 ) Missing functions
2014-06-27 09:03:50 +09:00
Yuichi Nishiwaki 51b8344527 support infinity and nan literals 2014-06-27 08:55:02 +09:00
Yuichi Nishiwaki 36e0aa6f69 [bugfix] compound literals should consider inner comments 2014-06-27 08:55:02 +09:00
Yuichi Nishiwaki e1ca64b56e block comment reader must not consume the character right after the
comment end
2014-06-27 08:55:02 +09:00
Yuichi Nishiwaki 0b85e251a2 fix negative number reader 2014-06-27 08:55:01 +09:00
Yuichi Nishiwaki 556a460663 [bugfix] EOF is a delimiter 2014-06-27 08:55:01 +09:00
Yuichi Nishiwaki bb43c8d9dc add isdelim 2014-06-27 08:55:01 +09:00
Yuichi Nishiwaki 1eb4940b13 use isdigit 2014-06-27 08:55:01 +09:00
Yuito Murase 8374297a22 append returns '() when given no args 2014-06-26 17:40:26 +09:00
Yuichi Nishiwaki bc2a684961 add read function support 2014-06-25 22:36:56 +09:00
Yuichi Nishiwaki 2c84168861 hold integers in 64bit size 2014-06-25 21:49:28 +09:00
Yuichi Nishiwaki 4d9dc8011c fix read_vector bug 2014-06-25 21:40:51 +09:00
Yuichi Nishiwaki 029efc91c9 allow symbols with leading '.' 2014-06-25 21:40:42 +09:00
Yuichi Nishiwaki bd822fa4c6 fix EOF handling 2014-06-25 21:40:18 +09:00
Yuichi Nishiwaki ee82ee99d7 support nested block comment 2014-06-25 21:38:11 +09:00
Yuichi Nishiwaki 1440a51ef8 improve error messages of load function 2014-06-25 18:18:01 +09:00
Yuichi Nishiwaki a90330d3d9 comment readers should return undef values to report continuablility to
the parent function
2014-06-25 18:06:48 +09:00
Yuichi Nishiwaki 6eec3629e9 use xprintf instead of printf 2014-06-25 17:24:42 +09:00
Yuichi Nishiwaki b646948e9b allocate buffer in +1 size 2014-06-25 17:22:15 +09:00
Yuichi Nishiwaki 0e66144a4d add pic_open_input_string 2014-06-25 15:39:40 +09:00
Yuichi Nishiwaki 83a13d4ca4 remove flex dependency 2014-06-25 15:39:30 +09:00
Yuichi Nishiwaki da4a4fd449 api changes of reader/parser 2014-06-25 15:39:04 +09:00
Yuichi Nishiwaki 0b087b785e store rlabels in global state 2014-06-25 15:37:24 +09:00
Yuichi Nishiwaki 219b244743 initial read implementation 2014-06-25 15:36:36 +09:00
Yuichi Nishiwaki 4c78e0694a shrink trampoline iseq 2014-06-23 00:56:43 +09:00
Yuichi Nishiwaki fa179dc152 trampoline_iseq is no longer mutable 2014-06-23 00:54:11 +09:00
Yuichi Nishiwaki 711b53eb72 fix #140 2014-06-23 00:52:36 +09:00
Yuichi Nishiwaki 8c80b6ef5b use "%zu"s for size_t 2014-06-22 20:09:38 +09:00
Sunrim KIM (keen) a0b77fc328 Merge branch 'master' into equal 2014-06-18 00:48:41 +09:00
Sunrim KIM (keen) d706240ada implement circular refarence checking 2014-06-18 00:47:50 +09:00
Yuichi Nishiwaki e88617a065 ignore shebang (#134) 2014-06-17 21:28:20 +09:00
Yuichi Nishiwaki 037967fd58 dictionary-delete raises an error when no binding with given name is registered 2014-06-15 01:46:31 +09:00
Yuichi Nishiwaki a8a56aa34e add dictionary-size 2014-06-15 00:36:38 +09:00
Yuichi Nishiwaki da553b9001 primary symbol to object hashtable support (dictionary) 2014-06-14 22:17:57 +09:00
Yuichi Nishiwaki f9e733a7b1 update xhash 2014-06-14 20:59:31 +09:00
Yuichi Nishiwaki 77cb18bfd4 add commentary on pic_get_args 2014-06-14 16:08:12 +09:00
Yuichi Nishiwaki d94d7a7757 Merge pull request #129 from KeenS/hotfix
correct error message
2014-06-11 00:16:23 +09:00
Sunrim KIM (keen) 8d34da0295 correct error message 2014-06-10 21:50:14 +09:00
Yuichi Nishiwaki 9beca60a5a Merge pull request #127 from KeenS/hotfix
silence warning from gc.c
2014-06-07 21:35:37 +09:00
Sunrim KIM (keen) 6b171f2716 silence warning from gc.c 2014-06-07 02:20:29 +09:00
Yuichi Nishiwaki 53f76b7a47 support renaming export 2014-06-03 23:54:51 +09:00
Yuichi Nishiwaki 81c3147695 move pic_import and pic_export to lib.c 2014-06-03 23:30:00 +09:00
Sunrim KIM (keen) 6ccfa7ad69 some bug fixes 2014-05-29 03:58:04 +09:00
Sunrim KIM (keen) c8de0ad4ce fix misaligned assertion 2014-05-29 01:10:59 +09:00
Sunrim KIM (keen) fc6a919914 fix errer message of `u8-ready?` 2014-05-29 01:04:37 +09:00
Sunrim KIM (keen) 86a27e95b7 add alias of `modulo`, `remainder`, `quotient` 2014-05-28 22:49:53 +09:00
Sunrim KIM (keen) dcef9579f5 check length before compare contents 2014-05-28 02:55:19 +09:00
Sunrim KIM (keen) 0ebaf98409 resolve confrict 2014-05-28 02:36:23 +09:00
Sunrim KIM (keen) a9ef840df9 vectors, blobs, strings with equal contets are equal 2014-05-27 21:35:19 +09:00
Sunrim KIM (keen) cb3a975ed6 fix analyze errer for (+) and (*) 2014-05-27 18:53:13 +09:00
Yuichi Nishiwaki 2155a0c8f1 declare arena_idx as a size_t 2014-05-26 16:06:41 +09:00
Yuichi Nishiwaki 826eb4415d automatic arena extend 2014-05-26 15:56:51 +09:00
Yuichi Nishiwaki a003b42435 dynamically allocate GC arena 2014-05-26 15:51:18 +09:00
Sunrim KIM (keen) a73a92cfdb make `read-bytevector(!)` efficint, export `u8-ready?`. 2014-05-26 04:08:39 +09:00
Sunrim KIM (keen) cffaccf8ef implement the rest procedures of `input` but `u8-ready?` is incomlete like `char-ready?` 2014-05-26 03:21:26 +09:00
Yuichi Nishiwaki af921a9df8 set rpath properly 2014-05-21 15:38:12 +09:00
Yuichi Nishiwaki 5f84c781c0 cleanup 2014-05-21 01:34:32 +09:00
Yuichi Nishiwaki e78ad9f452 split into piclib/CMakeLists.txt 2014-05-21 00:48:56 +09:00
Yuichi Nishiwaki cefe1d8879 display libray specs in 'library not found' error 2014-05-21 00:37:15 +09:00
Yuichi Nishiwaki 3232f20936 add DEPENDS option 2014-05-21 00:29:33 +09:00
Yuichi Nishiwaki 5ba1d4eb39 add partcont library 2014-05-19 14:38:32 +09:00
Yuichi Nishiwaki 10db8b9a2b let embedding files be configurable 2014-05-19 13:39:28 +09:00
Yuichi Nishiwaki 7431eaf71c mv libemb.pl mkloader.pl 2014-05-19 13:23:10 +09:00
Yuichi Nishiwaki 52c175a4fe port libemb.py to perl 2014-05-19 08:40:22 +09:00
Yuichi Nishiwaki f2d56714b3 [bugfix] close #107. On DLL platforms, cmake treats shared library files as same as
BINARY targets, not as LIBRARY targets. Thanks a lot, @ktakashi!
2014-05-18 16:21:54 +09:00
Yuichi Nishiwaki 085d3e198c check if python is installed before running libemb.py 2014-05-18 16:13:29 +09:00
Yuichi Nishiwaki 1ff408b59b cosmetic changes 2014-04-12 08:25:17 +09:00
Yuichi Nishiwaki 183935a31e [bugfix] fix GC fault. call pic_get_backtrace function *before* you
allocate new area for error object.
2014-04-10 22:31:05 +09:00
Yuichi Nishiwaki f5a4047e28 unwind picrin VM registers when pic_pop_try is called 2014-04-06 14:02:50 +09:00
Yuichi Nishiwaki 5893dd5b5c save stacktrace in error objects 2014-04-06 14:02:21 +09:00
Yuichi Nishiwaki 920524dc40 add pic_print_backtrace function 2014-04-06 14:00:45 +09:00
Yuichi Nishiwaki a8de062bcb rename backtrace.c to debug.c 2014-04-06 13:36:02 +09:00
Yuichi Nishiwaki bc7291a176 add support for `make install` 2014-04-06 12:36:08 +09:00
Yuichi Nishiwaki d143da430a use absolute path to specify libemb.py output path 2014-04-06 12:17:08 +09:00
Yuichi Nishiwaki 2c79e1874c run load_piclib.c generator at every build time 2014-04-06 10:05:15 +09:00
Yuichi Nishiwaki 1d40eb0dea supply substring function 2014-04-06 09:52:13 +09:00
Yuichi Nishiwaki ecd533babd run piclib generator at cmake run 2014-04-06 02:47:40 +09:00
Yuichi Nishiwaki 4f4c3e24c5 embed scheme library files into a c source file 2014-04-06 02:47:14 +09:00
Yuichi Nishiwaki d0e14a4acb s/pic_load_stdlib/pic_load_piclib/g 2014-04-06 02:44:38 +09:00
Yuichi Nishiwaki 74b44f4d84 add pic_load_cstr 2014-04-06 02:43:49 +09:00
Yuichi Nishiwaki 0977c4e325 use unreachable macro 2014-04-06 00:44:05 +09:00
Yuichi Nishiwaki 8750b9b4dd add pic_define_syntactic_keyword 2014-04-05 04:01:42 +09:00
Yuichi Nishiwaki 708f348674 s/pic_null_syntactic_env/pic_null_syntactic_environment/g 2014-04-05 03:50:38 +09:00
Yuichi Nishiwaki b9125caa3d remove pic_(minimal|core)_syntactic_env 2014-04-05 03:49:20 +09:00
Yuichi Nishiwaki b64b2c3074 bugfix 2014-04-05 02:44:30 +09:00
Yuichi Nishiwaki 7386460253 s/pic_symbol_value/pic_sym_value/g 2014-04-05 02:21:07 +09:00
Yuichi Nishiwaki eb990b4399 cleanup 2014-04-05 01:30:51 +09:00
Yuichi Nishiwaki 16ad48aade add sc_ prefix to identifer? and identifier=? functions 2014-04-05 01:28:57 +09:00
Yuichi Nishiwaki 1215202f66 cleanup 2014-04-05 01:23:20 +09:00
Yuichi Nishiwaki 9d2ac6b994 inline senv_new 2014-04-05 01:21:16 +09:00
Yuichi Nishiwaki 0d0d4e6482 s/senv_new_local/push_scope/g 2014-04-05 01:20:19 +09:00
Yuichi Nishiwaki 1e5c6d899e s/pic_sc/pic_sc_ptr/g. s/pic_senv/pic_senv_ptr/g. 2014-04-04 13:07:16 +09:00
Yuichi Nishiwaki 4ec8398118 inline macro_new and add_macro 2014-04-04 12:58:28 +09:00
Yuichi Nishiwaki 845778eefb add define_macro 2014-04-04 12:55:51 +09:00
Yuichi Nishiwaki 0823149e4f cleanup 2014-04-04 12:48:26 +09:00
Yuichi Nishiwaki 880c8c2b03 add macroexpand_quote 2014-04-03 22:27:36 +09:00
Yuichi Nishiwaki aba1f5139b remove senv_add_core 2014-04-03 22:26:30 +09:00
Yuichi Nishiwaki 030c7f9034 refactor macro use expander 2014-04-03 22:16:09 +09:00
Yuichi Nishiwaki 113ae32e47 separate macroexpand processing into functions 2014-04-03 22:01:25 +09:00
Yuichi Nishiwaki ffd962290f s/symbol_rename/macroexpand_symbol/g 2014-04-03 01:15:39 +09:00
Yuichi Nishiwaki c0378cb9ae [refactor] use senv_add_core to register core syntaxes 2014-04-03 00:55:34 +09:00
Yuichi Nishiwaki 28edfb5023 implement numerical I/O 2014-04-02 00:06:38 +09:00
Yuichi Nishiwaki b5a307aa88 error on macroexpanding circular objects 2014-04-01 11:40:36 +09:00
Yuichi Nishiwaki e32e42c5f9 support datum label reader 2014-04-01 11:40:20 +09:00
Yuichi Nishiwaki f66c48cc6f load 26.scm at init. 2014-03-31 22:26:31 +09:00
Yuichi Nishiwaki 43071d2c84 refactoring. use boxes. 2014-03-31 22:03:03 +09:00
Yuichi Nishiwaki 01ed285d40 fix #36 2014-03-31 21:59:36 +09:00
Yuichi Nishiwaki 2151640331 add native box API 2014-03-31 21:50:08 +09:00
Yuichi Nishiwaki 3e8d64fdb7 initial regexp support 2014-03-31 20:43:36 +09:00
Yuichi Nishiwaki 4549625182 cleanup 2014-03-31 08:27:04 +09:00
Yuichi Nishiwaki d91ae885b6 add fixed-arity pic_values function 2014-03-31 08:13:06 +09:00
Yuichi Nishiwaki 812ec3a87b fix #84 2014-03-30 14:45:40 +09:00
Yuichi Nishiwaki c3b737037a refactor native_stack_length 2014-03-30 14:45:24 +09:00
Yuichi Nishiwaki a1101296aa refactor pic_gensym 2014-03-29 20:53:20 +09:00
Yuichi Nishiwaki d8c182bc69 add user-defined data type API 2014-03-29 20:42:06 +09:00
Yuichi Nishiwaki 38c4e7e6de implemented simple backtrace 2014-03-29 20:02:11 +09:00
Yuichi Nishiwaki 7b73b37bec cleanup 2014-03-29 09:04:14 +09:00
Yuichi Nishiwaki 0b58624864 no need to handle set!/if/begin syntaces at macroexpansion stage 2014-03-29 09:00:37 +09:00
Yuichi Nishiwaki c5d9972d2e macro transformer should never return macro objects 2014-03-29 08:57:15 +09:00
Yuichi Nishiwaki 464ecdd452 call symbol_rename as much as possible 2014-03-29 08:53:24 +09:00
Yuichi Nishiwaki cf1e1a8746 add pic_proc_name 2014-03-28 12:34:54 +09:00
Yuichi Nishiwaki a304feaa28 show irep names in debug print 2014-03-28 12:29:00 +09:00
Yuichi Nishiwaki 24d6540d56 record procedure name in irep 2014-03-28 12:26:07 +09:00
Yuichi Nishiwaki aeaf33ff47 print cfunction name in debug print 2014-03-28 12:18:32 +09:00
Yuichi Nishiwaki b7d8a2c724 record cfunc procedure names 2014-03-28 12:18:32 +09:00
Yuichi Nishiwaki fbbbf7b019 cleanup 2014-03-28 12:18:24 +09:00
Yuichi Nishiwaki cea7b73840 add pic_list7 2014-03-28 12:11:59 +09:00
Yuichi Nishiwaki 010ee9ddb6 get rid of redundant symbol to value cast 2014-03-28 12:10:09 +09:00
Yuichi Nishiwaki c86c153e53 when procedual-define is analyzed, don't create a lambda expression
inside, call analyze_procedure directly instead.
2014-03-28 12:10:09 +09:00
Yuichi Nishiwaki 3215ba2677 cleanup. move analyze_lambda 2014-03-28 12:10:09 +09:00
Yuichi Nishiwaki e47bd63762 [refactor] add analyze_declare 2014-03-28 12:10:09 +09:00
Yuichi Nishiwaki e2741f8580 [refactor] analyze_define 2014-03-28 12:10:09 +09:00
Yuichi Nishiwaki 9742689c40 Revert "reserve the 0 symbol for system use"
This reverts commit 816343bd31.

Conflicts:
	include/picrin/value.h
	src/state.c
2014-03-27 16:23:22 +09:00
Yuichi Nishiwaki c10f40acd4 change pic_find_rename API 2014-03-27 16:19:55 +09:00
Yuichi Nishiwaki 4cd217937f if rest argument value is captured, copy it to capture area. close #78. 2014-03-26 21:02:43 +09:00
Yuichi Nishiwaki 6ea78fbf27 delete pic_apply_argv 2014-03-25 21:04:30 +09:00
Yuichi Nishiwaki e51f0d6dc3 add arity-fixed apply functions 2014-03-25 20:54:57 +09:00
Yuichi Nishiwaki 4b13848cbc separate macroexpansion and arena management 2014-03-25 15:42:20 +09:00
Yuichi Nishiwaki ca42b44921 update xhash uses 2014-03-25 15:29:26 +09:00
Yuichi Nishiwaki 594742f845 refine variabe redefinitino error message 2014-03-25 14:31:32 +09:00
Yuichi Nishiwaki c3240b9133 add pic_warnf 2014-03-25 14:31:24 +09:00
Yuichi Nishiwaki 8d63fffe87 don't create duplicate slots 2014-03-25 14:25:48 +09:00
Yuichi Nishiwaki 88a7d1f2b9 s/senv->name/senv->renames/g 2014-03-25 14:21:23 +09:00
Yuichi Nishiwaki b757368748 add renamer APIs 2014-03-25 14:12:53 +09:00
Yuichi Nishiwaki 816343bd31 reserve the 0 symbol for system use 2014-03-25 13:37:20 +09:00
Yuichi Nishiwaki 514937662e renamed symbols must be always greater than or equal to 0 2014-03-25 13:26:42 +09:00
Yuichi Nishiwaki abefda9ee9 avoid lcm overflow 2014-03-25 12:25:08 +09:00
Yuichi Nishiwaki bccfc1f08d throw error when macro definition evaluates to non-procedure object 2014-03-24 15:30:44 +09:00
Yuichi Nishiwaki b61da9bc47 use UNREACHABLE macro 2014-03-24 15:30:32 +09:00
Yuichi Nishiwaki b29832d2c5 refactor macroexpand 2014-03-24 15:27:03 +09:00
Yuichi Nishiwaki 9dcdc45ab6 cleanup 2014-03-24 15:15:08 +09:00
Yuichi Nishiwaki af80ba6b36 pic_gc_protect now returns a value 2014-03-24 15:14:54 +09:00
Yuichi Nishiwaki f2717910d0 remove error handling stuff from the VM 2014-03-24 15:12:01 +09:00
Yuichi Nishiwaki 1821039e78 pic->rescue is no longer used 2014-03-24 15:00:55 +09:00
Yuichi Nishiwaki 8451bd5c19 cleanup 2014-03-24 14:58:09 +09:00
Yuichi Nishiwaki 0fcd1a3e10 inline pic_error definition 2014-03-24 14:57:10 +09:00
Yuichi Nishiwaki bb7e35ca0e pic_raise is equivalent to pic_throw. remove it. 2014-03-24 14:55:41 +09:00
Yuichi Nishiwaki 6448a36db5 don't use pic->rescue stack in with-exception-handler 2014-03-24 14:54:03 +09:00
Yuichi Nishiwaki 4d56ebf634 drop support for raise-continuable for a moment 2014-03-24 14:52:52 +09:00
Yuichi Nishiwaki edb4f61d5e error function is no longer used 2014-03-24 14:24:53 +09:00
Yuichi Nishiwaki daa7513be5 add pic_throw function 2014-03-24 14:09:28 +09:00
Yuichi Nishiwaki 136980ae2e rewrite define-library expander with pic_try/catch 2014-03-24 13:25:37 +09:00
Yuichi Nishiwaki 3d465f21dc now you can 'throw' exceptions from catch clause 2014-03-24 13:24:37 +09:00
Yuichi Nishiwaki 4a2cb90095 move pic_try/pic_catch macros to error.h 2014-03-24 12:30:21 +09:00
Yuichi Nishiwaki 6d0e147f3d Merge branch 'master' of github.com:wasabiz/picrin 2014-03-24 10:38:45 +09:00
koba-e964 30cc6998de [bugfix] macroexpand
macroexpand restores pic->lib in the case of an error
2014-03-23 20:58:28 +09:00
Yuichi Nishiwaki b12be97194 cleanup 2014-03-23 18:47:55 +09:00
Yuichi Nishiwaki 12728df36f perform tear-off operation lazily 2014-03-23 13:09:35 +09:00
Yuichi Nishiwaki 93414fac52 s/env.values/env.regs/g 2014-03-23 12:45:36 +09:00
Yuichi Nishiwaki 4a1809a9c5 get access to captured local variables with OP_LREF/OP_LSET 2014-03-23 12:18:41 +09:00
Yuichi Nishiwaki 1b6f1db1c0 s/create_cv_table/create_activation/g 2014-03-23 12:10:34 +09:00
Yuichi Nishiwaki cac31845d0 cv_tbl is no longer used 2014-03-23 12:10:34 +09:00
Yuichi Nishiwaki c9eb612561 do variable closing operation not in OP_CALL but in OP_RET 2014-03-23 12:10:34 +09:00
Yuichi Nishiwaki 74294c819f remove resolver pass 2014-03-23 11:55:06 +09:00
Yuichi Nishiwaki 312c977c17 distinguish lref and cref at analysis stage 2014-03-23 11:28:11 +09:00
Yuichi Nishiwaki 0bcb970842 handle grefs at analyzing stage 2014-03-23 11:10:27 +09:00
Yuichi Nishiwaki d8ab5cadd1 cleanup. rename local variable. 2014-03-22 19:19:49 +09:00
Yuichi Nishiwaki ac4e46783c remove unused property 2014-03-22 19:13:46 +09:00
Yuichi Nishiwaki 12852b0628 s/cv_num/capturec/g 2014-03-22 19:13:07 +09:00
Yuichi Nishiwaki bdcf8a4bcb change ugly implementation; don't call realloc for each puching! 2014-03-22 19:04:42 +09:00
Yuichi Nishiwaki cb2f9fece3 separate cv table creation 2014-03-22 18:58:25 +09:00
Yuichi Nishiwaki 5a56f57782 hold local variables information in codegen_context 2014-03-22 18:46:57 +09:00
Yuichi Nishiwaki 046fae1adb grammer error fix 2014-03-22 18:41:46 +09:00
Yuichi Nishiwaki 510af57ce5 explict type cast for return valus from pic_*allloc family is not mandatory 2014-03-22 18:29:14 +09:00
Yuichi Nishiwaki a9e98b1c31 small CSE optimize for irep 2014-03-22 18:23:33 +09:00
Yuichi Nishiwaki 189487b026 [bugfix] don't push symbols doubly to captured variable list 2014-03-21 12:51:57 +09:00
Yuichi Nishiwaki 9a3ff987af define pic_push/pic_pop macro in pair.h 2014-03-21 12:36:46 +09:00
Yuichi Nishiwaki a9a530c9bd memorize only list of captured symbols 2014-03-21 12:34:45 +09:00
Yuichi Nishiwaki 91065a7c25 add commentary to lambda analyzer to avoid regression 2014-03-21 08:20:33 +09:00
Yuichi Nishiwaki b6b47943bb use enum value for variable marking 2014-03-21 08:17:52 +09:00
Yuichi Nishiwaki cfde253f26 split xvect module 2014-03-20 23:09:45 +09:00
Yuichi Nishiwaki 53cd2942d1 change xvect API 2014-03-20 22:12:20 +09:00
Yuichi Nishiwaki 0c12784da5 use xvect 2014-03-20 21:56:49 +09:00