Yuichi Nishiwaki
beca90cdf0
remove forward declarations of inline functions. gcc provide inline keyword by
...
their own way with major differences from C99.
2014-01-31 02:53:09 +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
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
6de7d610ee
Merge branch 'analyzer'
2014-01-30 13:28:44 +09:00
Yuichi Nishiwaki
b1ccc54151
rename include guards
2014-01-23 16:47:13 +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
5dd66cbcd1
replace list-copy and make-list impls by scheme with ones by C
2014-01-22 22:37:27 +09:00
Yuichi Nishiwaki
74088d0130
replace list-set! impl with C impl
2014-01-22 21:35:13 +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
799e26cff0
increate gc header alignment size
2014-01-22 20:44:55 +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
OGINO Masanori
9be7ffc5fc
Define the type of marking flags as unsigned int.
...
We could define it as _Bool since we are going to use C99, but unsigned
int is more portable (even in C89!) and extensible (when we decide to
use tri-color marking GC.)
Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
2014-01-20 14:31:01 +09:00
Yuichi Nishiwaki
494989ff3e
embed constant pool into irep object
2014-01-18 22:32:41 +09:00
Yuichi Nishiwaki
5e616e7774
store irep objects inside parent irep object
2014-01-18 21:48:50 +09:00
Yuichi Nishiwaki
53e3e019de
ccapa property no longer used
2014-01-18 21:03:12 +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
4522dd47af
do not put includes in header, but put it in c file
2014-01-18 12:43:38 +09:00
Yuichi Nishiwaki
1aa47ad45a
add 'extern "C"' to all header files
2014-01-18 12:41:39 +09:00
Yuichi Nishiwaki
ca068f560b
clarify license information
2014-01-17 20:58:31 +09:00
Yuichi Nishiwaki
dc773f9560
decl indicator positioning functions
2014-01-17 20:11:06 +09:00
Yuichi Nishiwaki
dfd5f96e7e
change memory open API
2014-01-17 13:11:52 +09:00
Yuichi Nishiwaki
db75df2624
add heap finializer
2014-01-16 22:02:30 +09:00
Yuichi Nishiwaki
eaf79ce757
cosmetic changes
2014-01-16 21:00:55 +09:00
Yuichi Nishiwaki
94b2a68f7f
change mwopen's API
2014-01-16 20:36:22 +09:00
Yuichi Nishiwaki
9fbf7e1914
cleanup
2014-01-16 20:27:39 +09:00
Yuichi Nishiwaki
8709ada140
replace fpos_t with long since old versions of clang and gcc seem claim
...
that fpos_t and long are not convertible
2014-01-16 20:13:13 +09:00
Yuichi Nishiwaki
df313b5bd9
decl memory access functions
2014-01-16 20:04:27 +09:00
Yuichi Nishiwaki
6f32cbdea3
handle end-of-file while reading file object
2014-01-16 19:56:45 +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
ce21353d50
impl pic_fwrite with simple buffering
2014-01-16 18:39:03 +09:00
Yuichi Nishiwaki
eca456f875
add IO buffering (setvbuf)
2014-01-16 18:36:47 +09:00
Yuichi Nishiwaki
392549b315
replace old stdio functions with picrin's wrapper impls
2014-01-16 18:32:05 +09:00
Yuichi Nishiwaki
86eb4bb64b
add string IO wrapper function prototypes
2014-01-16 18:30:03 +09:00
Yuichi Nishiwaki
8ce83bdbe7
declare some low-level file IO operation methods
2014-01-16 18:28:37 +09:00
Yuichi Nishiwaki
63d23bdeda
[WIP] add generic file object constructor (pic_funopen)
2014-01-16 18:27:05 +09:00
Yuichi Nishiwaki
1cb9b0347d
[WIP] replace FILE* with my own FILE structure (pic_file *)
2014-01-16 18:24:25 +09:00
Yuichi Nishiwaki
8ad90e8c17
add missing trailing comma
2014-01-16 18:21:00 +09:00
Yuichi Nishiwaki
1c14feffa4
add accessors of stdio ports
2014-01-13 00:51:19 +09:00
Yuichi Nishiwaki
d9911cabc8
publish pic_eof_object()
2014-01-13 00:49:25 +09:00
Yuichi Nishiwaki
11ead27614
wrapper/unwrapper for var-proc conversion
2014-01-12 16:08:27 +09:00
Yuichi Nishiwaki
68f0eb97c9
pic_symbol_p macro is replaced with pic_sym_p
2014-01-12 13:15:41 +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
9b02247082
initial explicit renaming macro prototype
2014-01-09 16:34:22 +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
33cbf5ff6a
configurable none value
2014-01-08 15:22:23 +09:00
Yuichi Nishiwaki
7cdcbd4604
set name to each library
2013-12-07 18:59:13 -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
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
ef04e3f02c
add pic_core_syntactic_env
2013-12-06 18:04:36 +09:00
Yuichi Nishiwaki
62f0a50faf
set bitfield to union header.mark
2013-12-03 11:53:36 +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
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
1ab588d21f
added hygienic macro facility! Fooo!
2013-11-27 15:58:28 +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
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
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
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
579735d16e
s/heap_page/pic_heap/g
2013-11-22 07:19:31 -08:00
Yuichi Nishiwaki
1be72f1e18
rewrite gc!
2013-11-22 06:38:29 -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
d4188e0969
add error function
2013-11-17 18:16:03 +09:00
Yuichi Nishiwaki
fdc9bfea4e
initial exception handling support
2013-11-17 17:25:26 +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
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
d6c377a33b
native support for dynamic-wind
2013-11-11 18:04:21 +09:00
Yuichi Nishiwaki
8b484b69d7
rename fields in struct pic_cont
2013-11-11 10:14:42 +09:00
Yuichi Nishiwaki
8a85e62472
add a note about undef values
2013-11-09 14:27:50 +09:00
Yuichi Nishiwaki
64ae8bd7b0
initial call/cc support
2013-11-09 14:14:25 +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
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
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
86458359e3
reduce allocation size when creating pic_env object in OP_CALL
2013-11-04 20:23:06 -05:00
Yuichi Nishiwaki
d0602303e3
s/num_val/valuec/g
2013-11-04 16:07:36 -05: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
6fcce1cd23
cleanup
2013-10-30 16:43:15 +09:00
Yuichi Nishiwaki
1e4ff3276a
add pic_type_repr
2013-10-30 15:37:33 +09:00
Yuichi Nishiwaki
e4b913cb15
add OP_TAILCALL
2013-10-30 10:03:46 +09:00
Yuichi Nishiwaki
759c9eb55c
bugfix: move env related macros from port.h to proc.h
2013-10-29 16:47:29 +09:00
Yuichi Nishiwaki
073f45666a
write function should be print even env objects
2013-10-29 16:44:38 +09:00
Yuichi Nishiwaki
edcd060a8a
initial vector support
2013-10-29 15:51:37 +09:00
Yuichi Nishiwaki
1d9410638d
remove unused auxuality data field proc->aux
2013-10-29 02:23:14 +09:00
Yuichi Nishiwaki
c2b9331083
fix bad style macro definitinos
2013-10-29 02:17:55 +09:00
Yuichi Nishiwaki
63b52991da
introduce immediate symbol value
2013-10-29 02:11:31 +09:00
Yuichi Nishiwaki
c77b8be011
insert type checks in pic_get_args
2013-10-28 00:40:10 +09:00
Yuichi Nishiwaki
d3df6dcbf2
support exact integer
2013-10-28 00:21:24 +09:00
Yuichi Nishiwaki
f3041b7ebc
support rest arguments
2013-10-27 18:13:36 +09:00
Yuichi Nishiwaki
83de938342
add some port predicates
2013-10-24 22:56:04 +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
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
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
0fd1bbeae9
throw wrong number of arguments error for user defined lambda call
2013-10-24 00:09:40 +09:00
Yuichi Nishiwaki
dd3adf30e6
use xhash to manage scopes during codegin
2013-10-22 22:22:35 +09:00
Yuichi Nishiwaki
779199d571
add many many number primitive functions
2013-10-22 17:24:07 +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
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
db1f977600
add pic_list_p
2013-10-21 12:03:35 +09:00
Yuichi Nishiwaki
7dbb2c6de4
cleanup
2013-10-21 11:44:23 +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
7322271d65
intern symbols using hash table
2013-10-20 14:05:48 +09:00
Yuichi Nishiwaki
bde09e063a
add pic_acons function
2013-10-20 14:04:39 +09:00
Yuichi Nishiwaki
50b9c2bd97
add pair.h
2013-10-20 12:34:57 +09:00
Yuichi Nishiwaki
cfae6f3c59
add OP_NILP
2013-10-20 03:53:02 +09:00
Yuichi Nishiwaki
78f301794a
add OP_CAR/OP_CDR
2013-10-20 03:48:06 +09:00
Yuichi Nishiwaki
5e96d05fd1
insert OP_POP into sequential operation
2013-10-18 02:29:11 +09:00
Yuichi Nishiwaki
e7a5784fd7
allocate global variable entry area by malloc and save it into pic_state
2013-10-18 00:15:15 +09:00
Yuichi Nishiwaki
1646de5e8d
initial port commit
2013-10-17 22:42:47 +09:00
Yuichi Nishiwaki
e87f632327
writer writes lists in short form
2013-10-17 22:42:20 +09:00
Yuichi Nishiwaki
5671c43a77
do not abort when finding syntax error
2013-10-17 17:57:12 +09:00
Yuichi Nishiwaki
4e83ad4843
s/pic_instruction/pic_opcode/g
2013-10-17 14:18:32 +09:00
Yuichi Nishiwaki
6c903db758
if syntax
2013-10-16 17:42:47 +09:00
Yuichi Nishiwaki
87dce75c78
add local variables
2013-10-16 17:20:53 +09:00
Yuichi Nishiwaki
9b7fdb0725
undef object must not appear in the user land
2013-10-16 13:24:08 +09:00
Yuichi Nishiwaki
ff646e05dd
support boolean values
2013-10-16 13:17:01 +09:00
Yuichi Nishiwaki
f6eddbc6d3
save all ireps into pic_state
...
in order to decrease the stress GC will get, restore irep structures
under pic_state instead of under each procs and making it collectable object
2013-10-16 11:53:25 +09:00
Yuichi Nishiwaki
c593a46a62
add OP_LAMBDA (lambda object creation)
2013-10-16 11:32:30 +09:00
Yuichi Nishiwaki
19abedf746
warn when a closure is applied
2013-10-16 11:28:57 +09:00
Yuichi Nishiwaki
a93c3caabf
move pic_env to proc.h
2013-10-15 21:53:45 +09:00
Yuichi Nishiwaki
d40c8b5921
add cfunc_p flag to pic_proc
2013-10-15 21:52:14 +09:00
Yuichi Nishiwaki
a5dcaba970
add support for arithmetic operations
2013-10-15 21:29:07 +09:00
Yuichi Nishiwaki
af9dd45e65
change the type of immediate number value from int to double
2013-10-15 20:05:12 +09:00
Yuichi Nishiwaki
8a5ea7d7dc
implement OP_CALL
2013-10-15 19:18:33 +09:00
Yuichi Nishiwaki
6a10162c2c
add picrin/proc.h
2013-10-15 13:21:40 +09:00
Yuichi Nishiwaki
276e139ec6
fix bugs around GC
2013-10-14 18:21:56 +09:00
Yuichi Nishiwaki
a5db43ba91
add object finalizer
2013-10-13 19:00:39 +09:00
Yuichi Nishiwaki
dc2f25ef2a
initial GC commit
2013-10-13 19:00:12 +09:00
Yuichi Nishiwaki
a6f561d66e
change the type of argument pic_gc_protect accepts
2013-10-13 17:25:36 +09:00
Yuichi Nishiwaki
1fb9ac5d03
let pic_proc be a first class object
2013-10-13 16:16:13 +09:00
Yuichi Nishiwaki
d92bd71293
force alignment of headers
2013-10-13 16:02:08 +09:00
Yuichi Nishiwaki
e3600a65c9
replace mock allocator with simple k&r malloc
2013-10-13 15:14:15 +09:00
Yuichi Nishiwaki
b284973035
add #<undef>
2013-10-12 14:40:01 +09:00
Yuichi Nishiwaki
03fbd0bdb6
add fixnum
2013-10-12 00:15:46 +09:00
Yuichi Nishiwaki
6b0c1aa668
first eval commit
2013-10-11 17:36:51 +09:00
Yuichi Nishiwaki
2a6978a3b9
fix bugs around compilation
2013-10-10 17:54:35 +09:00
Yuichi Nishiwaki
b640dc08e8
add pic_debug function
2013-10-10 17:48:01 +09:00
Yuichi Nishiwaki
0fad63f22a
add nil stuff
2013-10-10 17:08:54 +09:00
Yuichi Nishiwaki
177d2c7098
add pic_obj_value function
2013-10-10 17:05:58 +09:00
Yuichi Nishiwaki
ebffe5a22e
decide value representation
2013-10-10 16:34:24 +09:00