Commit Graph

434 Commits

Author SHA1 Message Date
Yuichi Nishiwaki bcf53b9883 reimplement core syntaxes in scheme 2015-06-27 17:43:42 +09:00
Yuichi Nishiwaki 8c6496ef24 remvoe dead code 2015-06-27 16:44:05 +09:00
Yuichi Nishiwaki ac094a9477 cosmetic changes 2015-06-27 16:33:31 +09:00
Yuichi Nishiwaki df645b68ae more optimization 2015-06-27 15:59:22 +09:00
Yuichi Nishiwaki 03792f85de fast compile 2015-06-27 15:30:17 +09:00
Yuichi Nishiwaki 4a8e59e04b don't run malloc while anazlyze/codegen 2015-06-27 14:23:31 +09:00
Yuichi Nishiwaki 8b550de06a [bugfix] port leaks 2015-06-26 23:45:56 +09:00
Yuichi Nishiwaki 8e90517224 [bugfix] port should be closed properly 2015-06-26 23:06:52 +09:00
Yuichi Nishiwaki d8e00f5725 don't malloc duplicated cstring 2015-06-26 02:32:59 +09:00
Yuichi Nishiwaki 33dfe2b5cc change pic_open interface 2015-06-26 02:13:48 +09:00
Yuichi Nishiwaki 8587fe6dfc fix benz's issue 29 2015-06-25 22:33:17 +09:00
Yuichi Nishiwaki df13e35044 fix dictionary conviersion procedures 2015-06-25 22:29:27 +09:00
Yuichi Nishiwaki b71c9dcbff cosmetic changes 2015-06-25 18:51:21 +09:00
Yuichi Nishiwaki cc9dd2aa30 saner output from write
No more insane output such as (#0=(1 2 3) #0#).
2015-06-25 18:43:06 +09:00
Yuichi Nishiwaki 032e40e963 cleanup write_core 2015-06-25 17:50:20 +09:00
Yuichi Nishiwaki 37902d38f7 cleanup traverse_shared 2015-06-25 17:28:48 +09:00
Yuichi Nishiwaki 3004f2106c write supports #' #` #, #,@ 2015-06-25 17:19:34 +09:00
Yuichi Nishiwaki 9db8b33c61 abandon xhash 2015-06-25 07:58:58 +09:00
Yuichi Nishiwaki 42794ebbff use khash for reader 2015-06-25 07:34:10 +09:00
Yuichi Nishiwaki 5cbb44d6b8 use khash for env 2015-06-25 07:26:48 +09:00
Yuichi Nishiwaki d500dd5d76 don't use xhash in codegen 2015-06-25 07:19:11 +09:00
Yuichi Nishiwaki 11ed51b236 use khash for registers 2015-06-25 07:14:29 +09:00
Yuichi Nishiwaki 0fb87449fc use khash for pic->syms 2015-06-25 07:05:41 +09:00
Yuichi Nishiwaki 03a649ed23 use khash in equal? impl 2015-06-25 06:44:45 +09:00
Yuichi Nishiwaki d6edf41305 kh_resize operation never fail 2015-06-25 06:39:13 +09:00
Yuichi Nishiwaki 2e1280ce5c don't use malloc/realloc/free in khash.h 2015-06-25 06:13:20 +09:00
Yuichi Nishiwaki a7475a66fe Merge branch 'master' into khash-kvec 2015-06-25 05:58:12 +09:00
Yuichi Nishiwaki 6b15304d85 [bugfix] ptable consists of registers 2015-06-25 05:56:47 +09:00
Yuichi Nishiwaki 5cf1822813 use khash for dictionary impl 2015-06-25 05:56:15 +09:00
Yuichi Nishiwaki 0daa4febb0 fix #270 2015-06-24 02:17:13 +09:00
Yuichi Nishiwaki f5789c7c6f added c functions to define private varaibles. see discussion on #271 2015-06-24 02:02:26 +09:00
Yuichi Nishiwaki 07fc2bb98e cleanup 2015-06-24 01:13:18 +09:00
Yuichi Nishiwaki f0434a8b37 abandon xvect.h, move on to kvec.h 2015-06-23 22:08:18 +09:00
Yuichi Nishiwaki e2ad39074b cleanup 2015-06-23 04:01:25 +09:00
Yuichi Nishiwaki 777ba0ff6a [bugfix] don't compare continuation objects by pointers. They may be
reused when it reenters the same stack position.
2015-06-23 03:14:00 +09:00
Yuichi Nishiwaki aae1b8792a remove struct pic_picjmp 2015-06-23 03:14:00 +09:00
Yuichi Nishiwaki aa79797334 fix #234 2015-06-22 17:41:17 +09:00
Yuichi Nishiwaki e730a314f4 [bugfix] memory leak of pic_checkpoint 2015-06-22 17:12:19 +09:00
Yuichi Nishiwaki a0323bd5fc print error irritants 2015-06-20 02:34:00 +09:00
Yuichi Nishiwaki 535cd0c21e don't reformat error message because it removes trace info 2015-06-20 02:32:25 +09:00
Yuichi Nishiwaki ad6833ac79 fix #230 2015-06-19 23:34:12 +09:00
Yuichi Nishiwaki 32653df178 cleanup 2015-06-19 21:21:04 +09:00
Yuichi Nishiwaki 7ec81ab1d5 add pic_resolve 2015-06-19 17:31:47 +09:00
Yuichi Nishiwaki 3021e7f2b9 add PIC_ENABLE_STDIO flag 2015-06-19 14:03:52 +09:00
Yuichi Nishiwaki 20cb77bbbe file.h is now stdio.h-free 2015-06-19 05:14:18 +09:00
Yuichi Nishiwaki a0d6c5800c add pic_open_file 2015-06-19 05:00:36 +09:00
Yuichi Nishiwaki cf037f27db remove library-name 2015-06-19 03:31:24 +09:00
Yuichi Nishiwaki 4bc765da65 move include of gc.h 2015-06-19 03:27:03 +09:00
Yuichi Nishiwaki 19c09ba643 move contents of util.h to compat.h 2015-06-19 03:23:07 +09:00
Yuichi Nishiwaki 10f81512d8 don't malloc pic_reader 2015-06-19 03:14:55 +09:00
Yuichi Nishiwaki db0767c931 don't malloc pic->iseq 2015-06-19 03:10:11 +09:00
Yuichi Nishiwaki 78bd3047f8 don't use global mutable variable! 2015-06-19 03:06:57 +09:00
Yuichi Nishiwaki e43a9c7881 pass pic_state object to vtable functions 2015-06-19 02:29:17 +09:00
Yuichi Nishiwaki 3df7d1dd71 use pic_malloc and pic_free in file.c 2015-06-19 02:05:56 +09:00
Yuichi Nishiwaki 2e59b6ab04 rename xfile.[ch] to file.[ch] 2015-06-19 01:11:04 +09:00
Yuichi Nishiwaki d1aa42cd7a [bugfix] double close should be safe 2015-06-19 01:04:04 +09:00
Yuichi Nishiwaki f2e6feea7f assert value bound to current-(input|output|error)-port is port 2015-06-19 00:02:24 +09:00
Yuichi Nishiwaki 0b66447e79 remove port->status property 2015-06-18 23:26:31 +09:00
Yuichi Nishiwaki b4c3e2cc4f small refactoring. use DEFINE_STANDARD_PORT_ACCESSOR macro to define pic_stdxx 2015-06-18 23:15:09 +09:00
Yuichi Nishiwaki 61ff69b968 remove pic->xSTDXX 2015-06-18 22:59:22 +09:00
Yuichi Nishiwaki 1d1210db09 cleanup lib.c 2015-06-17 01:52:20 +09:00
Yuichi Nishiwaki 29a966d678 define export in scheme 2015-06-17 01:44:11 +09:00
Yuichi Nishiwaki 52b03d928c define import in scheme 2015-06-17 00:59:19 +09:00
Yuichi Nishiwaki fa1c619633 define define-library and cond-expand in scheme 2015-06-17 00:14:12 +09:00
Yuichi Nishiwaki 63d3510de8 move features procedure defun to state.c benz 2015-06-17 00:13:00 +09:00
Yuichi Nishiwaki 62b7c1a0f9 warn macro redefinition only when transformer object slot is being overwritten 2015-06-17 00:11:02 +09:00
Yuichi Nishiwaki 490c97cd81 add library-name and current-library 2015-06-17 00:03:52 +09:00
Yuichi Nishiwaki 4f69cb8ec3 eval procedure now takes environment object for the second argument 2015-06-16 22:51:49 +09:00
Yuichi Nishiwaki eef74604d0 add library operators 2015-06-16 22:51:05 +09:00
Yuichi Nishiwaki a88b5e193f remove #. reader 2015-06-16 21:39:41 +09:00
Yuichi Nishiwaki 7dd0e01b70 support (equal? identifier1 identifier2) 2015-06-16 21:13:41 +09:00
Yuichi Nishiwaki cf66d600bb move macroexpander to codegen.c 2015-06-16 21:01:46 +09:00
Yuichi Nishiwaki 85e8d1511b remove defer property from pic_env
explicitly pass deferred lambda list to expand functions
2015-06-16 20:57:18 +09:00
Yuichi Nishiwaki 2e5b66fabd s/macroexpand/expand/g 2015-06-16 20:27:58 +09:00
Yuichi Nishiwaki 2c269b4f0e syntax-quote and syntax-quasiquote should create identifiers at runtime,
not at compile time
2015-06-16 19:16:23 +09:00
Yuichi Nishiwaki 84a3eaee35 change eval interface: eval takes an expression and an environment
macroexpand should be done in the context in which the expansion is
running. As of now I only changed c interface of eval but should change
the scheme interface as well ASAP.
2015-06-16 19:16:06 +09:00
Yuichi Nishiwaki a10ac3b770 rewrite boot.c. add syntax-quote family
[boot.c] (cond) should be expanded into #undefined

update boot.c

[boot.c] bugfix

boot.c bugfix
2015-06-15 02:52:37 +09:00
Yuichi Nishiwaki 25c0eb125e add identifier-variable and identifier-environment 2015-06-15 02:52:37 +09:00
Yuichi Nishiwaki 181d120f09 reader support of (#' #` #, #,@) 2015-06-15 02:52:37 +09:00
Yuichi Nishiwaki 6d80b58060 assume all symbols are bound at the toplevel 2015-06-15 02:52:36 +09:00
Yuichi Nishiwaki 3a59a95960 [WIP] replace macro expander
remove define-syntax, add define-macro instead

saner display when writing identifiers
2015-06-15 02:48:31 +09:00
Yuichi Nishiwaki 454146ab52 s/rXXX/uXXX/g 2015-06-15 02:30:05 +09:00
Yuichi Nishiwaki 015971ffc4 remove define-record-writer 2015-06-15 02:25:09 +09:00
Yuichi Nishiwaki 6c1abe32fe s/registry/register/g 2015-06-15 02:17:27 +09:00
OGINO Masanori 2816f206fb Define GCC_VERSION in util.h temporarily.
Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
2015-06-12 18:59:59 +09:00
Yuichi Nishiwaki 483edb5708 flush all xFILEs at exit 2015-06-10 22:37:05 +09:00
Yuichi Nishiwaki 191d3067f8 Revert "Revert "remove in-library""
This reverts commit 77d3b0b41e.
2015-06-09 23:02:06 +09:00
Yuichi Nishiwaki 2b1fa0692d fix debug print 2015-06-09 22:49:49 +09:00
Yuichi Nishiwaki cf411fd62a lazy export 2015-06-09 22:36:04 +09:00
Yuichi Nishiwaki 98857c0726 change pic_find_rename interface 2015-06-09 22:26:21 +09:00
Yuichi Nishiwaki 6af9a3ee7d remove pic_warn 2015-06-09 22:13:46 +09:00
Yuichi Nishiwaki 30cbdd5c4f cleanup macro.h 2015-06-09 20:20:56 +09:00
Yuichi Nishiwaki 6af60c9e2b don't use static non-const local variable 2015-06-09 19:19:27 +09:00
Yuichi Nishiwaki 44887cdd0c add make-registry procedure 2015-06-09 18:50:46 +09:00
Yuichi Nishiwaki b983c77767 use registries for parameter table 2015-06-09 18:36:39 +09:00
Yuichi Nishiwaki 111779c39e add pic_reg 2015-06-09 18:31:46 +09:00
Yuichi Nishiwaki 448bbf679d change dictionary interface.
use #undefined object as sentinel
2015-06-09 17:06:19 +09:00
Yuichi Nishiwaki 5185a73cd2 replace none with undef 2015-06-09 16:34:45 +09:00
Yuichi Nishiwaki 084d39cd9e let undefined be public API 2015-06-09 16:19:57 +09:00
Yuichi Nishiwaki 2c9a19acf5 introduce pic_invalid_value 2015-06-09 16:02:23 +09:00
Yuichi Nishiwaki df56a8c154 cleanup 2015-06-08 22:41:43 +09:00
Yuichi Nishiwaki 53a9e72413 optimize var implementation 2015-06-08 22:28:17 +09:00
Yuichi Nishiwaki 5def1df320 s/pic_winder/pic_checkpoint/g 2015-06-08 21:04:04 +09:00
Yuichi Nishiwaki 77d3b0b41e Revert "remove in-library"
This reverts commit 8604e18719.
2015-06-06 13:48:31 +09:00
Yuichi Nishiwaki 8604e18719 remove in-library 2015-06-04 14:17:37 +09:00
Yuichi Nishiwaki 531187bb2a speed up bytecode compilation 2015-06-04 13:53:41 +09:00
Yuichi Nishiwaki 72baa9a52d remove pic_throw function 2015-06-04 13:23:20 +09:00
Yuichi Nishiwaki 34b6585287 cleanup 2015-06-02 07:57:52 +09:00
Yuichi Nishiwaki 8f891c00c6 fix build 2015-06-02 07:20:47 +09:00
Yuichi Nishiwaki 9573c6db65 use proc_env in callcc implementation 2015-06-02 06:54:39 +09:00
Yuichi Nishiwaki 0ea80d1f34 use proc_env in var implementation 2015-06-02 06:53:16 +09:00
Yuichi Nishiwaki fc957da920 add 'env' property to struct pic_proc
Using attribute to make closure from c function is unsafe because closed
variables are visible from the scheme world. Use env property instead
from now.
2015-06-02 06:53:16 +09:00
Yuichi Nishiwaki ce0c737c95 cleanup 2015-06-02 06:53:16 +09:00
Yuichi Nishiwaki 88092044d7 shrink pic_proc size 2015-06-02 06:53:16 +09:00
Yuichi Nishiwaki 1fb918743a rename variables 2015-06-02 06:32:43 +09:00
Yuichi Nishiwaki 5df4e4f64e rename functions related to continuation 2015-06-02 06:18:09 +09:00
Yuichi Nishiwaki dbcd81c8c1 [bugfix] calling dead escape continuation causes segv 2015-06-02 06:01:16 +09:00
Yuichi Nishiwaki 1e3bb6f1bb cleanup pic_push_try 2015-06-02 05:14:43 +09:00
Yuichi Nishiwaki e0c837baee don't do pop_try in pic_raise 2015-06-02 05:00:17 +09:00
Sunrim KIM (keen) 6e9024b237 don't pass NULL to memcpy 2015-05-31 21:26:06 +09:00
Sunrim KIM (keen) 7b26e6cefe Merge branch 'master' of github.com:picrin-scheme/picrin 2015-05-31 14:25:22 +09:00
Yuichi Nishiwaki 15e61d8cd4 pic_open_library -> pic_make_library 2015-05-31 00:25:40 +09:00
Sunrim KIM (keen) 221f089716 remove prototype declaration of function macro 2015-05-30 23:45:54 +09:00
Yuichi Nishiwaki 599d8f5980 pic_senv -> pic_env 2015-05-30 22:39:03 +09:00
Yuichi Nishiwaki d0e10b49a7 pic_env -> pic_context 2015-05-30 22:34:51 +09:00
Yuichi Nishiwaki 617de67b94 cleanup 2015-05-30 20:05:04 +09:00
Yuichi Nishiwaki 334ceb9e7c fix bugs unveiled by the previous commit 2015-05-30 19:57:32 +09:00
Yuichi Nishiwaki 9b7eb2f996 unify all headers into picrin.h 2015-05-28 23:57:10 +09:00
Yuichi Nishiwaki fa8226e581 [bugfix] pic_debug broken in debug build 2015-05-28 23:30:55 +09:00
Yuichi Nishiwaki 00cde353ba xfile completely refactored 2015-05-28 23:28:55 +09:00
Yuichi Nishiwaki 329251d984 embed chunk buffer into pic_chunk 2015-05-28 17:29:13 +09:00
Yuichi Nishiwaki e30f1a11dc more strict unused variable check 2015-05-28 17:06:41 +09:00
Yuichi Nishiwaki d11da3a400 move complex macros from picrin.h to util.h 2015-05-28 16:54:36 +09:00
Yuichi Nishiwaki 6a692541a6 s/pic_alloc/pic_malloc/g 2015-05-28 16:42:16 +09:00
Yuichi Nishiwaki 278075910a custom allocator and custom abort 2015-05-28 02:12:26 +09:00
Yuichi Nishiwaki 271898ae78 don't use xmopen 2015-05-28 01:58:22 +09:00
Yuichi Nishiwaki 304664eaf0 add libc fallback 2015-05-28 01:55:55 +09:00
Yuichi Nishiwaki 7dcd050e1a add PIC_ENABLE_FLOAT and PIC_WORD_BOXING 2015-05-28 01:48:38 +09:00
Yuichi Nishiwaki 4bdb17db2f style fix 2015-05-28 01:06:44 +09:00
Yuichi Nishiwaki b9dde91123 allow custom setjmp/longjmp 2015-05-28 00:41:55 +09:00
Yuichi Nishiwaki bb55bbfdde [bugfix] codegen causes segv when default irep size is short 2015-05-28 00:21:49 +09:00
Yuichi Nishiwaki 9885bdd982 explicit cast to size_t 2015-05-28 00:17:12 +09:00
Yuichi Nishiwaki 7923f947d7 don't use xstd** from benz 2015-05-28 00:14:10 +09:00
Yuichi Nishiwaki 1fe960716e [bugfix] too long fraction causes overflow 2015-05-28 00:02:24 +09:00
Yuichi Nishiwaki 4cd8dcab60 refactor number reader 2015-05-27 23:40:01 +09:00
Yuichi Nishiwaki 15449354c6 switch string implementation to picrin's 2015-05-27 23:34:40 +09:00
Yuichi Nishiwaki 6d5ef7bda5 more error handling at pic_open 2015-05-27 23:08:47 +09:00
Yuichi Nishiwaki 53dadede15 [bugfix] gc bug 2015-05-27 23:01:35 +09:00
Yuichi Nishiwaki 2bfb6876eb don't use bit field 2015-05-27 22:49:29 +09:00
Yuichi Nishiwaki 81be1b9e3e define pic_dump_irep only if DEBUG is defined 2015-05-27 22:10:51 +09:00