Commit Graph

2892 Commits

Author SHA1 Message Date
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 9263891c4c Merge branch 'fix-port' 2015-06-19 00:46:30 +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 0fe4df3c15 [bugfix] repl broken 2015-06-17 02:58:37 +09:00
Yuichi Nishiwaki 9433bace1f Merge branch 'reimplement-library-primitives-in-scheme' 2015-06-17 02:12:42 +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 6c821105fd Merge branch 'improved-hygiene2' 2015-06-16 21:24:39 +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 1570bd1cd4 syntax-rules: rewrite case-lambda.scm. (p ... . var) pattern is not supported 2015-06-16 19:16:23 +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 dbba29a5a8 syntax-rules: support tail pattern 2015-06-16 19:16:19 +09:00
Yuichi Nishiwaki 02d75b4283 syntax-rules: as of now we have no plan to add (... template) pattern support 2015-06-16 19:16:14 +09:00
Yuichi Nishiwaki 84bb7e9ffc [bugfix] syntax-rules: don't compare with variable=? a value of other type than variable 2015-06-16 19:16:07 +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 867afc9b6f [bugfix] syntax-rules: ellipsis pattern representation broken 2015-06-16 19:15:52 +09:00
Yuichi Nishiwaki 3ed24ae1fb syntax-rules: hygienic syntax-rules 2015-06-16 19:15:45 +09:00
Yuichi Nishiwaki af59885858 syntax-rules: support splicing in template 2015-06-16 19:15:39 +09:00
Yuichi Nishiwaki 691d0ad698 syntax-rules: literal support 2015-06-16 19:15:31 +09:00
Yuichi Nishiwaki dfcf8c73bd syntax-rules: constant pattern support 2015-06-16 19:15:25 +09:00
Yuichi Nishiwaki 86ba26b02e syntax-rules: custom ellipsis support already done 2015-06-16 19:15:08 +09:00
Yuichi Nishiwaki 43f1f6bb70 [WIP] syntax-rules: rewrite syntax-rules.scm
[syntax-rules] bugfix

s/generate-representation/template-representation/g

[WIP] rewrite syntax-rules

[syntax-rules] bugfix

s/generate-representation/template-representation/g

[syntax-rules] bugfix
2015-06-16 19:14:44 +09:00
Yuichi Nishiwaki d741efe294 rewrite (picrin record) and (picrin experimental lambda) 2015-06-15 02:52:38 +09:00
Yuichi Nishiwaki 4d9f5bfbcf rewrite macro.scm.
build sc/er macro transformers on picrin's macro system

[macro.scm] cleanup
2015-06-15 02:52:38 +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