Yuichi Nishiwaki
|
66ac29519e
|
use pic_trampoline in pic_proc_apply
|
2014-02-06 14:22:42 +09:00 |
Yuichi Nishiwaki
|
2ef426d90b
|
add trampoline helper
|
2014-02-06 14:22:29 +09:00 |
Yuichi Nishiwaki
|
845961e7f9
|
adjust OP_CALL count
|
2014-02-06 13:18:39 +09:00 |
Yuichi Nishiwaki
|
613f692c09
|
apply is broken with arg_list is nil
|
2014-02-06 13:04:11 +09:00 |
Yuichi Nishiwaki
|
9f21c8d7b1
|
Merge branch 'master' into trampoline
|
2014-02-06 13:01:31 +09:00 |
Yuichi Nishiwaki
|
c1e5eefbbd
|
staticize compile function
|
2014-02-04 18:54:33 +09:00 |
Yuichi Nishiwaki
|
849746b919
|
remove redundant message
|
2014-02-04 18:54:01 +09:00 |
Yuichi Nishiwaki
|
f29f10ddd7
|
clenaup debug message format
|
2014-02-04 18:53:51 +09:00 |
Yuichi Nishiwaki
|
060fb227a7
|
refactor pic_compile
|
2014-02-04 18:53:40 +09:00 |
Yuichi Nishiwaki
|
0d33900745
|
delegate initial instruction fetch to VM_LOOP
|
2014-02-04 18:42:37 +09:00 |
Yuichi Nishiwaki
|
0e0cc96859
|
booting message completely useless, shrink.
|
2014-02-04 18:39:47 +09:00 |
Yuichi Nishiwaki
|
90713100c2
|
show argument values when entering OP_CALL
|
2014-02-04 18:38:32 +09:00 |
Yuichi Nishiwaki
|
2d544ffa01
|
toplevel expression can be considered tail expresssion
|
2014-02-04 18:23:37 +09:00 |
Yuichi Nishiwaki
|
ae2cae8a47
|
duplicate OP_RET
|
2014-02-04 18:22:18 +09:00 |
Yuichi Nishiwaki
|
3a4bf769ce
|
don't emit duplicate OP_RET in codegen_lambda
|
2014-02-04 18:20:51 +09:00 |
Yuichi Nishiwaki
|
f59ce74148
|
add RETURN node
|
2014-02-04 18:20:35 +09:00 |
Yuichi Nishiwaki
|
dd547ac093
|
add OP_NOP
|
2014-02-04 16:58:50 +09:00 |
Yuichi Nishiwaki
|
16466fd35c
|
use OP_NOP in pic_proc_apply
|
2014-02-04 16:20:49 +09:00 |
Yuichi Nishiwaki
|
7837a30d53
|
add OP_NOP
|
2014-02-04 16:20:17 +09:00 |
Yuichi Nishiwaki
|
c3b45c6d16
|
'apply' calls given procedure by trampoline
|
2014-02-04 15:46:52 +09:00 |
Yuichi Nishiwaki
|
2ed2b503a6
|
apply' argument treatment was broken
|
2014-02-04 14:33:36 +09:00 |
Yuichi Nishiwaki
|
96fc08dd0b
|
[bugfix] close only closed variables...
|
2014-02-04 14:20:01 +09:00 |
Yuichi Nishiwaki
|
a3b0fa701b
|
rename pic_callinfo.pc -> ip
|
2014-02-04 10:46:36 +09:00 |
Yuichi Nishiwaki
|
f090eae241
|
restore ip when returned from c function
|
2014-02-04 10:40:16 +09:00 |
Yuichi Nishiwaki
|
018db310d3
|
save instruction pointer to pic_state
|
2014-02-04 10:40:03 +09:00 |
Yuichi Nishiwaki
|
08337f1ed1
|
use 'pc' as little as possible
|
2014-02-04 10:28:40 +09:00 |
Yuichi Nishiwaki
|
0947173c32
|
small optimize
|
2014-02-04 10:28:22 +09:00 |
Yuichi Nishiwaki
|
2022fa163b
|
fix #26
|
2014-02-04 10:18:31 +09:00 |
Yuichi Nishiwaki
|
a99cf8458a
|
implement ir-macro-transformer with C
|
2014-01-19 01:14:32 -08:00 |
Yuichi Nishiwaki
|
ce90e4a2a6
|
compare int and size_t warning when DEBUG is on
|
2014-01-19 00:54:56 -08:00 |
Yuichi Nishiwaki
|
ab411cc298
|
gcc complains that he can't assure if switch-enum is complete
|
2014-01-19 00:32:43 -08:00 |
Yuichi Nishiwaki
|
7bfe165a73
|
[bugfix] compiler complains fileno is not declared but used in lex.yy.c.
|
2014-01-19 00:31:03 -08:00 |
Yuichi Nishiwaki
|
9b31e5bd2f
|
refactor list_by_array
|
2014-02-02 21:16:45 +09:00 |
Yuichi Nishiwaki
|
b66021c042
|
print bytecode index in hex
|
2014-02-02 21:16:23 +09:00 |
Yuichi Nishiwaki
|
4a01b8296f
|
emit OP_NOT
|
2014-02-02 14:55:46 +09:00 |
Yuichi Nishiwaki
|
0fec56362d
|
add OP_NOT instruction
|
2014-02-02 14:54:47 +09:00 |
Yuichi Nishiwaki
|
0425dbdd1e
|
implement values and call-with-values with C
|
2014-02-02 14:26:58 +09:00 |
Yuichi Nishiwaki
|
778ee89dfe
|
fix pic_receive
|
2014-02-02 14:23:58 +09:00 |
Yuichi Nishiwaki
|
116a65cdee
|
add pic_receive
|
2014-02-02 12:38:46 +09:00 |
Yuichi Nishiwaki
|
19db4bb6b2
|
rest array got by pic_get_args has a dynamic extent; that is, we cannot
store it to a heap object when we are going to rewind that stack and
restore an old continuation.
|
2014-02-02 12:27:48 +09:00 |
Yuichi Nishiwaki
|
cb3128d241
|
refactor values functions
|
2014-02-02 12:27:24 +09:00 |
Yuichi Nishiwaki
|
f2507b5cbf
|
rename ..._from_... to ..._by_...
|
2014-02-02 12:26:43 +09:00 |
Yuichi Nishiwaki
|
2373e7a067
|
continuation now can take more than 1 arguments
|
2014-02-02 12:11:15 +09:00 |
Yuichi Nishiwaki
|
7547b83515
|
add pic_values functions
|
2014-02-02 12:10:31 +09:00 |
Yuichi Nishiwaki
|
ae85bbf60e
|
refactor std port
|
2014-02-02 11:23:23 +09:00 |
Yuichi Nishiwaki
|
b19631f18f
|
use submodule
|
2014-02-01 22:16:09 +09:00 |
Yuichi Nishiwaki
|
c5c3f4c1f5
|
use newer API of xhash
|
2014-02-01 20:01:26 +09:00 |
Yuichi Nishiwaki
|
6a8a0dc8cb
|
use picrin's allocator in lexer
|
2014-02-01 19:33:38 +09:00 |
Yuichi Nishiwaki
|
c68a7c41c7
|
use pic_strdup in lexer and parser
|
2014-02-01 19:33:23 +09:00 |
Yuichi Nishiwaki
|
1746243b15
|
use picrin's strdup impl if possible
|
2014-02-01 19:32:39 +09:00 |
Yuichi Nishiwaki
|
d48ae9227a
|
impl strdup and strndup by myself
|
2014-02-01 19:31:59 +09:00 |
Yuichi Nishiwaki
|
2f50f92ddc
|
use pic_for_each
|
2014-02-01 16:05:29 +09:00 |
Yuichi Nishiwaki
|
47f4060086
|
rewrite deflibrary using gensym
|
2014-02-01 15:41:30 +09:00 |
Yuichi Nishiwaki
|
5080294472
|
change return value of pic_get_args
|
2014-02-01 14:23:21 +09:00 |
Yuichi Nishiwaki
|
54b318f3e1
|
remove new_irep
|
2014-02-01 13:44:43 +09:00 |
Yuichi Nishiwaki
|
53fe18a94e
|
delete OP_PUSHFLOAT
|
2014-01-31 03:11:28 +09:00 |
Yuichi Nishiwaki
|
9172dc9f31
|
remove old pic_symbol_p macro
|
2014-01-31 03:03:36 +09:00 |
Yuichi Nishiwaki
|
f7a871b1e8
|
delete value.c
|
2014-01-30 21:52:10 +09:00 |
Yuichi Nishiwaki
|
2dd8d2746d
|
move all contents in value.c to value.h
|
2014-01-30 21:51:26 +09:00 |
Yuichi Nishiwaki
|
f29e7b9cf1
|
inline definitions for pic_*_value()s
|
2014-01-30 20:58:27 +09:00 |
Yuichi Nishiwaki
|
173d4dcf07
|
use UNUSED macro
|
2014-01-30 18:15:59 +09:00 |
Yuichi Nishiwaki
|
8ae55bd9b6
|
unification uses of int and size_t. use size_t for every variable that
can possibly be used as an array index.
|
2014-01-30 18:14:33 +09:00 |
Yuichi Nishiwaki
|
c1e2528395
|
depress warnings about unused variables in scan.l
|
2014-01-30 18:10:56 +09:00 |
Yuichi Nishiwaki
|
1d2fa33372
|
some of global tables are missed to free
|
2014-01-30 14:34:09 +09:00 |
Yuichi Nishiwaki
|
e8258edfa7
|
remove use of typo'd name function
|
2014-01-30 14:33:16 +09:00 |
Yuichi Nishiwaki
|
4d95707db5
|
add FALLTHROUGH macro
|
2014-01-30 14:13:01 +09:00 |
Yuichi Nishiwaki
|
7c35e50260
|
add NORETURN macro
|
2014-01-30 14:08:36 +09:00 |
Yuichi Nishiwaki
|
75037adfaa
|
hide debug prints
|
2014-01-30 13:50:47 +09:00 |
Yuichi Nishiwaki
|
f32e542392
|
analyze should not emit raw self-evaluating values
|
2014-01-30 13:47:58 +09:00 |
Yuichi Nishiwaki
|
64038fae02
|
unwrap begin expression if it contains 1 or 0 expressions inside
|
2014-01-30 13:36:49 +09:00 |
Yuichi Nishiwaki
|
d471dba322
|
current codegen not supporting env chain short cut
|
2014-01-27 22:24:12 +09:00 |
Yuichi Nishiwaki
|
055272f0d5
|
arena management in pic_list
|
2014-01-27 22:20:46 +09:00 |
Yuichi Nishiwaki
|
b5cf174b5c
|
wrong FOLD_ARGS impl
|
2014-01-27 22:20:31 +09:00 |
Yuichi Nishiwaki
|
8255e11486
|
gc management
|
2014-01-27 22:20:18 +09:00 |
Yuichi Nishiwaki
|
8343ccd675
|
[bugfix] lset never be emit
|
2014-01-27 22:20:08 +09:00 |
Yuichi Nishiwaki
|
82ea416c34
|
get rid of redundant code in is_closed function
|
2014-01-27 22:19:33 +09:00 |
Yuichi Nishiwaki
|
2f8b016d86
|
improve debug prints
|
2014-01-27 22:18:49 +09:00 |
Yuichi Nishiwaki
|
30fcd6468f
|
reverse condition for tail position marking
|
2014-01-27 21:24:10 +09:00 |
Yuichi Nishiwaki
|
3418aebe3f
|
remove unused properties
|
2014-01-27 21:20:12 +09:00 |
Yuichi Nishiwaki
|
c3fd4addc3
|
change AST format
|
2014-01-27 21:20:00 +09:00 |
Yuichi Nishiwaki
|
a2d9d2f93a
|
resolve TODOs
|
2014-01-27 21:18:03 +09:00 |
Yuichi Nishiwaki
|
52927ac452
|
gc resolver
|
2014-01-27 21:17:24 +09:00 |
Yuichi Nishiwaki
|
244ec06953
|
add implicit casts from void *
|
2014-01-27 21:17:04 +09:00 |
Yuichi Nishiwaki
|
26544ff6fd
|
dump ireps recursively
|
2014-01-27 21:14:59 +09:00 |
Yuichi Nishiwaki
|
15ca95eb8f
|
improve debug prints
|
2014-01-27 21:14:41 +09:00 |
Yuichi Nishiwaki
|
09840601c4
|
fflush buffer in pic_debug
|
2014-01-24 17:11:52 +09:00 |
Yuichi Nishiwaki
|
9dd04fd3b3
|
impl resolver
|
2014-01-24 17:11:37 +09:00 |
Yuichi Nishiwaki
|
6b20e004e5
|
[bugfix] var must be a symbol
|
2014-01-24 17:11:15 +09:00 |
Yuichi Nishiwaki
|
237e8c26a6
|
wrong length for call operation
|
2014-01-24 17:10:51 +09:00 |
Yuichi Nishiwaki
|
2126f5b453
|
rename local variables
|
2014-01-24 17:10:19 +09:00 |
Yuichi Nishiwaki
|
f3e2321679
|
add missing returns
|
2014-01-24 17:09:51 +09:00 |
Yuichi Nishiwaki
|
a35606dc16
|
gref/cref/lref are not used by analyzer
|
2014-01-24 17:09:06 +09:00 |
Yuichi Nishiwaki
|
cfdf1ceaf8
|
cleaning up
|
2014-01-24 17:08:35 +09:00 |
Yuichi Nishiwaki
|
56e90f564c
|
quote everything
|
2014-01-23 19:21:37 +09:00 |
Yuichi Nishiwaki
|
03e21218a5
|
remove depth property
|
2014-01-23 19:21:17 +09:00 |
Yuichi Nishiwaki
|
b2c5f5cb6d
|
change ast format
|
2014-01-23 18:57:18 +09:00 |
Yuichi Nishiwaki
|
66a7e653ba
|
change analyze_args API
|
2014-01-23 18:56:52 +09:00 |
Yuichi Nishiwaki
|
801c04788f
|
add cv_foo properties to codegen_context
|
2014-01-23 18:55:39 +09:00 |
Yuichi Nishiwaki
|
75167697f0
|
start using pic_list_ref and pic_list_tail
|
2014-01-23 16:32:20 +09:00 |
Yuichi Nishiwaki
|
2e28f604a6
|
Merge branch 'master' into analyzer
Conflicts:
include/picrin/pair.h
src/pair.c
|
2014-01-23 16:21:10 +09:00 |
Yuichi Nishiwaki
|
c7811f0c39
|
add depth property
|
2014-01-23 16:17:52 +09:00 |
Yuichi Nishiwaki
|
6d346fef87
|
unify the names of IR reference nodes to a name 'ref'
|
2014-01-23 15:18:41 +09:00 |
Yuichi Nishiwaki
|
3dbafd58be
|
cleanup
|
2014-01-23 15:03:43 +09:00 |
Yuichi Nishiwaki
|
95c5361197
|
rewrite min/max/gcd/lcm with C
|
2014-01-22 23:47:33 +09:00 |
Yuichi Nishiwaki
|
2f965fa809
|
replace some number predicates with c imples
|
2014-01-22 22:58:08 +09:00 |
Yuichi Nishiwaki
|
5dd66cbcd1
|
replace list-copy and make-list impls by scheme with ones by C
|
2014-01-22 22:37:27 +09:00 |
Yuichi Nishiwaki
|
c539f889cd
|
native implementatino of for-each
|
2014-01-22 22:21:48 +09:00 |
Yuichi Nishiwaki
|
85a5745716
|
native implmentation of map
|
2014-01-22 22:18:25 +09:00 |
Yuichi Nishiwaki
|
74088d0130
|
replace list-set! impl with C impl
|
2014-01-22 21:35:13 +09:00 |
Yuichi Nishiwaki
|
d07456466d
|
replace cxxr and list? impls by scheme with ones by C
|
2014-01-22 21:29:11 +09:00 |
Yuichi Nishiwaki
|
7fc2885fad
|
replace list impl by scheme with impl by C
|
2014-01-22 21:20:13 +09:00 |
Yuichi Nishiwaki
|
bbd1ec3fbb
|
replace length/reverse/append impls with c functions
|
2014-01-22 21:14:10 +09:00 |
Yuichi Nishiwaki
|
67d4d28d19
|
impl list-ref and list-tail as C functions
|
2014-01-22 21:00:29 +09:00 |
Yuichi Nishiwaki
|
7865cfe9b3
|
add pic_append
|
2014-01-22 20:57:14 +09:00 |
Yuichi Nishiwaki
|
a443d9e3f6
|
add pic_list_ref and pic_list_tail
|
2014-01-22 20:57:05 +09:00 |
Yuichi Nishiwaki
|
655eb7a3bd
|
add pic_compile
|
2014-01-20 16:57:39 +09:00 |
Yuichi Nishiwaki
|
293fef5235
|
add pic_list_ref
|
2014-01-20 16:43:54 +09:00 |
Yuichi Nishiwaki
|
78420ef042
|
remove unused properties
|
2014-01-20 13:22:45 +09:00 |
Yuichi Nishiwaki
|
35cf4e1fcd
|
initialize with global scope
|
2014-01-20 13:15:09 +09:00 |
Yuichi Nishiwaki
|
b2c74552f2
|
change lookup_var API
|
2014-01-20 13:04:21 +09:00 |
Yuichi Nishiwaki
|
fbeb32ee83
|
typo
|
2014-01-20 11:16:52 +09:00 |
Yuichi Nishiwaki
|
6dcf04d50c
|
fix some bugs
|
2014-01-18 22:36:02 -08:00 |
Yuichi Nishiwaki
|
14eb6b334d
|
arena management
|
2014-01-18 22:35:36 -08:00 |
Yuichi Nishiwaki
|
ae933252c9
|
add analyzer prototype
|
2014-01-18 20:20:28 -08:00 |
Yuichi Nishiwaki
|
0ceb9c9953
|
add sSYMBOLs to pic_state
|
2014-01-18 11:47:32 -08:00 |
Yuichi Nishiwaki
|
395f48bc81
|
move rSYMBOLs from pic_state to codegen_state
|
2014-01-18 11:47:18 -08:00 |
Yuichi Nishiwaki
|
9495e9bf5c
|
alloc functions may take 0 for the size
|
2014-01-18 07:33:51 -08:00 |
Yuichi Nishiwaki
|
1aa35891ad
|
[bugfix] must multiply the size by sizeof(struct) when using realloc function
|
2014-01-18 23:01:11 +09:00 |
Yuichi Nishiwaki
|
a315f518d2
|
auto-extend constant pool array
|
2014-01-18 22:56:43 +09:00 |
Yuichi Nishiwaki
|
9fadf16fdb
|
make iseq length configurable
|
2014-01-18 22:54:28 +09:00 |
Yuichi Nishiwaki
|
494989ff3e
|
embed constant pool into irep object
|
2014-01-18 22:32:41 +09:00 |
Yuichi Nishiwaki
|
a0f27a68cd
|
grammartical fix
|
2014-01-18 22:31:40 +09:00 |
Yuichi Nishiwaki
|
fdac5061fd
|
free irep->irep
|
2014-01-18 22:31:25 +09:00 |
Yuichi Nishiwaki
|
5e616e7774
|
store irep objects inside parent irep object
|
2014-01-18 21:48:50 +09:00 |
Yuichi Nishiwaki
|
4f5743ad0f
|
shrink code size
|
2014-01-18 21:47:52 +09:00 |
Yuichi Nishiwaki
|
53e3e019de
|
ccapa property no longer used
|
2014-01-18 21:03:12 +09:00 |
Yuichi Nishiwaki
|
d3412deae1
|
duplicate variable binding
|
2014-01-18 20:53:16 +09:00 |
Yuichi Nishiwaki
|
801d92e0a4
|
store constructing iseq in scope object, not pic_irep
|
2014-01-18 20:49:01 +09:00 |
Yuichi Nishiwaki
|
05a69d10dd
|
cosmetic changes
|
2014-01-18 17:19:46 +09:00 |
Yuichi Nishiwaki
|
a9574155b8
|
do not free objects in pic->irep by hands
|
2014-01-18 16:59:43 +09:00 |
Yuichi Nishiwaki
|
82e205bbd0
|
Merge branch 'master' into irep-gc
|
2014-01-18 16:58:24 +09:00 |
Yuichi Nishiwaki
|
9d18af51da
|
some global stacks are missed to free
|
2014-01-18 16:58:14 +09:00 |
Yuichi Nishiwaki
|
0db09b146c
|
ireps generated by top codegen are not registered to pic->irep. get them
marked manually.
|
2014-01-18 16:56:20 +09:00 |
Yuichi Nishiwaki
|
42c097a91f
|
pic->irep is a root marker
|
2014-01-18 16:55:11 +09:00 |
Yuichi Nishiwaki
|
11e4f1644b
|
irep object is now controlled under GC
|
2014-01-18 16:53:39 +09:00 |
Yuichi Nishiwaki
|
586b228156
|
add PIC_TT_IREP
|
2014-01-18 16:51:54 +09:00 |
Yuichi Nishiwaki
|
b62374b4b4
|
s/print_irep/pic_dump_irep/g
|
2014-01-18 16:23:12 +09:00 |
Yuichi Nishiwaki
|
acb513aa16
|
publish pic_callcc
|
2014-01-18 16:08:07 +09:00 |
Yuichi Nishiwaki
|
3ff7d5b208
|
grammatical fix
|
2014-01-18 16:06:59 +09:00 |
Yuichi Nishiwaki
|
ee4cb87083
|
impl pic_unwrap_var
|
2014-01-18 12:58:00 +09:00 |