Commit Graph

393 Commits

Author SHA1 Message Date
Yuichi Nishiwaki 6f32cbdea3 handle end-of-file while reading file object 2014-01-16 19:56:45 +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 ce21353d50 impl pic_fwrite with simple buffering 2014-01-16 18:39:03 +09:00
Yuichi Nishiwaki eca456f875 add IO buffering (setvbuf) 2014-01-16 18:36:47 +09:00
Yuichi Nishiwaki 392549b315 replace old stdio functions with picrin's wrapper impls 2014-01-16 18:32:05 +09:00
Yuichi Nishiwaki 86eb4bb64b add string IO wrapper function prototypes 2014-01-16 18:30:03 +09:00
Yuichi Nishiwaki 8ce83bdbe7 declare some low-level file IO operation methods 2014-01-16 18:28:37 +09:00
Yuichi Nishiwaki 63d23bdeda [WIP] add generic file object constructor (pic_funopen) 2014-01-16 18:27:05 +09:00
Yuichi Nishiwaki 1cb9b0347d [WIP] replace FILE* with my own FILE structure (pic_file *) 2014-01-16 18:24:25 +09:00
Yuichi Nishiwaki 8ad90e8c17 add missing trailing comma 2014-01-16 18:21:00 +09:00
Yuichi Nishiwaki 9ecbd9e7bb publish pic_load 2014-01-13 14:51:52 +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 1c14feffa4 add accessors of stdio ports 2014-01-13 00:51:19 +09:00
Yuichi Nishiwaki d9911cabc8 publish pic_eof_object() 2014-01-13 00:49:25 +09:00
Yuichi Nishiwaki 6b808354c0 global variable accessors don't require library object 2014-01-13 00:45:49 +09:00
Yuichi Nishiwaki 11ead27614 wrapper/unwrapper for var-proc conversion 2014-01-12 16:08:27 +09:00
Yuichi Nishiwaki fadcad2d7f C APIs to modify global varaibles 2014-01-12 16:06:57 +09:00
Yuichi Nishiwaki 944111ba09 make gensym API public 2014-01-12 16:03:36 +09:00
Yuichi Nishiwaki 68f0eb97c9 pic_symbol_p macro is replaced with pic_sym_p 2014-01-12 13:15:41 +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 9b02247082 initial explicit renaming macro prototype 2014-01-09 16:34:22 +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 88ce10e9fe add defvar declaration (just a prototype. no definition) 2014-01-09 00:36:44 +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 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
Yuichi Nishiwaki 76f5cbf0b3 ENDLIBRARY requires a trailing semicolon 2013-12-10 07:26:43 -08: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 01e60b5d8e add pic_export and pic_export_as 2013-12-07 20:44:39 -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 0115ede4de change APIs of library functions 2013-12-07 07:11: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 b70aa8a21c s/PICCONF/config/g 2013-12-07 07:03:30 -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 ef04e3f02c add pic_core_syntactic_env 2013-12-06 18:04:36 +09:00
Yuichi Nishiwaki 00514dcd15 GC_STRESS off by default 2013-12-03 11:54:10 +09:00
Yuichi Nishiwaki 62f0a50faf set bitfield to union header.mark 2013-12-03 11:53:36 +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 a43e3248e8 calloc should take size_t 2013-12-01 12:44:43 +09:00
Yuichi Nishiwaki 21f2c58a53 [gc][bugfix] sweeping failed when the heap gets completely
exhausted (i.e. all blocks' size are zero)
2013-11-29 12:10:10 +09:00
Yuichi Nishiwaki 8e84242626 increase default heap size 2013-11-28 18:38:25 +09:00
Yuichi Nishiwaki 2a32de55b6 increase default heap size 2013-11-28 12:58:02 +09:00
Yuichi Nishiwaki f6506a4828 turn off PIC_NAN_BOXING flag by default (for 32bit env) 2013-11-27 06:32:07 -08:00
Yuichi Nishiwaki 1ab588d21f added hygienic macro facility! Fooo! 2013-11-27 15:58:28 +09:00
Yuichi Nishiwaki 78cafe3db7 add make-syntactic-closure function 2013-11-27 15:04:44 +09:00
Yuichi Nishiwaki ab74920a6f add pic_sc (syntactic closure) structure 2013-11-27 15:04:02 +09:00
Yuichi Nishiwaki c1788d31b0 Merge branch 'master' into syntactic-closure 2013-11-27 13:06:37 +09:00
Yuichi Nishiwaki bbe3e990e4 Revert "pluggable heap pages"
This reverts commit e6523730a4.
2013-11-27 13:04:12 +09:00
Yuichi Nishiwaki c336a354e4 publish pic_defmacro as a public API 2013-11-26 09:09:15 -08:00
Yuichi Nishiwaki be311cb96f replace old macroexpand facility with new renamer implementation 2013-11-26 08:43:58 -08:00
Yuichi Nishiwaki 1f3f7c99a2 save macro procesures in each syntax object 2013-11-26 08:42:13 -08:00
Yuichi Nishiwaki 3d1f74d8f5 add 'define-macro' core syntax 2013-11-26 08:41:01 -08:00
Yuichi Nishiwaki f6bc51d16d add xlen/xcapa member to pic_senv 2013-11-26 08:36:58 -08:00
Yuichi Nishiwaki a32473ae92 add core syntaces in pic_open 2013-11-26 08:35:35 -08:00
Yuichi Nishiwaki a2e1f21b29 add global identifier table 2013-11-26 08:30:30 -08:00
Yuichi Nishiwaki c59d8f601b add PIC_TT_SENV and PIC_TT_SYNTAX 2013-11-26 04:05:02 -08:00
Yuichi Nishiwaki 3c65025394 add macro.h 2013-11-26 04:03:52 -08:00
Yuichi Nishiwaki bf6a337a5f add pic_cxxr functions 2013-11-26 02:42:13 -08:00
Yuichi Nishiwaki 72cf45d4ea add `new_uniq_sym` function 2013-11-25 23:38:39 -08:00
Yuichi Nishiwaki 579735d16e s/heap_page/pic_heap/g 2013-11-22 07:19:31 -08:00
Yuichi Nishiwaki e6523730a4 pluggable heap pages 2013-11-22 07:12:03 -08:00
Yuichi Nishiwaki 663081921d shrink default heap size 2013-11-22 06:38:41 -08:00
Yuichi Nishiwaki 1be72f1e18 rewrite gc! 2013-11-22 06:38:29 -08:00
Yuichi Nishiwaki 4b326e4f6e add new compilation flag GC_DEBUG_DETAIL 2013-11-22 03:29:05 -08:00
Yuichi Nishiwaki e49ddbd13b [bugfix] makeing a shared library failure under the version 3 of bison 2013-11-18 20:47:20 +09:00
Yuichi Nishiwaki 6f94202e13 s/pic_expand/pic_macroexpand/g 2013-11-18 16:36:44 +09:00
Yuichi Nishiwaki 6ac3055816 change return type of pic_str_new to struct pic_string * 2013-11-18 00:28:42 +09:00
Yuichi Nishiwaki d4188e0969 add error function 2013-11-17 18:16:03 +09:00
Yuichi Nishiwaki fdc9bfea4e initial exception handling support 2013-11-17 17:25:26 +09:00
Yuichi Nishiwaki 737f916a8c add pic_errorf 2013-11-17 17:23:13 +09:00
Yuichi Nishiwaki 38988b7770 add global exception handler stack 2013-11-17 16:02:58 +09:00
Yuichi Nishiwaki c79e08632c when restoring continuation sp and ci must be re-allocated 2013-11-17 15:58:53 +09:00
Yuichi Nishiwaki e94aaffd34 shrink default arena size! 2013-11-15 19:54:47 +09:00
Yuichi Nishiwaki f506eac3dd add pic_obj_alloc_unsafe; preparation for yy_arena 2013-11-15 19:31:17 +09:00
Yuichi Nishiwaki 9662ab30ec add pic_vec_extend_ip (for internal API) 2013-11-15 19:30:25 +09:00
Yuichi Nishiwaki ae9d1621d3 rename picconf.h to config.h 2013-11-15 16:52:08 +09:00
Yuichi Nishiwaki 2b570edd52 change default compile flags 2013-11-15 16:12:58 +09:00
Yuichi Nishiwaki 984588b1b6 add reference count GC for pic_block objects 2013-11-15 11:51:58 +09:00
Yuichi Nishiwaki c22f566c06 arena stash can be statically allocated 2013-11-15 10:54:56 +09:00
Yuichi Nishiwaki 223e873ff0 accept empty lines in repl 2013-11-13 17:37:05 +09:00
Yuichi Nishiwaki d6c377a33b native support for dynamic-wind 2013-11-11 18:04:21 +09:00
Yuichi Nishiwaki 8b484b69d7 rename fields in struct pic_cont 2013-11-11 10:14:42 +09:00
Yuichi Nishiwaki 9a1e7d0ab1 extend the heap 2013-11-11 08:00:12 +09:00
Yuichi Nishiwaki 8a85e62472 add a note about undef values 2013-11-09 14:27:50 +09:00
Yuichi Nishiwaki 64ae8bd7b0 initial call/cc support 2013-11-09 14:14:25 +09:00
Yuichi Nishiwaki 0d28f246de add pic_get_proc 2013-11-09 14:12:59 +09:00
Yuichi Nishiwaki 84c1156b9d add unary minus operator 2013-11-07 12:17:37 +09:00
Yuichi Nishiwaki ae376b4903 fix broken pic_float_p 2013-11-07 12:17:16 +09:00
Yuichi Nishiwaki 27dc840118 eq? predicate supports nan-boxing 2013-11-06 16:06:31 +09:00
Yuichi Nishiwaki ac14a2271b fix a bug in pic_false_value 2013-11-05 21:08:32 +09:00
Yuichi Nishiwaki d9cb5d4eee nan-boxing support 2013-11-05 20:33:24 +09:00
Yuichi Nishiwaki e056586ab9 add pic_init_value macro 2013-11-05 00:42:44 -05:00
Yuichi Nishiwaki 46fccff806 cleanup 2013-11-05 00:30:03 -05:00
Yuichi Nishiwaki 5850699d75 force indirect reference to pic_value vtype 2013-11-04 23:37:08 -05:00
Yuichi Nishiwaki aebf7f00f7 initial bytevector support 2013-11-04 22:38:23 -05:00
Yuichi Nishiwaki 1675ad9f52 initial char support 2013-11-04 21:37:18 -05:00
Yuichi Nishiwaki 8aca1ebc96 rename pic_code.u.c -> pic_code.u.r 2013-11-04 21:32:09 -05:00
Yuichi Nishiwaki 86458359e3 reduce allocation size when creating pic_env object in OP_CALL 2013-11-04 20:23:06 -05:00
Yuichi Nishiwaki d0602303e3 s/num_val/valuec/g 2013-11-04 16:07:36 -05:00
Yuichi Nishiwaki c24560de12 GC_STRESS default off 2013-11-04 15:57:12 -05:00
Yuichi Nishiwaki ee92e523b4 fix grammatical error 2013-11-04 15:49:54 -05:00
Yuichi Nishiwaki 81aea6b3ba extend default heap size 2013-11-01 18:57:18 +09:00
Yuichi Nishiwaki 8007baf011 [bugfix] allocate space to hold closed rest args variable in pic_env 2013-11-01 18:55:23 +09:00
Yuichi Nishiwaki 98a41314fe parser returns multiple expressions in a call 2013-10-30 17:06:01 +09:00
Yuichi Nishiwaki 6fcce1cd23 cleanup 2013-10-30 16:43:15 +09:00
Yuichi Nishiwaki b7e55b043f introduce legacy macros 2013-10-30 16:42:44 +09:00
Yuichi Nishiwaki 979a1dd80b add make release command 2013-10-30 16:36:21 +09:00
Yuichi Nishiwaki 1e4ff3276a add pic_type_repr 2013-10-30 15:37:33 +09:00
Yuichi Nishiwaki f7885a423f extend default arena size 2013-10-30 10:42:18 +09:00
Yuichi Nishiwaki e4b913cb15 add OP_TAILCALL 2013-10-30 10:03:46 +09:00
Yuichi Nishiwaki 46e8eb0bcd cleanup 2013-10-29 22:16:56 +09:00
Yuichi Nishiwaki 759c9eb55c bugfix: move env related macros from port.h to proc.h 2013-10-29 16:47:29 +09:00
Yuichi Nishiwaki 073f45666a write function should be print even env objects 2013-10-29 16:44:38 +09:00
Yuichi Nishiwaki a0a8a94abc add gc stress test 2013-10-29 16:40:25 +09:00
Yuichi Nishiwaki edcd060a8a initial vector support 2013-10-29 15:51:37 +09:00
Yuichi Nishiwaki 49072bf5e4 [bugfix] fix closure issue 2013-10-29 10:16:56 +09:00
Yuichi Nishiwaki 1d9410638d remove unused auxuality data field proc->aux 2013-10-29 02:23:14 +09:00
Yuichi Nishiwaki c2b9331083 fix bad style macro definitinos 2013-10-29 02:17:55 +09:00
Yuichi Nishiwaki 0bf0c29af2 fix a typo 2013-10-29 02:12:37 +09:00
Yuichi Nishiwaki 63b52991da introduce immediate symbol value 2013-10-29 02:11:31 +09:00
Yuichi Nishiwaki 4fa2bad5fa add pic_apply function (and remove pic_run) 2013-10-28 17:45:13 +09:00
Yuichi Nishiwaki c77b8be011 insert type checks in pic_get_args 2013-10-28 00:40:10 +09:00
Yuichi Nishiwaki d3df6dcbf2 support exact integer 2013-10-28 00:21:24 +09:00
Yuichi Nishiwaki f192c96650 parse-from-file facility 2013-10-27 18:38:41 +09:00
Yuichi Nishiwaki f3041b7ebc support rest arguments 2013-10-27 18:13:36 +09:00
Yuichi Nishiwaki 83de938342 add some port predicates 2013-10-24 22:56:04 +09:00
Yuichi Nishiwaki 7bb27295c0 warn global redefinition 2013-10-24 22:29:40 +09:00
Yuichi Nishiwaki 331fdaba4c warn various kinds of syntax errors during codegen 2013-10-24 21:55:07 +09:00
Yuichi Nishiwaki 9cb28f3156 add OP_EQ/OP_LT/OP_LE 2013-10-24 21:10:13 +09:00
Yuichi Nishiwaki 411395995c s/env.numcv/env.num_val/g 2013-10-24 03:41:48 +09:00
Yuichi Nishiwaki a926c54be3 warn invalid application 2013-10-24 03:38:29 +09:00
Yuichi Nishiwaki d75b624b4a add OP_LSET and OP_CSET 2013-10-24 03:14:32 +09:00
Yuichi Nishiwaki 4b31901bce add OP_CREF 2013-10-24 02:04:49 +09:00
Yuichi Nishiwaki bd851318d1 add pic_env struct 2013-10-24 02:02:07 +09:00
Yuichi Nishiwaki ec0f0d3572 add pic_calloc 2013-10-24 00:32:03 +09:00
Yuichi Nishiwaki 0fd1bbeae9 throw wrong number of arguments error for user defined lambda call 2013-10-24 00:09:40 +09:00
Yuichi Nishiwaki 035de0016b evaluate arguments in normal (lexical) order 2013-10-23 15:55:42 +09:00
Yuichi Nishiwaki dd7958c3d6 reader supports quasiquote abbrev 2013-10-23 12:39:48 +09:00
Yuichi Nishiwaki dd3adf30e6 use xhash to manage scopes during codegin 2013-10-22 22:22:35 +09:00
Yuichi Nishiwaki 5da1b175a7 extend default heap size 2013-10-22 18:30:05 +09:00
Yuichi Nishiwaki 779199d571 add many many number primitive functions 2013-10-22 17:24:07 +09:00
Yuichi Nishiwaki b45d7d9592 add eof-object type 2013-10-22 16:02:20 +09:00
Yuichi Nishiwaki 176d167de8 add some file open functions 2013-10-22 15:44:03 +09:00
Yuichi Nishiwaki 6245ec7e05 finalize port objects when collected 2013-10-22 15:40:36 +09:00
Yuichi Nishiwaki 0c1babb6c5 add pic_reverse 2013-10-22 00:19:43 +09:00
Yuichi Nishiwaki 114d6b708b since pic_string is a first-class value, move it to value.h 2013-10-21 17:38:05 +09:00
Yuichi Nishiwaki f5154625ba add aux object field to proc object 2013-10-21 17:35:14 +09:00
Yuichi Nishiwaki 86177b7c4e pic_get_args supports optional argument 2013-10-21 13:57:02 +09:00
Yuichi Nishiwaki db1f977600 add pic_list_p 2013-10-21 12:03:35 +09:00
Yuichi Nishiwaki adab797391 add system.c 2013-10-21 11:51:02 +09:00
Yuichi Nishiwaki 7dbb2c6de4 cleanup 2013-10-21 11:44:23 +09:00
Yuichi Nishiwaki ba78a00d5c take care of escaped characters in string 2013-10-21 11:12:34 +09:00
Yuichi Nishiwaki 8f4788ca27 read strings 2013-10-21 10:48:03 +09:00
Yuichi Nishiwaki a49675c322 add OP_PUSHCONST 2013-10-21 09:29:56 +09:00
Yuichi Nishiwaki 5e43fe58fe add string type 2013-10-21 08:48:55 +09:00
Yuichi Nishiwaki 05eb62cc4d do not abort when meet a compilation error 2013-10-20 18:17:12 +09:00
Yuichi Nishiwaki 4f8aa03b24 clarify the meanings of error functions 2013-10-20 17:41:48 +09:00
Yuichi Nishiwaki 7322271d65 intern symbols using hash table 2013-10-20 14:05:48 +09:00
Yuichi Nishiwaki bde09e063a add pic_acons function 2013-10-20 14:04:39 +09:00
Yuichi Nishiwaki 50b9c2bd97 add pair.h 2013-10-20 12:34:57 +09:00
Yuichi Nishiwaki bcde104dd1 cleanup 2013-10-20 04:18:52 +09:00
Yuichi Nishiwaki afc0184d10 extend default heap size 2013-10-20 04:04:06 +09:00
Yuichi Nishiwaki cfae6f3c59 add OP_NILP 2013-10-20 03:53:02 +09:00
Yuichi Nishiwaki 78f301794a add OP_CAR/OP_CDR 2013-10-20 03:48:06 +09:00
Yuichi Nishiwaki 5e96d05fd1 insert OP_POP into sequential operation 2013-10-18 02:29:11 +09:00
Yuichi Nishiwaki e7a5784fd7 allocate global variable entry area by malloc and save it into pic_state 2013-10-18 00:15:15 +09:00
Yuichi Nishiwaki c92a672e01 change the stack layout: to hold proc object on the stack when procedure
call is invoked
2013-10-17 23:29:18 +09:00
Yuichi Nishiwaki 1646de5e8d initial port commit 2013-10-17 22:42:47 +09:00
Yuichi Nishiwaki e87f632327 writer writes lists in short form 2013-10-17 22:42:20 +09:00
Yuichi Nishiwaki b58c6d1e8b remove test_object_creation from main.c 2013-10-17 21:00:54 +09:00
Yuichi Nishiwaki 1a6c8a3cca support multi-line input in REPL 2013-10-17 20:48:50 +09:00
Yuichi Nishiwaki 5671c43a77 do not abort when finding syntax error 2013-10-17 17:57:12 +09:00
Yuichi Nishiwaki d9e47bdd05 add begin syntax 2013-10-17 17:54:28 +09:00
Yuichi Nishiwaki 17f0c928da add readline support 2013-10-17 17:08:33 +09:00
Yuichi Nishiwaki 4e83ad4843 s/pic_instruction/pic_opcode/g 2013-10-17 14:18:32 +09:00
Yuichi Nishiwaki fc9e2401a3 add some comments on picconf.h 2013-10-17 13:55:00 +09:00
Yuichi Nishiwaki 7925f2b502 implement direct threading VM 2013-10-17 13:54:48 +09:00
Yuichi Nishiwaki 6c903db758 if syntax 2013-10-16 17:42:47 +09:00
Yuichi Nishiwaki 87dce75c78 add local variables 2013-10-16 17:20:53 +09:00
Yuichi Nishiwaki 5c8d81e8b5 support closure call 2013-10-16 15:30:52 +09:00
Yuichi Nishiwaki 9b7fdb0725 undef object must not appear in the user land 2013-10-16 13:24:08 +09:00
Yuichi Nishiwaki ff646e05dd support boolean values 2013-10-16 13:17:01 +09:00
Yuichi Nishiwaki f6eddbc6d3 save all ireps into pic_state
in order to decrease the stress GC will get, restore irep structures
under pic_state instead of under each procs and making it collectable object
2013-10-16 11:53:25 +09:00
Yuichi Nishiwaki c593a46a62 add OP_LAMBDA (lambda object creation) 2013-10-16 11:32:30 +09:00
Yuichi Nishiwaki 19abedf746 warn when a closure is applied 2013-10-16 11:28:57 +09:00