Yuichi Nishiwaki
2b66b7c5a2
allow arbitrary objects at codegen time
2014-08-06 15:53:54 +09:00
Yuichi Nishiwaki
bc47968ea1
add (picrin list) and (picrin base list)
2014-08-06 02:07:02 +09:00
Yuito Murase
fa0de0c3fa
Merge remote-tracking branch 'upstream/master' into native-record
...
Conflicts:
include/picrin/value.h
piclib/prelude.scm
src/codegen.c
src/gc.c
src/init.c
src/macro.c
src/vm.c
src/write.c
2014-08-03 15:48:24 +09:00
Yuito Murase
c76dfcb861
implement native record
...
native record primitives are defined in (picrin record-primitive)
- (make-record rectype)
- (record-of? record rectype)
- (record-ref record rectype field-name)
- (record-set! record rectype field-name value)
define-record-type is defined using these primitives
2014-08-03 15:30:48 +09:00
Yuichi Nishiwaki
38076e738e
lookup global variable by name
2014-07-29 16:09:04 +09:00
Yuichi Nishiwaki
09efa4715c
add another argument to eval
2014-07-27 13:23:59 +09:00
Yuichi Nishiwaki
50879dd7b6
Allocate pic_blocks in picrin's gc pool; reference count may cause problems
2014-07-25 14:41:56 +09:00
Yuichi Nishiwaki
72422343c0
s/lib->senv/lib->env/g
2014-07-20 15:30:48 +09:00
Yuichi Nishiwaki
32174d7855
remove box
2014-07-17 16:38:18 +09:00
Yuichi Nishiwaki
6cc37281d6
remove pic_tt_sc type
2014-07-17 13:59:21 +09:00
Yuichi Nishiwaki
f02bac1d88
register function name to lambdas like (define foo (lambda ...))
2014-07-15 20:57:35 +09:00
Yuichi Nishiwaki
5faa7cd46d
leave core syntax keywords renamed
2014-07-14 10:08:11 +09:00
Yuichi Nishiwaki
c5400b4b2d
support more than 2 argument-comparators
2014-06-28 20:29:49 +09:00
Yuichi Nishiwaki
da4a4fd449
api changes of reader/parser
2014-06-25 15:39:04 +09:00
Yuichi Nishiwaki
8c80b6ef5b
use "%zu"s for size_t
2014-06-22 20:09:38 +09:00
Yuichi Nishiwaki
da553b9001
primary symbol to object hashtable support (dictionary)
2014-06-14 22:17:57 +09:00
Yuichi Nishiwaki
f9e733a7b1
update xhash
2014-06-14 20:59:31 +09:00
Sunrim KIM (keen)
cb3a975ed6
fix analyze errer for (+) and (*)
2014-05-27 18:53:13 +09:00
Yuichi Nishiwaki
2155a0c8f1
declare arena_idx as a size_t
2014-05-26 16:06:41 +09:00
Yuichi Nishiwaki
2151640331
add native box API
2014-03-31 21:50:08 +09:00
Yuichi Nishiwaki
d8c182bc69
add user-defined data type API
2014-03-29 20:42:06 +09:00
Yuichi Nishiwaki
24d6540d56
record procedure name in irep
2014-03-28 12:26:07 +09:00
Yuichi Nishiwaki
fbbbf7b019
cleanup
2014-03-28 12:18:24 +09:00
Yuichi Nishiwaki
010ee9ddb6
get rid of redundant symbol to value cast
2014-03-28 12:10:09 +09:00
Yuichi Nishiwaki
c86c153e53
when procedual-define is analyzed, don't create a lambda expression
...
inside, call analyze_procedure directly instead.
2014-03-28 12:10:09 +09:00
Yuichi Nishiwaki
3215ba2677
cleanup. move analyze_lambda
2014-03-28 12:10:09 +09:00
Yuichi Nishiwaki
e47bd63762
[refactor] add analyze_declare
2014-03-28 12:10:09 +09:00
Yuichi Nishiwaki
e2741f8580
[refactor] analyze_define
2014-03-28 12:10:09 +09:00
Yuichi Nishiwaki
c10f40acd4
change pic_find_rename API
2014-03-27 16:19:55 +09:00
Yuichi Nishiwaki
4cd217937f
if rest argument value is captured, copy it to capture area. close #78 .
2014-03-26 21:02:43 +09:00
Yuichi Nishiwaki
ca42b44921
update xhash uses
2014-03-25 15:29:26 +09:00
Yuichi Nishiwaki
594742f845
refine variabe redefinitino error message
2014-03-25 14:31:32 +09:00
Yuichi Nishiwaki
b757368748
add renamer APIs
2014-03-25 14:12:53 +09:00
Yuichi Nishiwaki
b12be97194
cleanup
2014-03-23 18:47:55 +09:00
Yuichi Nishiwaki
4a1809a9c5
get access to captured local variables with OP_LREF/OP_LSET
2014-03-23 12:18:41 +09:00
Yuichi Nishiwaki
1b6f1db1c0
s/create_cv_table/create_activation/g
2014-03-23 12:10:34 +09:00
Yuichi Nishiwaki
cac31845d0
cv_tbl is no longer used
2014-03-23 12:10:34 +09:00
Yuichi Nishiwaki
c9eb612561
do variable closing operation not in OP_CALL but in OP_RET
2014-03-23 12:10:34 +09:00
Yuichi Nishiwaki
74294c819f
remove resolver pass
2014-03-23 11:55:06 +09:00
Yuichi Nishiwaki
312c977c17
distinguish lref and cref at analysis stage
2014-03-23 11:28:11 +09:00
Yuichi Nishiwaki
0bcb970842
handle grefs at analyzing stage
2014-03-23 11:10:27 +09:00
Yuichi Nishiwaki
d8ab5cadd1
cleanup. rename local variable.
2014-03-22 19:19:49 +09:00
Yuichi Nishiwaki
ac4e46783c
remove unused property
2014-03-22 19:13:46 +09:00
Yuichi Nishiwaki
12852b0628
s/cv_num/capturec/g
2014-03-22 19:13:07 +09:00
Yuichi Nishiwaki
bdcf8a4bcb
change ugly implementation; don't call realloc for each puching!
2014-03-22 19:04:42 +09:00
Yuichi Nishiwaki
cb2f9fece3
separate cv table creation
2014-03-22 18:58:25 +09:00
Yuichi Nishiwaki
5a56f57782
hold local variables information in codegen_context
2014-03-22 18:46:57 +09:00
Yuichi Nishiwaki
046fae1adb
grammer error fix
2014-03-22 18:41:46 +09:00
Yuichi Nishiwaki
510af57ce5
explict type cast for return valus from pic_*allloc family is not mandatory
2014-03-22 18:29:14 +09:00
Yuichi Nishiwaki
189487b026
[bugfix] don't push symbols doubly to captured variable list
2014-03-21 12:51:57 +09:00