Yuichi Nishiwaki
76f8916dca
show debug print when a library is reopened
2014-01-09 00:40:13 +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
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
e7f765d218
pic_get_args supports pic_procs
2014-01-08 20:53:28 +09:00
Yuichi Nishiwaki
b9ef51530f
don't intern symbols newly generated by new_uniq_sym
2014-01-08 20:41:29 +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
OGINO Masanori
ceffd8a3bd
Cast to `void *` for '%p' format specifiers.
...
Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
2014-01-05 18:10:33 +09:00
OGINO Masanori
da1eb0bc10
Remove '\e'. The escape sequence is not in ISO C.
...
Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
2014-01-05 18:00:02 +09:00
Yuichi Nishiwaki
76f5cbf0b3
ENDLIBRARY requires a trailing semicolon
2013-12-10 07:26:43 -08:00
Yuichi Nishiwaki
d23f686485
newline is not an element of (scheme write)
2013-12-10 05:59:03 -08:00
Yuichi Nishiwaki
cdb1911f9f
define (scheme inexact) library
2013-12-10 05:40:44 -08:00
Yuichi Nishiwaki
6dc66d354c
add missing finite? function
2013-12-10 05:40:26 -08:00
Yuichi Nishiwaki
afe630bc42
use find_library inside in_library
2013-12-10 05:40:03 -08:00
Yuichi Nishiwaki
fb34b71de1
[bugfix] identifier=? dies when take auxiliary syntax (because they emit
...
errors during expansion)
2013-12-10 01:50:53 -08:00
Yuichi Nishiwaki
41ffd0d7e5
define macro primitives (such as make-syntactic-closure) in (picrin macro)
2013-12-10 01:49:48 -08:00
Yuichi Nishiwaki
fd8c551159
use print_code for CODE_EXECUTE_HOOK
2013-12-10 01:47:45 -08:00
Yuichi Nishiwaki
e021ac52ac
identifier=? dons not necessarily take identifiers
2013-12-10 00:22:34 -08:00
Yuichi Nishiwaki
038020ff9f
sequentially evaluate programs declared in library at the macroexpansion phase
2013-12-09 23:00:13 -08:00
Yuichi Nishiwaki
bae4e6974b
[bugfix] create a new senv before allocate a library
2013-12-09 22:59:27 -08:00
Yuichi Nishiwaki
74feec78f1
always emit the same unique symbol for unbound variable
2013-12-09 09:32:30 -08:00
Yuichi Nishiwaki
725297384a
define-syntax is now capable of takeing a synclo object at the position
...
of the syntax name
2013-12-09 09:26:28 -08:00
Yuichi Nishiwaki
d871c6f06c
import and export take multiple spec in a time
2013-12-09 09:22:38 -08:00
Yuichi Nishiwaki
39b28fa674
debug print might cause segv
2013-12-09 09:09:24 -08:00
Yuichi Nishiwaki
eeb09f336e
Merge branch 'master' into libraries
...
Conflicts:
src/macro.c
src/pair.c
2013-12-09 08:27:29 -08:00
Yuichi Nishiwaki
e05a469a06
fix ir-macro-transformer
2013-12-09 07:27:11 -08:00
Yuichi Nishiwaki
0dddddab55
ir-macro-transformer was broken
2013-12-09 07:26:51 -08:00
Yuichi Nishiwaki
d21db9ae81
execute winded handlers when exit is called
2013-12-09 13:51:34 +09: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
906f2c8a93
make-library returns existing library if name conflicts
2013-12-07 23:15:16 -08:00
Yuichi Nishiwaki
fabe70aaf2
[bugfix] assq and assoc should return false if key is not found
2013-12-07 23:13:45 -08:00
Yuichi Nishiwaki
bea04325e5
define arithmetic operators as c functions
2013-12-07 20:55:04 -08:00
Yuichi Nishiwaki
8720ffa0c5
s/DEFINE_MATH_PRED/DEFINE_ARITH_CMP/g
2013-12-07 20:55:04 -08:00
Yuichi Nishiwaki
617ee5aa68
add pic_parse
2013-12-07 20:54:23 -08:00
Yuichi Nishiwaki
24a41d8e27
add pic_assoc
2013-12-07 20:52:58 -08:00
Yuichi Nishiwaki
28da6d71ba
add pic_equal_p
2013-12-07 20:52:58 -08:00
Yuichi Nishiwaki
fb2e7ac498
declare all built-in functions and variables in (scheme base) library
2013-12-07 20:48:24 -08:00
Yuichi Nishiwaki
47dd186535
do not include core syntaces in the default library environment
2013-12-07 20:47:55 -08:00
Yuichi Nishiwaki
7f5a4c34a3
register and export to library functions defined by pic_defun
2013-12-07 20:47:09 -08:00
Yuichi Nishiwaki
e71c5abfdb
rename unbound symbols by default
2013-12-07 20:45:47 -08:00
Yuichi Nishiwaki
01e60b5d8e
add pic_export and pic_export_as
2013-12-07 20:44:39 -08:00
Yuichi Nishiwaki
0110370cc4
improve reusability
2013-12-07 20:43:57 -08:00
Yuichi Nishiwaki
57ca3174aa
define arithmetic operators as c functions
2013-12-07 20:43:36 -08:00
Yuichi Nishiwaki
629ee06b5f
s/DEFINE_MATH_PRED/DEFINE_ARITH_CMP/g
2013-12-07 20:42:10 -08:00
Yuichi Nishiwaki
791ab95219
[bugfix] taking a wrong symbol for exporting
2013-12-07 19:03:18 -08:00
Yuichi Nishiwaki
0f491adc73
select library during macroexpanding define-library
2013-12-07 18:59:35 -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
c989687564
[workaround] load core syntaces initially
2013-12-07 07:14:35 -08:00
Yuichi Nishiwaki
0115ede4de
change APIs of library functions
2013-12-07 07:11:22 -08:00
Yuichi Nishiwaki
9cb777eec3
select the minimal library at first
2013-12-07 07:05: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
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
25378e3813
cosmetic changes
2013-12-06 07:51:32 -08:00
Yuichi Nishiwaki
b3a2da1079
Merge remote-tracking branch 'origin/master'
2013-12-06 04:48:10 -08:00
Yuichi Nishiwaki
ef04e3f02c
add pic_core_syntactic_env
2013-12-06 18:04:36 +09:00
Yuichi Nishiwaki
4d8ffa43c8
delete auto resource releasing facility
2013-12-03 08:16:53 -08:00
Yuichi Nishiwaki
7e69ae1878
add port-close procedure
2013-12-03 08:16:13 -08:00
Yuichi Nishiwaki
afffa20785
pic_apply supports multiple arguments
2013-12-03 06:40:50 -08:00
Yuichi Nishiwaki
a7df867a55
suppress gcc's warnings
2013-12-03 06:10:46 -08:00
Yuichi Nishiwaki
4e98d37ab1
remove old debug prints
2013-12-03 13:08:23 +09:00
Yuichi Nishiwaki
dc7c801c38
exprs during macroexpansion may have syntactic-closure in the tail position
2013-12-03 13:08:00 +09:00
Yuichi Nishiwaki
761deffe1f
macroexpand_list supports any kind of improper list
2013-12-03 13:07:25 +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
704b2d148b
rewrite pic_type_repr
2013-12-02 13:39:11 +09:00
Yuichi Nishiwaki
a43e3248e8
calloc should take size_t
2013-12-01 12:44:43 +09:00
Yuichi Nishiwaki
04434f44fd
cosmetic changes
2013-11-30 00:07:49 +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
f03a153774
add freed object counter
2013-11-29 12:10:10 +09:00
Yuichi Nishiwaki
4c5d3b4257
Revert "[bugfix] do not fuse end-of-page block into other blocks"
...
This reverts commit 5656590fa0
.
2013-11-29 12:10:10 +09:00
Yuichi Nishiwaki
ab5de1c0c4
fix #6
2013-11-29 12:10:02 +09:00
Yuichi Nishiwaki
5656590fa0
[bugfix] do not fuse end-of-page block into other blocks
2013-11-28 21:58:25 +09:00
Yuichi Nishiwaki
e10bbac8e5
accept injected symbols (syntactic-closures) at the places of lambda formals
2013-11-28 18:40:31 +09:00
Yuichi Nishiwaki
3266ae7d3c
[bugfix] missed to mark stx->senv
2013-11-28 13:15:27 +09:00
Yuichi Nishiwaki
c2d7f3d1f2
[bugfix] wrong size for pic_proc allocation
2013-11-27 06:31:49 -08:00
Yuichi Nishiwaki
49caf79ce6
[bugfix] new_uniq_sym must take one more byte chunk for new string
2013-11-27 06:31:12 -08:00
Yuichi Nishiwaki
7b8ee3eb97
add er-macro-transformer
2013-11-27 17:26:07 +09:00
Yuichi Nishiwaki
1ab588d21f
added hygienic macro facility! Fooo!
2013-11-27 15:58:28 +09:00
Yuichi Nishiwaki
9a027dae6e
add error guard
2013-11-27 15:57:23 +09:00
Yuichi Nishiwaki
bedc5dc6be
revise output format of syntactic closure object
2013-11-27 15:56:29 +09:00
Yuichi Nishiwaki
ceedd05ef0
[bugfix] pic_apply_argv concatenated args in reverse order
2013-11-27 15:55:54 +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
a7a3bfc270
[CSE] add new_global_senv and new_local_senv
2013-11-27 14:19:46 +09:00
Yuichi Nishiwaki
b4218a7a03
cosmetic changes
2013-11-27 14:00:23 +09:00
Yuichi Nishiwaki
73831283b6
cleanup
2013-11-27 13:51:24 +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
5e3f2dacf4
Revert "add_heap_page should not be invoked in gc_alloc, but should be in obj_alloc"
...
This reverts commit f11623f075
.
2013-11-27 13:04:03 +09:00
Yuichi Nishiwaki
94aac37443
macros must be added to var_tbl
2013-11-26 17:43:59 -08:00
Yuichi Nishiwaki
d2af692280
add a fixme comment
2013-11-26 17:43:49 -08:00
Yuichi Nishiwaki
d7f8d67bf2
debug-print when unbound symbol is found
2013-11-26 16:52:30 -08:00
Yuichi Nishiwaki
38ab43d7fc
[bugfix] binding leak
2013-11-26 16:51:48 -08:00
Yuichi Nishiwaki
3710d5feea
support varg lambda
2013-11-26 16:51:17 -08:00
Yuichi Nishiwaki
b2704fb123
increment xlen in the end
2013-11-26 16:50:38 -08:00
Yuichi Nishiwaki
c336a354e4
publish pic_defmacro as a public API
2013-11-26 09:09:15 -08:00
Yuichi Nishiwaki
2dee30a0b5
macroexpand_list supports improper list
2013-11-26 09:07:57 -08:00
Yuichi Nishiwaki
43d449d2aa
s/define_macro/pic_defmacro/g
2013-11-26 09:07:06 -08:00
Yuichi Nishiwaki
cbd636e0a7
[bugfix] do not release pic->var_tbl when a senv holding it is dead
2013-11-26 09:00:16 -08:00
Yuichi Nishiwaki
e7673c65bd
[bugfix] syntaces should be registered to var_tbl, not global_tbl
2013-11-26 08:59:16 -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
ddbc2c83a2
add missing core symbol registration
2013-11-26 08:39:37 -08:00
Yuichi Nishiwaki
3009473d52
debug prints for macroexpand
2013-11-26 08:38:26 -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
673b66a723
use register_core_symbol macro to initialize pic_state
2013-11-26 06:40:48 -08:00
Yuichi Nishiwaki
ad3c268f81
insert renamer pass after old macroexpansion phase
2013-11-26 04:08:46 -08:00
Yuichi Nishiwaki
1ad562f1a8
[wip] add renamer
2013-11-26 04:06:46 -08:00
Yuichi Nishiwaki
573ba79782
[bugfix] log10 must not be given 0
2013-11-26 04:06:03 -08:00
Yuichi Nishiwaki
b7f0f3dfb3
[bugfix] get rid of a comma
2013-11-26 04:05:37 -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
4701f86ff0
fix a grammar error
2013-11-26 16:22:49 +09:00
Yuichi Nishiwaki
52f1776b22
cleanup
2013-11-25 11:10:57 +09:00
Yuichi Nishiwaki
f11623f075
add_heap_page should not be invoked in gc_alloc, but should be in obj_alloc
2013-11-25 00:24:03 +09:00
Yuichi Nishiwaki
df20de5285
push back dead objects to free list
2013-11-25 00:22:32 +09:00
Yuichi Nishiwaki
40bfe13895
add a comment to sweep algorithm
2013-11-22 07:30:29 -08:00
Yuichi Nishiwaki
563b65efde
s/expand.c/macro.c/
2013-11-22 07:22:52 -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
1be72f1e18
rewrite gc!
2013-11-22 06:38:29 -08:00
Yuichi Nishiwaki
2dd293c0f9
[workaround] add stack overflow detector
2013-11-22 06:37:57 -08:00
Yuichi Nishiwaki
0a521c2314
add overflow guards to some global stacks (or value pools)
2013-11-22 06:35:51 -08:00
Yuichi Nishiwaki
23b806cc41
print propagated error messages when stdlib failed to build
2013-11-22 06:34:34 -08:00
Yuichi Nishiwaki
4b326e4f6e
add new compilation flag GC_DEBUG_DETAIL
2013-11-22 03:29:05 -08:00
Yuichi Nishiwaki
4004282e50
alloc stacks by calloc, not malloc
2013-11-22 03:28:09 -08:00
Yuichi Nishiwaki
626c0adb3a
fix broken pic_type_repr
2013-11-22 03:27:09 -08:00
Yuichi Nishiwaki
f610424ae5
remove unnecessary protect
2013-11-22 01:53:22 -08:00
Yuichi Nishiwaki
05b2717b9e
less memory usage of pic_reverse
2013-11-21 06:32:56 -08:00
Yuichi Nishiwaki
00fc0ee931
protect more objects during expansion
2013-11-21 06:31:32 -08:00
Yuichi Nishiwaki
f146287eff
load_stdlib releases arena objects every time evaluating exprssion
2013-11-21 06:30:33 -08:00
Yuichi Nishiwaki
6581177ec5
realloc pic->irep when exhausted
2013-11-21 06:28:43 -08:00
Yuichi Nishiwaki
58b9e2cb60
debug prints when a global stack is realloc'ed
2013-11-21 06:28:06 -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
ed0b02ecfa
fixed #5 (again)
2013-11-18 20:38:03 +09:00
Yuichi Nishiwaki
d2bb4ad4f2
Revert "(maybe) fix #5 "
...
This reverts commit a3ac65a75f
.
2013-11-18 20:36:30 +09:00
Yuichi Nishiwaki
a3ac65a75f
(maybe) fix #5
2013-11-18 20:35:27 +09:00
Yuichi Nishiwaki
d5f01595b0
fixed #4
2013-11-18 20:24:09 +09:00
Yuichi Nishiwaki
6f94202e13
s/pic_expand/pic_macroexpand/g
2013-11-18 16:36:44 +09:00
Yuichi Nishiwaki
a3c2dabcc7
add feature function
2013-11-18 01:46:28 +09:00
Yuichi Nishiwaki
0d952d3639
add string functions
2013-11-18 01:09:54 +09:00
Yuichi Nishiwaki
6cfbe51c87
pic_get_args: change type of argc
2013-11-18 01:07:51 +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
5ffb4eb6c9
add string?
2013-11-17 17:42:52 +09:00
Yuichi Nishiwaki
9526ca789a
free as many as possible!
2013-11-17 17:33:28 +09:00
Yuichi Nishiwaki
fdc9bfea4e
initial exception handling support
2013-11-17 17:25:26 +09:00
Yuichi Nishiwaki
5668ae1b29
[bugfix] local variables should be initialized before copied to env object
2013-11-17 17:24:37 +09:00
Yuichi Nishiwaki
737f916a8c
add pic_errorf
2013-11-17 17:23:13 +09:00
Yuichi Nishiwaki
224b08fb92
[bugfix] after save_cont any local variable must not be modified!
...
If save_cont returns a cont object, a local variable will receive the
object and the machine stack state will have just been changed then.
To avoid that, we need set cont object to the local before the machine
stack is copied.
2013-11-17 17:20:19 +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
5947240614
[bugfix] fix crash on deeply nested lambdas
2013-11-17 13:12:59 +09:00
Yuichi Nishiwaki
14ad038051
wipe reallocated cv_tbl
2013-11-17 13:10:36 +09:00
Yuichi Nishiwaki
242a366cbf
check vector index out of range
2013-11-17 02:32:27 +09:00
Yuichi Nishiwaki
1ef3ed91a2
fix for-each compilation bug
2013-11-16 23:32:34 +09:00
Yuichi Nishiwaki
a68b470e06
pic_get_args can parse '*'
2013-11-15 22:53:41 +09:00
Yuichi Nishiwaki
c57f1bfbe1
define math comp predicates as C functions
2013-11-15 22:51:51 +09:00
Yuichi Nishiwaki
e94aaffd34
shrink default arena size!
2013-11-15 19:54:47 +09:00
Yuichi Nishiwaki
9cdca8bc70
implement yy arena gc
2013-11-15 19:40:31 +09:00
Yuichi Nishiwaki
690f66dd76
s/is_marked/gc_is_marked/g
2013-11-15 19:32:01 +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
c62505b930
initialize newly allocated vector with falses
2013-11-15 19:29:54 +09:00
Yuichi Nishiwaki
73d9b0dc79
use strndup if possible
2013-11-15 17:08:18 +09:00
Yuichi Nishiwaki
93e5758e4c
[bugfix] gc may enter an infinite loop
2013-11-15 16:11:54 +09:00
Yuichi Nishiwaki
a2f022df4e
implement native version of some primitive functions such as car,crd...
2013-11-15 16:07:03 +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
066575fa1c
error when apply got non-proc at the first place of arguments
2013-11-14 20:42:14 +09:00
Yuichi Nishiwaki
850290dda3
add some char primitives
2013-11-14 20:41:22 +09:00
Yuichi Nishiwaki
7f35eb7daa
support named characters
2013-11-14 19:45:38 +09:00
Yuichi Nishiwaki
6de5bc7550
propagate jmp_bufs (useful when C stack and scheme stack interleave)
2013-11-14 19:26:06 +09:00
Yuichi Nishiwaki
e68c69ceb1
support datum comment
2013-11-14 17:31:40 +09:00
Yuichi Nishiwaki
48c5c6b17c
add vector-set!
2013-11-14 16:57:07 +09:00
Yuichi Nishiwaki
b56b86aae2
[bugfix] variables defined by internal definitions may be referred from
...
inner environments
2013-11-14 16:52:49 +09:00
Yuichi Nishiwaki
b9fce69c61
support internal definitions
2013-11-13 18:08:22 +09:00
Yuichi Nishiwaki
2fb4720e22
[bugfix] (= 1 1.0) doesn't work
2013-11-13 17:40:31 +09:00
Yuichi Nishiwaki
5479e7c6ba
[bugfix] atan and log functions doesn't accept single argument
2013-11-13 17:38:54 +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
8c40fc8d9e
add square bracket notation
2013-11-11 11:57:01 +09:00
Yuichi Nishiwaki
8b484b69d7
rename fields in struct pic_cont
2013-11-11 10:14:42 +09:00
Yuichi Nishiwaki
4fea9169cc
error when argument of apply is not a proper list
2013-11-11 08:01:08 +09:00
Yuichi Nishiwaki
7f3d3ac11b
copy stacks to restore a continuation
2013-11-11 07:59:52 +09:00
Yuichi Nishiwaki
96d75b3c06
add apply function
2013-11-10 00:41:59 +09:00
Yuichi Nishiwaki
fd3300f9db
emit int result in int-int division if possible
2013-11-09 16:32:13 +09:00
Yuichi Nishiwaki
0d2e49c17e
cleanup
2013-11-09 15:29:58 +09:00
Yuichi Nishiwaki
9d467e4d14
change some function names in cont.c
2013-11-09 15:25:19 +09:00
Yuichi Nishiwaki
76990d512f
suppress warnings
2013-11-09 15:24:58 +09:00
Yuichi Nishiwaki
64ae8bd7b0
initial call/cc support
2013-11-09 14:14:25 +09:00
Yuichi Nishiwaki
e373aa7b92
add missing pic_apply_argv definition
2013-11-09 14:13:14 +09:00
Yuichi Nishiwaki
0d28f246de
add pic_get_proc
2013-11-09 14:12:59 +09:00
Yuichi Nishiwaki
89eceec7f8
fix a bug that pic_apply faults when cfunc proc is given in DEBUG mode
2013-11-09 14:12:36 +09:00
Yuichi Nishiwaki
125189e25e
fix a bug in initial ciend setting
2013-11-09 14:11:54 +09:00
Yuichi Nishiwaki
d973f41d84
values of some compound types can reach to expanstion phase
2013-11-09 14:11:19 +09:00
Yuichi Nishiwaki
d3ed7bce53
eq? and eqv? return true when the pointers are equal
2013-11-09 13:41:11 +09:00
Yuichi Nishiwaki
62f19e85c5
varg * and / operators
2013-11-07 12:52:59 +09:00
Yuichi Nishiwaki
9d304be02e
varg - operator
2013-11-07 12:18:00 +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
b0a4249220
varg + operator
2013-11-06 18:55:06 +09:00
Yuichi Nishiwaki
8a0b8da884
missing pic_eqv_p (when PIC_NAN_BOXING disabled)
2013-11-06 18:54:46 +09:00
Yuichi Nishiwaki
fc42c71304
add eqv? and equal?
2013-11-06 16:12:31 +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
9bba0353e8
add some bytevector primitives
2013-11-04 22:58:16 -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
5bb762b6e3
[bugfix] crash on calling vector-ref
2013-11-04 20:59:43 -05:00
Yuichi Nishiwaki
01a5819706
add vector primitives
2013-11-04 20:55:57 -05:00
Yuichi Nishiwaki
fb66791216
do not create pic_env object when not needed
2013-11-04 20:27:44 -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
2dc955aaf5
s/cv_tbl/dirty_flags/g
2013-11-04 19:14:21 -05:00
Yuichi Nishiwaki
d0602303e3
s/num_val/valuec/g
2013-11-04 16:07:36 -05:00
Yuichi Nishiwaki
f5b98e38f8
[bugfix] allocate pic_env values area for local variables
2013-11-04 15:32:26 -05:00
Yuichi Nishiwaki
76dadc8448
remove toplevel pic_env that is never used
2013-11-04 15:30:11 -05:00
Yuichi Nishiwaki
aeff650ccf
no need to control arena_index in pic_codegen
2013-11-04 13:18:46 -05:00
Yuichi Nishiwaki
808fe32ac0
add boolean functions
2013-11-03 11:39:13 -05:00
Yuichi Nishiwaki
404ccb7fb1
cleanup
2013-11-01 19:19:51 +09:00
Yuichi Nishiwaki
346b159e7e
add some debug prints
2013-11-01 19:02:46 +09:00
Yuichi Nishiwaki
1f0d096ed6
protect return values from gc at the end of VM
2013-11-01 18:56:17 +09:00
Yuichi Nishiwaki
77b6b94e74
gc must mark macros as well
2013-11-01 18:55:44 +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
75667d7649
[bugfix] push nil_value even if ci->argc equals varg proc's argc
2013-11-01 15:09:20 +09:00
Yuichi Nishiwaki
5a7b19b348
save each opcode currently fetched into 'c'
2013-11-01 14:44:26 +09:00
Yuichi Nishiwaki
5e74caa7a5
add some important primitive macros such as cond, and, or, ...etc
2013-10-31 00:31:33 +09:00
Yuichi Nishiwaki
207ec5bd24
add eq? function
2013-10-31 00:29:55 +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
abd5bc9216
fix a bug introded in prev prev commit
2013-10-30 15:40:40 +09:00
Yuichi Nishiwaki
1e4ff3276a
add pic_type_repr
2013-10-30 15:37:33 +09:00
Yuichi Nishiwaki
d4001a70ae
VM works with procs not terminated with OP_STOP
2013-10-30 15:36:28 +09:00
Yuichi Nishiwaki
5be1cd7092
add some comments in codegen_scopes' members
2013-10-30 12:16:45 +09:00
Yuichi Nishiwaki
611b273dcd
missed to add src/vector.c
2013-10-30 10:12:04 +09:00
Yuichi Nishiwaki
76ec63d1ca
adjust callinfo when OP_STOP
2013-10-30 10:05:47 +09:00
Yuichi Nishiwaki
9bc172bde5
add stack underflow detector
2013-10-30 10:05:21 +09:00
Yuichi Nishiwaki
a4d20060e7
compile tail calls into OP_TAILCALL
2013-10-30 10:04:23 +09:00
Yuichi Nishiwaki
e4b913cb15
add OP_TAILCALL
2013-10-30 10:03:46 +09:00
Yuichi Nishiwaki
4721f42f5a
bugfix: define can take only 1 argument
2013-10-29 22:16:16 +09:00
Yuichi Nishiwaki
edd890ae0b
support 2-argument if syntax
2013-10-29 22:15:58 +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
35bbd66812
fix gc bug: ci->env and env-up are nullable
2013-10-29 16:39:57 +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
15fdbc9c7d
add some symbol primitive functions
2013-10-29 02:49:38 +09:00
Yuichi Nishiwaki
4402497a46
fix a bug related to immediate symbol value
2013-10-29 02:33:49 +09:00
Yuichi Nishiwaki
9424f0b9c0
show codegen error message when compilation failure
2013-10-29 02:33:22 +09:00
Yuichi Nishiwaki
1d9410638d
remove unused auxuality data field proc->aux
2013-10-29 02:23:14 +09:00
Yuichi Nishiwaki
db38cdc7e0
check sym_pool size when interning symbol
2013-10-29 02:16:26 +09:00
Yuichi Nishiwaki
63b52991da
introduce immediate symbol value
2013-10-29 02:11:31 +09:00
Yuichi Nishiwaki
a19c59ba87
remove stuff rerated to parser_control from scan.l
2013-10-28 22:55:15 +09:00
Yuichi Nishiwaki
94e1e245ea
create picrin objects in parser stage, not in scan stage
2013-10-28 22:49:15 +09:00
Yuichi Nishiwaki
9a20b50fc5
[vm] take care of int overflow
2013-10-28 21:26:39 +09:00
Yuichi Nishiwaki
4fa2bad5fa
add pic_apply function (and remove pic_run)
2013-10-28 17:45:13 +09:00
Yuichi Nishiwaki
67c13b841c
read line comments
2013-10-28 13:04:24 +09:00
Yuichi Nishiwaki
c77b8be011
insert type checks in pic_get_args
2013-10-28 00:40:10 +09:00
Yuichi Nishiwaki
5133e04c39
bugfix in pic_get_args
2013-10-28 00:33:24 +09:00
Yuichi Nishiwaki
90b691be67
add exact/inexact function
2013-10-28 00:33:10 +09:00
Yuichi Nishiwaki
350f4d1abd
[bugfix] support 'I' format in pic_get_args
2013-10-28 00:24:51 +09:00
Yuichi Nishiwaki
d3df6dcbf2
support exact integer
2013-10-28 00:21:24 +09:00
Yuichi Nishiwaki
63c05209f8
add built-in library
2013-10-27 18:38:55 +09:00
Yuichi Nishiwaki
f192c96650
parse-from-file facility
2013-10-27 18:38:41 +09:00
Yuichi Nishiwaki
c93cef8c8c
do not wrap with a begin read expressions if it is single
2013-10-27 18:14:15 +09:00
Yuichi Nishiwaki
f3041b7ebc
support rest arguments
2013-10-27 18:13:36 +09:00
Yuichi Nishiwaki
40a2568142
read multiple expressions; read exprs are wrapped in a begin
2013-10-27 17:24:44 +09:00
Yuichi Nishiwaki
14dcb63c33
support `(define (foo . args) . body)` style definition
2013-10-27 02:51:06 +09:00
Yuichi Nishiwaki
870320f3a1
refactor incomplete data parsing
2013-10-27 02:06:59 +09:00
Yuichi Nishiwaki
51253c00b9
add procedure?
2013-10-25 00:37:20 +09:00
Yuichi Nishiwaki
c782912212
add pair?
2013-10-25 00:37:08 +09:00
Yuichi Nishiwaki
c88f0926a4
fix a bug in valid_formal
2013-10-25 00:35:37 +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
2732a5a4ec
inti env->value with undef objects
2013-10-24 20:53:27 +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
337b54dc40
initial closure support
2013-10-24 02:51:02 +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
f854e225c8
test implementation for closed variable reference
2013-10-24 00:33:37 +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
2ec7f381d0
cleanup codegen.c
2013-10-23 17:26:02 +09:00
Yuichi Nishiwaki
79ee6f6ae4
introduce codegen_state structure
2013-10-23 17:25:39 +09:00
Yuichi Nishiwaki
035de0016b
evaluate arguments in normal (lexical) order
2013-10-23 15:55:42 +09:00
Yuichi Nishiwaki
d12ed0a139
rename pic_scope -> codegen_scope
2013-10-23 15:52:14 +09:00
Yuichi Nishiwaki
947ddc45c8
bugfix: lambda must use new_scope to gen body code
2013-10-23 15:46:18 +09:00
Yuichi Nishiwaki
cc025626d5
use start state to parse strings
2013-10-23 13:44:45 +09:00
Yuichi Nishiwaki
dd7958c3d6
reader supports quasiquote abbrev
2013-10-23 12:39:48 +09:00
Yuichi Nishiwaki
f01ac50dd2
add set-car!/set-cdr!
2013-10-23 12:01:06 +09:00
Yuichi Nishiwaki
5f05fed38f
add missing extended identifier characters
2013-10-23 12:00:53 +09:00
Yuichi Nishiwaki
f31ddb36a2
reentrant scanner
2013-10-23 03:45:57 +09:00
Yuichi Nishiwaki
bb0bb0e186
reentrant parser (but not for scanner)
2013-10-23 03:13:10 +09:00
Yuichi Nishiwaki
dd3adf30e6
use xhash to manage scopes during codegin
2013-10-22 22:22:35 +09:00
Yuichi Nishiwaki
76cba3fad2
add some number-theoretic division functions
2013-10-22 18:29:55 +09:00
Yuichi Nishiwaki
828606aed5
throw an error when finding invalid argument specifier
2013-10-22 17:44:47 +09:00
Yuichi Nishiwaki
779199d571
add many many number primitive functions
2013-10-22 17:24:07 +09:00
Yuichi Nishiwaki
d696339577
[bugfix] pic_get_args should ignore optional args when i > argc
2013-10-22 17:23:21 +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
d2e09fa2c7
add file related functions
2013-10-22 15:16:35 +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
72a6e90d83
exit functions take an optional argument
2013-10-21 14:13:08 +09:00
Yuichi Nishiwaki
86177b7c4e
pic_get_args supports optional argument
2013-10-21 13:57:02 +09:00
Yuichi Nishiwaki
6c8dd50ab8
add exit and emergency-exit
2013-10-21 12:08:46 +09:00
Yuichi Nishiwaki
db1f977600
add pic_list_p
2013-10-21 12:03:35 +09:00
Yuichi Nishiwaki
15c4361381
return #f if get-environment-variable refers undefined env-var
2013-10-21 12:03:25 +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
b02f81760c
pic_get_args supports strings
2013-10-21 11:42:21 +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
cefa9a9885
handle runtime error
2013-10-20 23:30:01 +09:00
Yuichi Nishiwaki
d57d8ff3c0
place main.c under etc/
2013-10-20 18:44:26 +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
12e2f10869
add error.c file
2013-10-20 17:26:18 +09:00