Commit Graph

1368 Commits

Author SHA1 Message Date
Yuichi Nishiwaki 7a64ecc8bf refactor macroexpand-1 2014-07-28 02:22:02 +09:00
Yuichi Nishiwaki 9b50d9133d remove debug print 2014-07-28 02:04:00 +09:00
Yuichi Nishiwaki c8918b8e63 support renaming import (including 'only', 'rename', 'except', 'prefix' clauses) 2014-07-28 02:00:16 +09:00
Yuichi Nishiwaki d31e20c25c define 'import' and 'export' as macros 2014-07-28 01:02:48 +09:00
Yuichi Nishiwaki 9c1a397ead define 'define-library' as a macro 2014-07-28 00:48:13 +09:00
Sunrim KIM on Raspberry Pi 39a4a12a10 Merge branch 'master' into rspi
Conflicts:
	src/read.c
2014-07-27 18:51:12 +09:00
Yuichi Nishiwaki 6a0cc4c9f7 single ')' should be an read error 2014-07-27 18:35:50 +09:00
Yuichi Nishiwaki 730a827d0e fix vm_tear_off is broken 2014-07-27 18:29:59 +09:00
Sunrim KIM on Raspberry Pi 415cf30ae6 restore some redundant changes 2014-07-27 17:24:56 +09:00
Sunrim KIM on Raspberry Pi 331fe21297 use `int` in place of `char` when you compare it to EOF 2014-07-27 17:05:57 +09:00
Yuichi Nishiwaki 6f7543e3a2 Merge pull request #177 from wasabiz/number-string
Number string
2014-07-27 14:49:25 +09:00
Yuichi Nishiwaki e680b4a6bb change deflibrary API 2014-07-27 14:47:14 +09:00
Yuichi Nishiwaki fd8330cca3 add eval error handling 2014-07-27 13:57:15 +09:00
Yuichi Nishiwaki e258529e8a primary eval support 2014-07-27 13:41:55 +09:00
Yuichi Nishiwaki 09efa4715c add another argument to eval 2014-07-27 13:23:59 +09:00
Yuichi Nishiwaki 2caefd0c39 refactor write. don't run unnecessary alloc 2014-07-27 12:36:02 +09:00
Yuichi Nishiwaki 300f87d569 refactor write 2014-07-27 11:38:30 +09:00
Yuichi Nishiwaki 1f98f2ab4e Merge pull request #180 from KeenS/master
silence warning
2014-07-27 11:37:26 +09:00
Sunrim KIM (keen) f457030a8d silence warning 2014-07-26 18:06:34 +09:00
Yuichi Nishiwaki 8f419c5eab write +inf.0, -inf.0, +nan.0, ... 2014-07-26 18:03:51 +09:00
Yuichi Nishiwaki fcd332be9f read +INF.0, +InF.0, +Nan.0, ... 2014-07-26 16:56:27 +09:00
Yuichi Nishiwaki 5689abb483 move debug print 2014-07-26 15:08:04 +09:00
Yuichi Nishiwaki 4f957b6cc5 remove unused UNREACHABLE() 2014-07-26 14:57:25 +09:00
Yuichi Nishiwaki f922a7a0cd reimplement identifier=? in scheme 2014-07-26 14:54:44 +09:00
Yuichi Nishiwaki 317ea10006 unlock restriction of value types that can appear at macro-expansion time 2014-07-26 14:30:51 +09:00
Yuichi Nishiwaki b4a0761eb3 publish ungensym 2014-07-26 14:10:17 +09:00
Yuichi Nishiwaki 5ba0c56308 add pic_ungensym 2014-07-26 14:04:34 +09:00
Yuichi Nishiwaki 6966cdfa31 change gensym convension: don't rename renamed symbols with '@', use '.' instead 2014-07-26 13:58:31 +09:00
Yuichi Nishiwaki 3fb986a463 warn syntax redefinition 2014-07-26 13:48:07 +09:00
Yuichi Nishiwaki a38ba15010 raise-continuable broken 2014-07-25 15:50:29 +09:00
Yuichi Nishiwaki 0111cd19ed mark error handlers 2014-07-25 15:50:29 +09:00
Yuichi Nishiwaki 50879dd7b6 Allocate pic_blocks in picrin's gc pool; reference count may cause problems 2014-07-25 14:41:56 +09:00
Yuichi Nishiwaki 4ddf7fb163 fix a bug in pic_pop_try 2014-07-25 12:02:05 +09:00
Yuichi Nishiwaki 0c8ef0bd32 hold destination stack locations by offset 2014-07-24 11:03:40 +09:00
Yuichi Nishiwaki e3e7c53762 fix memory leak 2014-07-24 11:03:40 +09:00
Yuichi Nishiwaki f176fadb89 tear off on longjmp 2014-07-24 11:03:40 +09:00
Yuichi Nishiwaki 01c657ddba [bugfix] pic_get_args supports 'e' specifier 2014-07-24 11:02:47 +09:00
Yuichi Nishiwaki 70ace29b7c initial raise-continuable support 2014-07-24 11:02:47 +09:00
Yuichi Nishiwaki f52ef27a81 [bugfix] unwrap raised error object 2014-07-24 11:02:47 +09:00
Yuichi Nishiwaki be2fbc394e realloc jmpbuf if necessary 2014-07-24 11:02:47 +09:00
Yuichi Nishiwaki 3cb46b9b79 allocate jmpbuf array in heap 2014-07-24 11:02:47 +09:00
Yuichi Nishiwaki aeb9c2bcee define current-*-ports in port.c 2014-07-23 09:24:28 +09:00
Yuichi Nishiwaki 8846776f2f refactor (picrin parameter) 2014-07-23 09:18:58 +09:00
Yuichi Nishiwaki 424216ca23 manage converter in var 2014-07-23 09:11:31 +09:00
Yuichi Nishiwaki e3887691d2 applicable var 2014-07-23 09:05:35 +09:00
Yuichi Nishiwaki f7bbe31ee5 change var API 2014-07-22 14:55:13 +09:00
Yuichi Nishiwaki b17a2002f3 refactor dynamic-wind 2014-07-22 14:28:30 +09:00
Yuichi Nishiwaki bdd15261b1 rewrite bytevector-append in c 2014-07-22 14:14:58 +09:00
Yuichi Nishiwaki 4676550961 rewrite vector-append in c 2014-07-22 14:08:48 +09:00
Yuichi Nishiwaki 5244b2f45d rewrite bytevector-copy in c 2014-07-22 13:55:35 +09:00
Yuichi Nishiwaki 18b07fc853 change blob API 2014-07-22 13:55:21 +09:00
Yuichi Nishiwaki 3f6ec5f878 implement assoc and member in c 2014-07-22 13:19:25 +09:00
Yuichi Nishiwaki 09bb977c50 rewrite vector-fill! in c 2014-07-22 09:24:30 +09:00
Yuichi Nishiwaki 4e895c97d0 rewrite symbol=? in c 2014-07-22 09:15:16 +09:00
Yuichi Nishiwaki 0d59eee27b rewrite boolean=? in c 2014-07-22 09:13:42 +09:00
Yuichi Nishiwaki b1ae2c24e5 rewrite exact-integer-sqrt in c 2014-07-22 09:07:25 +09:00
Yuichi Nishiwaki 3caf070043 rewrite floor/ and truncate/ in c 2014-07-22 09:07:09 +09:00
Yuichi Nishiwaki b834553c34 rewrite vector-copy in c 2014-07-22 08:58:48 +09:00
Yuichi Nishiwaki 1e4bc04112 rewrite list<->vector converters in c 2014-07-21 22:51:33 +09:00
koba-e964 8b134ddd56 number->string (exact number)
number->string in src/number.c
Supports arbitrary radix
2014-07-21 22:41:08 +09:00
Yuichi Nishiwaki 12fb80b857 allow multiple identifier aliasing 2014-07-21 16:33:18 +09:00
Yuichi Nishiwaki 72422343c0 s/lib->senv/lib->env/g 2014-07-20 15:30:48 +09:00
Yuichi Nishiwaki 7a2f8abd9c rewrite let-syntax in scheme 2014-07-20 14:55:17 +09:00
Yuichi Nishiwaki 95a3f8880c disallow non-symbol objects at places where symbol is required 2014-07-20 13:52:48 +09:00
Yuichi Nishiwaki 1b104a00a7 add macroexpand-1 2014-07-20 13:16:50 +09:00
Yuichi Nishiwaki c43120077c remove internal defmacro expander 2014-07-20 11:15:12 +09:00
Yuichi Nishiwaki 6a038bc926 change init_contrib API 2014-07-20 09:36:18 +09:00
Sunrim KIM (keen) 79afb22833 fix a bug of plus reader 2014-07-19 16:47:33 +09:00
Yuichi Nishiwaki 34f7497f4f Merge branch 'memq-in-c'
Conflicts:
	piclib/prelude.scm
2014-07-19 16:15:02 +09:00
Yuichi Nishiwaki ad2434cde7 implement memv and assv with C 2014-07-19 12:51:19 +09:00
Yuichi Nishiwaki a2c00017ea implement memq and assq with c 2014-07-19 12:48:27 +09:00
Yuichi Nishiwaki 9d05ab2629 s/rapid_count/c/g 2014-07-19 12:24:38 +09:00
Yuichi Nishiwaki e41cbc6f33 remove unused guard clause 2014-07-19 12:18:23 +09:00
Yuichi Nishiwaki 619fe8e15e use str_equal_p and blob_equal_p 2014-07-19 12:14:32 +09:00
Yuichi Nishiwaki d295653d20 more style fixes 2014-07-19 12:14:06 +09:00
Yuichi Nishiwaki a2f628d240 style fixes 2014-07-19 12:02:42 +09:00
Yuichi Nishiwaki 04d2369c2e Merge pull request #118 from KeenS/equal
vectors, blobs, strings with equal contets are equal
2014-07-19 11:58:05 +09:00
Yuichi Nishiwaki 9cefeeb423 expect returns as early as possible. read_directive might have missed a newline
in unmatched character that has consumed by expect
2014-07-19 11:51:37 +09:00
Yuichi Nishiwaki 3f8592772f error handling on error while reading char literal 2014-07-19 11:50:28 +09:00
Yuichi Nishiwaki 8d623da163 refactor read_directive 2014-07-19 11:50:11 +09:00
Yuichi Nishiwaki 091dc9a668 Merge pull request #169 from KeenS/directive-reader
Ignore shebang only when it's at the first line and allow reader directi...
2014-07-19 11:27:56 +09:00
Yuichi Nishiwaki ccd457544d detail error message on macroexpand error 2014-07-19 11:21:13 +09:00
Yuichi Nishiwaki d6b6376408 add pic_senv_new 2014-07-19 01:42:06 +09:00
Yuichi Nishiwaki baeb5f6174 s/senv->renames/senv->map/g 2014-07-19 01:42:06 +09:00
Yuichi Nishiwaki 684f12f22d Merge pull request #168 from KeenS/pipe-reader
allow pipe syntax
2014-07-18 22:27:08 +09:00
Sunrim KIM (keen) a50d3da569 follow completely @wasabiz's code 2014-07-18 16:02:09 +09:00
Sunrim KIM (keen) bbeee8f10e change directive reader to ignore shebang 2014-07-18 16:00:08 +09:00
Sunrim KIM (keen) c440629dbf add error check 2014-07-18 15:47:36 +09:00
Sunrim KIM (keen) 2c1209ba63 remove redundant brace following review 2014-07-18 15:44:29 +09:00
Yuichi Nishiwaki 4fad8f6f3e all float numbers can be considered inexact rational numbers 2014-07-18 11:56:22 +09:00
Yuichi Nishiwaki a867991b7e remove rLETREC_SYNTAX 2014-07-18 11:51:13 +09:00
Yuichi Nishiwaki b50f5fc54f remove sLETREC_SYNTAX 2014-07-18 11:50:08 +09:00
Sunrim KIM (keen) ae217ae046 Merge branch 'master' into equal
Conflicts:
	src/bool.c
2014-07-18 00:55:02 +09:00
Sunrim KIM (keen) b373ec433b ensure to correctly terminate hex string with non-hex char(';') 2014-07-17 22:23:06 +09:00
Sunrim KIM (keen) fe30beadf1 Ignore shebang only when it's at the first line and allow reader directives at other places whlile ignores them for now 2014-07-17 21:53:41 +09:00
Sunrim KIM (keen) 295d7fde31 allow pipe syntax 2014-07-17 21:52:15 +09:00
Sunrim KIM (keen) 01b086fb61 fix a bug of `string-copy!` with same dist and src 2014-07-17 20:47:13 +09:00
Yuichi Nishiwaki 2758c55e3e remove box.h include 2014-07-17 16:41:00 +09:00
Yuichi Nishiwaki 32174d7855 remove box 2014-07-17 16:38:18 +09:00
Yuichi Nishiwaki c601dbf27e rename pic_proc_cv_ref to pic_attr_ref 2014-07-17 16:31:26 +09:00
Yuichi Nishiwaki 4714df48f0 s/pic_proc_attr/pic_attr/g 2014-07-17 16:28:36 +09:00
Yuichi Nishiwaki cb3c4e8e22 remove use of pic_proc_cv_init 2014-07-17 16:26:15 +09:00
Yuichi Nishiwaki f46114ca03 [experimental] use attributes for cv implementation 2014-07-17 16:24:48 +09:00
Yuichi Nishiwaki 98bb47dfb6 remove pic_papply 2014-07-17 16:24:47 +09:00
Yuichi Nishiwaki 0fb9e18735 cxt objects are no longer used 2014-07-17 16:14:14 +09:00
Yuichi Nishiwaki 6104a69e2b generate identifier for unbound symbol in context-free 2014-07-17 16:10:38 +09:00
Yuichi Nishiwaki 6cc37281d6 remove pic_tt_sc type 2014-07-17 13:59:21 +09:00
Yuichi Nishiwaki 8781b9a6aa publish pic_identifier_p and pic_identifier_eq_p 2014-07-17 13:58:45 +09:00
Yuichi Nishiwaki bb9be2c628 remove c impl of make-syntactic-closure 2014-07-17 13:45:09 +09:00
Yuichi Nishiwaki f4d68d691b remove c impls of ir/er macros 2014-07-17 13:44:18 +09:00
Yuichi Nishiwaki 378b5bb6a8 dictionary-has? was missing 2014-07-17 11:30:58 +09:00
Yuichi Nishiwaki b68813823f improve pic_get_args error message 2014-07-17 11:30:44 +09:00
Yuichi Nishiwaki 9e7b4da56c add make-identifier function 2014-07-17 10:21:00 +09:00
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