Commit Graph

502 Commits

Author SHA1 Message Date
Yuichi Nishiwaki 4a2cb90095 move pic_try/pic_catch macros to error.h 2014-03-24 12:30:21 +09:00
Yuichi Nishiwaki d5d721f9dd pic_vtype should not evaluate the argument twice 2014-03-24 10:55:03 +09:00
Yuichi Nishiwaki 222e3618ee use uint**_t for nan-boxing 2014-03-24 10:49:20 +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 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 12852b0628 s/cv_num/capturec/g 2014-03-22 19:13:07 +09:00
Yuichi Nishiwaki 9a3ff987af define pic_push/pic_pop macro in pair.h 2014-03-21 12:36:46 +09:00
Yuichi Nishiwaki cfde253f26 split xvect module 2014-03-20 23:09:45 +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 e9d5fb3ab5 remove redundant prefixes 2014-03-19 17:55:52 +09:00
Yuichi Nishiwaki a20356952b refactor GENSYM macro 2014-03-19 17:52:54 +09:00
Yuichi Nishiwaki 0b7597b80b reafactor noreturn macro 2014-03-19 17:45:35 +09:00
Yuichi Nishiwaki 8625f75470 move utility macros to picrin/util.h 2014-03-19 17:43:53 +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 8598042deb pic_list_p don't need to take pic_state *. 2014-03-16 23:12:07 +09:00
Yuichi Nishiwaki 495be09d8a [bugfix] could not explicitly disable readline on some environment where libreadline
is installed
2014-03-15 21:22:53 +09:00
Yuichi Nishiwaki 68ea22f6eb add pic_blk_exit 2014-03-10 01:51:27 +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 f0367d95a0 cleanup 2014-03-04 23:58:07 +09:00
Yuichi Nishiwaki f776907550 pic_error is obsoleted 2014-03-04 00:44:13 +09:00
Yuichi Nishiwaki 4bf2262605 pic_alloc is the right name, not pic_malloc 2014-03-04 00:30:11 +09:00
Yuichi Nishiwaki d8d34353aa cleanup 2014-03-04 00:29:00 +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 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 464925d220 refactor pic_for_each 2014-03-03 22:21:34 +09:00
Yuichi Nishiwaki 34bcabf5bc s/pic_trampoline/pic_apply_trampoline/g 2014-03-03 22:19:27 +09:00
Yuichi Nishiwaki 69ac02f836 add pic_try/pic_catch macros 2014-03-02 22:36:32 +09:00
Yuichi Nishiwaki 887b6a9f91 refactor pic_deflib 2014-03-02 22:23:57 +09:00
Yuichi Nishiwaki 366b6fd7f5 remove include guard written in config.h. 2014-03-01 22:15:14 +09:00
Yuichi Nishiwaki 0cbc9e6c92 refactor config.h. you can predefine config macros via -Dmacro flag in
compile line
2014-03-01 22:13:47 +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 6e7567a598 my own read impl. 2014-03-01 20:21:44 +09:00
Yuichi Nishiwaki 0b8c7a8ccb add pic_intern 2014-03-01 00:13:11 +09:00
Yuichi Nishiwaki 9a8569ff87 On some environments stdint.h seems not be included implicitly... 2014-02-27 22:17:18 +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 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 6c065e92c0 add type alias for pic_blob 2014-02-22 15:22:02 +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 ca4276afc7 add type aliases for some important types 2014-02-21 17:36:05 +09:00
Yuichi Nishiwaki c28c45961b rename pic_symbol_value to pic_sym_value 2014-02-21 17:35:21 +09:00
Yuichi Nishiwaki 8f5569d505 xstdout now handles its own buffer. flush prompts before printing result expression. 2014-02-21 01:28:38 +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 7217baee0a add coarity register to the VM 2014-02-20 16:33:18 +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 a078266c2d add pic_raise_continuable 2014-02-18 16:58:51 +09:00
Yuichi Nishiwaki 3a8aa3e728 publish format function family 2014-02-15 19:53:16 +09:00
Yuichi Nishiwaki 923a762411 save symbol names in xhash 2014-02-13 00:14:03 +09:00
Yuichi Nishiwaki 38c840c805 workaround for arena overflow 2014-02-12 23:05:52 +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 93a259870c replace pic_syntax_new with pic_syntax_new_macro 2014-02-12 10:52:33 +09:00
Yuichi Nishiwaki 013d734033 remove unused constant 2014-02-12 10:39:35 +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 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 b8d4461401 add a comment 2014-02-09 13:35:55 +09:00
Yuichi Nishiwaki e52614a51e dont write argument name on prototype 2014-02-08 02:48:38 +09:00
Yuichi Nishiwaki d100dde6b1 Merge branch 'master' into trampoline 2014-02-07 10:05:31 +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 b50006381b remove unnecessary argument names in prototype 2014-02-06 14:23:29 +09:00
Yuichi Nishiwaki 2ef426d90b add trampoline helper 2014-02-06 14:22:29 +09:00
Yuichi Nishiwaki dd547ac093 add OP_NOP 2014-02-04 16:58:50 +09:00
Yuichi Nishiwaki 7837a30d53 add OP_NOP 2014-02-04 16:20:17 +09:00
Yuichi Nishiwaki a3b0fa701b rename pic_callinfo.pc -> ip 2014-02-04 10:46:36 +09:00
Yuichi Nishiwaki 018db310d3 save instruction pointer to pic_state 2014-02-04 10:40:03 +09:00
Yuichi Nishiwaki 0592c977da GC_DEBUG off by default 2014-01-19 01:14:45 -08:00
Yuichi Nishiwaki 122c09d91e add logic flaw gate in pic_type_repr 2014-01-19 00:55:19 -08:00
Yuichi Nishiwaki ec00ec0257 add pic_test macro 2014-01-19 00:33:33 -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 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 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 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 b19631f18f use submodule 2014-02-01 22:16:09 +09:00
Yuichi Nishiwaki d48ae9227a impl strdup and strndup by myself 2014-02-01 19:31:59 +09:00
Yuichi Nishiwaki a4a63314a9 add pic_for_each macro 2014-02-01 16:04:57 +09:00
Yuichi Nishiwaki 47f4060086 rewrite deflibrary using gensym 2014-02-01 15:41:30 +09:00
Yuichi Nishiwaki c789200f5b add gensym macro 2014-02-01 15:40:43 +09:00
Yuichi Nishiwaki 3b53cc8a6b get struct pic_code diet 2014-01-31 03:14:02 +09:00
Yuichi Nishiwaki 53fe18a94e delete OP_PUSHFLOAT 2014-01-31 03:11:28 +09:00
Yuichi Nishiwaki d70d96cb34 cosmetic changes 2014-01-31 03:04:00 +09:00
Yuichi Nishiwaki 9172dc9f31 remove old pic_symbol_p macro 2014-01-31 03:03:36 +09:00
Yuichi Nishiwaki 52fc58b55e use a portable way: append 'static' designator everywhere 'inline' is added 2014-01-31 02:58:53 +09:00
Yuichi Nishiwaki beca90cdf0 remove forward declarations of inline functions. gcc provide inline keyword by
their own way with major differences from C99.
2014-01-31 02:53:09 +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 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 223c531a3c add UNUSED macro 2014-01-30 18:11:41 +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 6de7d610ee Merge branch 'analyzer' 2014-01-30 13:28:44 +09:00
Yuichi Nishiwaki b1ccc54151 rename include guards 2014-01-23 16:47:13 +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 5dd66cbcd1 replace list-copy and make-list impls by scheme with ones by C 2014-01-22 22:37:27 +09:00
Yuichi Nishiwaki 74088d0130 replace list-set! impl with C impl 2014-01-22 21:35:13 +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 799e26cff0 increate gc header alignment size 2014-01-22 20:44:55 +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
OGINO Masanori 9be7ffc5fc Define the type of marking flags as unsigned int.
We could define it as _Bool since we are going to use C99, but unsigned
int is more portable (even in C89!) and extensible (when we decide to
use tri-color marking GC.)

Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
2014-01-20 14:31:01 +09: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 c85e07b7ee shrink default pool/irep size 2014-01-18 23:02:08 +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 5e616e7774 store irep objects inside parent irep object 2014-01-18 21:48:50 +09:00
Yuichi Nishiwaki 53e3e019de ccapa property no longer used 2014-01-18 21:03:12 +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 4522dd47af do not put includes in header, but put it in c file 2014-01-18 12:43:38 +09:00
Yuichi Nishiwaki 1aa47ad45a add 'extern "C"' to all header files 2014-01-18 12:41:39 +09:00
Yuichi Nishiwaki ca068f560b clarify license information 2014-01-17 20:58:31 +09:00