Yuichi Nishiwaki
a5f478a7d5
currently pic_file don't support _IONBF mode
2014-01-16 19:49:41 +09:00
Yuichi Nishiwaki
5ee9539e9b
impl pic_ungetc
2014-01-16 18:42:25 +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
fc506674c0
add missing includes
2014-01-16 18:39:38 +09:00
Yuichi Nishiwaki
ce21353d50
impl pic_fwrite with simple buffering
2014-01-16 18:39:03 +09:00
Yuichi Nishiwaki
14b73501c4
[bugfix] call setvbuf in pic_file constructor
2014-01-16 18:37:54 +09:00
Yuichi Nishiwaki
3d72464e80
impl pic_fflush
2014-01-16 18:36:59 +09:00
Yuichi Nishiwaki
eca456f875
add IO buffering (setvbuf)
2014-01-16 18:36:47 +09:00
Yuichi Nishiwaki
4d0a448a44
impl char/string IO functions
2014-01-16 18:35:22 +09:00
Yuichi Nishiwaki
f043fbb0a7
impl pic_fopen and pic_close. add FILE*-pic_file* adapter functions.
2014-01-16 18:34:04 +09:00
Yuichi Nishiwaki
392549b315
replace old stdio functions with picrin's wrapper impls
2014-01-16 18:32:05 +09:00
Yuichi Nishiwaki
63d23bdeda
[WIP] add generic file object constructor (pic_funopen)
2014-01-16 18:27:05 +09:00
Yuichi Nishiwaki
34d52e1a51
use pic_load to load built-in.scm
2014-01-13 14:52:19 +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
daf67c34d9
= procedure is brokwn
2014-01-13 13:55:08 +09:00
Yuichi Nishiwaki
5b068d7cc7
implement load procedure
2014-01-13 13:54:52 +09:00
Yuichi Nishiwaki
9d54244424
match the order of functions with R7RS
2014-01-13 02:07:38 +09:00
Yuichi Nishiwaki
4a14531702
add write-char and flush-output-port
2014-01-13 02:06:09 +09:00
Yuichi Nishiwaki
a232defd00
newline can take an optional argument
2014-01-13 01:47:46 +09:00
Yuichi Nishiwaki
19a561132e
fix assert_port_profile to show clearer error message
2014-01-13 01:47:15 +09:00
Yuichi Nishiwaki
ec9305e9a5
current write implementation in fact behaves as same as write-simple
2014-01-13 01:34:59 +09:00
Yuichi Nishiwaki
70f6b59856
add peek-char
2014-01-13 01:34:26 +09:00
Yuichi Nishiwaki
4a87120eb6
add read-char procedure
2014-01-13 00:51:30 +09:00
Yuichi Nishiwaki
1c14feffa4
add accessors of stdio ports
2014-01-13 00:51:19 +09:00
Yuichi Nishiwaki
3fb407329f
implement missing pic_ref definition
2014-01-13 00:50:45 +09:00
Yuichi Nishiwaki
4a7a32829d
use the new feature of pic_get_args (port specifier)
2014-01-13 00:50:18 +09:00
Yuichi Nishiwaki
d9911cabc8
publish pic_eof_object()
2014-01-13 00:49:25 +09:00
Yuichi Nishiwaki
322021e5d5
pic_get_args supports port object
2014-01-13 00:48:00 +09:00
Yuichi Nishiwaki
6b808354c0
global variable accessors don't require library object
2014-01-13 00:45:49 +09:00
Yuichi Nishiwaki
dbf73ecd7a
refactor std ports
2014-01-13 00:02:58 +09:00
Yuichi Nishiwaki
0af0ecafb6
add standard io ports
2014-01-12 23:57:50 +09:00
Yuichi Nishiwaki
f4202a7555
don't need to strip syntactic information away from quoted expressions
2014-01-12 20:21:07 +09:00
Yuichi Nishiwaki
b70c689b1f
keep track of xhash's HEAD
2014-01-12 19:53:20 +09:00
Yuichi Nishiwaki
a6fafd6422
add missing 'static' modifier
2014-01-12 16:15:04 +09:00
Yuichi Nishiwaki
d6abb5c0ba
add defvar
2014-01-12 16:09:27 +09:00
Yuichi Nishiwaki
10e5546a53
functions defined by pic_defun will be implicitly renamed
2014-01-12 16:09:19 +09:00
Yuichi Nishiwaki
11ead27614
wrapper/unwrapper for var-proc conversion
2014-01-12 16:08:27 +09:00
Yuichi Nishiwaki
133e4c00bd
leave a comment about conv parameter of pic_new_var is nullable
2014-01-12 16:05:42 +09:00
Yuichi Nishiwaki
944111ba09
make gensym API public
2014-01-12 16:03:36 +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
45c49fdec3
don't rename each symbol more than a time
2014-01-10 17:55:58 +09:00
Yuichi Nishiwaki
62e52be061
[bugfix] macroexpand may return a non-symbol value even if passed a symbol.
2014-01-10 17:55:13 +09:00
Yuichi Nishiwaki
57253f9a6c
compare is allowed to take non-symbol values
2014-01-10 17:52:31 +09:00
Yuichi Nishiwaki
a159e52ae6
[bugfix] wrong error message
2014-01-10 17:49:27 +09:00
Yuichi Nishiwaki
6bdc9b360e
[bugfix] wrong external representation for syntax type
2014-01-10 16:22:36 +09:00
Yuichi Nishiwaki
2e66b533c1
fix a small bug in a comment
2014-01-10 16:22:07 +09:00
Yuichi Nishiwaki
9b02247082
initial explicit renaming macro prototype
2014-01-09 16:34:22 +09:00
Yuichi Nishiwaki
8e4e226bd3
pic_get_args supports symbol
2014-01-09 16:33:38 +09:00
Yuichi Nishiwaki
e8a50410a5
suppress unreachable warnings
2014-01-09 00:42:23 +09:00
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