Yuichi Nishiwaki
8598042deb
pic_list_p don't need to take pic_state *.
2014-03-16 23:12:07 +09:00
Yuichi Nishiwaki
495be09d8a
[bugfix] could not explicitly disable readline on some environment where libreadline
...
is installed
2014-03-15 21:22:53 +09:00
Yuichi Nishiwaki
68ea22f6eb
add pic_blk_exit
2014-03-10 01:51:27 +09:00
Yuichi Nishiwaki
d227c22379
change native_stack marker type to char *
2014-03-10 01:11:01 +09:00
Yuichi Nishiwaki
920674a6ef
typedef struct pic_block pic_block
2014-03-07 22:09:12 +09:00
Yuichi Nishiwaki
751d0f87f8
typedef struct pic_code pic_code
2014-03-07 22:06:43 +09:00
Yuichi Nishiwaki
f0367d95a0
cleanup
2014-03-04 23:58:07 +09:00
Yuichi Nishiwaki
f776907550
pic_error is obsoleted
2014-03-04 00:44:13 +09:00
Yuichi Nishiwaki
4bf2262605
pic_alloc is the right name, not pic_malloc
2014-03-04 00:30:11 +09:00
Yuichi Nishiwaki
d8d34353aa
cleanup
2014-03-04 00:29:00 +09:00
Yuichi Nishiwaki
8f5c053bd8
add display function API
2014-03-04 00:28:39 +09:00
Yuichi Nishiwaki
5b2898ae5c
rename read functions which return a list of multiple expressions to 'parse'
2014-03-04 00:26:33 +09:00
Yuichi Nishiwaki
a9d3d847af
add pic_printf
2014-03-03 22:43:59 +09:00
Yuichi Nishiwaki
408255381c
add pic_eval
2014-03-03 22:39:38 +09:00
Yuichi Nishiwaki
464925d220
refactor pic_for_each
2014-03-03 22:21:34 +09:00
Yuichi Nishiwaki
34bcabf5bc
s/pic_trampoline/pic_apply_trampoline/g
2014-03-03 22:19:27 +09:00
Yuichi Nishiwaki
69ac02f836
add pic_try/pic_catch macros
2014-03-02 22:36:32 +09:00
Yuichi Nishiwaki
887b6a9f91
refactor pic_deflib
2014-03-02 22:23:57 +09:00
Yuichi Nishiwaki
366b6fd7f5
remove include guard written in config.h.
2014-03-01 22:15:14 +09:00
Yuichi Nishiwaki
0cbc9e6c92
refactor config.h. you can predefine config macros via -Dmacro flag in
...
compile line
2014-03-01 22:13:47 +09:00
Yuichi Nishiwaki
3b8868c577
typedef pic_value pic_list
2014-03-01 20:54:02 +09:00
Yuichi Nishiwaki
c357a9302d
remove pic_list, and add pic_listn
2014-03-01 20:46:08 +09:00
Yuichi Nishiwaki
6e7567a598
my own read impl.
2014-03-01 20:21:44 +09:00
Yuichi Nishiwaki
0b8c7a8ccb
add pic_intern
2014-03-01 00:13:11 +09:00
Yuichi Nishiwaki
9a8569ff87
On some environments stdint.h seems not be included implicitly...
2014-02-27 22:17:18 +09:00
Yuichi Nishiwaki
8586dc9057
xrope is now the internal representation of pic_str
2014-02-27 21:54:37 +09:00
Yuichi Nishiwaki
8e511bc410
remove dependencies on pic_state from pic_strlen and pic_strcmp
2014-02-27 19:42:59 +09:00
Yuichi Nishiwaki
878370c29a
gurantee allocators return NULL given size is zero
2014-02-27 13:55:19 +09:00
Yuichi Nishiwaki
06a7b0f5f6
add pic_func struct to hold native function name
2014-02-26 00:39:16 +09:00
Yuichi Nishiwaki
bb93a8be14
catch up to XFILE changes
2014-02-25 21:07:32 +09:00
Yuichi Nishiwaki
9a73ba707c
add pic_strcmp
2014-02-23 17:45:34 +09:00
Yuichi Nishiwaki
0fa61b6a4a
change pic_get_args API. 'z' now returns a pointer to null terminated
...
cstr, 's' a pointer to pic_str
2014-02-23 11:52:15 +09:00
Yuichi Nishiwaki
9f240c191c
add pic_str_new_fill
2014-02-23 11:25:39 +09:00
Yuichi Nishiwaki
349d7f1799
don't take int arguments with size_t
2014-02-23 10:51:21 +09:00
Yuichi Nishiwaki
7ac4cd9ded
add 'pic_' prefix to heap manipulte functions
2014-02-22 16:54:12 +09:00
Yuichi Nishiwaki
5175f0bb8d
change gc heap API and hide sturctures.
2014-02-22 15:53:59 +09:00
Yuichi Nishiwaki
6c065e92c0
add type alias for pic_blob
2014-02-22 15:22:02 +09:00
Yuichi Nishiwaki
56f5f4a1f5
move sturct definitions for basic types to type-specific headers respectively
2014-02-22 15:21:55 +09:00
Yuichi Nishiwaki
a8aa6b2c5e
add some string utility functions
2014-02-21 18:24:20 +09:00
Yuichi Nishiwaki
131440b1d0
s/struct pic_string/pic_str/g
2014-02-21 18:05:59 +09:00
Yuichi Nishiwaki
ca4276afc7
add type aliases for some important types
2014-02-21 17:36:05 +09:00
Yuichi Nishiwaki
c28c45961b
rename pic_symbol_value to pic_sym_value
2014-02-21 17:35:21 +09:00
Yuichi Nishiwaki
8f5569d505
xstdout now handles its own buffer. flush prompts before printing result expression.
2014-02-21 01:28:38 +09:00
Yuichi Nishiwaki
80a794310d
call/cc must save pic->ip
2014-02-20 20:59:35 +09:00
Yuichi Nishiwaki
078b72ff17
cleanup
2014-02-20 20:44:30 +09:00
Yuichi Nishiwaki
7217baee0a
add coarity register to the VM
2014-02-20 16:33:18 +09:00
Yuichi Nishiwaki
b69b549fca
delegate error handling to REPL when no exception handlers remain
2014-02-19 02:22:34 +09:00
Yuichi Nishiwaki
a078266c2d
add pic_raise_continuable
2014-02-18 16:58:51 +09:00
Yuichi Nishiwaki
3a8aa3e728
publish format function family
2014-02-15 19:53:16 +09:00
Yuichi Nishiwaki
923a762411
save symbol names in xhash
2014-02-13 00:14:03 +09:00
Yuichi Nishiwaki
38c840c805
workaround for arena overflow
2014-02-12 23:05:52 +09:00
Yuichi Nishiwaki
098d5dc022
s/syntax/macro/g
2014-02-12 11:13:29 +09:00
Yuichi Nishiwaki
8ea3a7b544
rename a property of pic_syntax s/macro/proc/g
2014-02-12 11:05:32 +09:00
Yuichi Nishiwaki
6b69e8e74b
stx->sym property is no longer used
2014-02-12 11:02:59 +09:00
Yuichi Nishiwaki
3d97e7f749
syntax_new is a private API
2014-02-12 10:59:10 +09:00
Yuichi Nishiwaki
93a259870c
replace pic_syntax_new with pic_syntax_new_macro
2014-02-12 10:52:33 +09:00
Yuichi Nishiwaki
013d734033
remove unused constant
2014-02-12 10:39:35 +09:00
Yuichi Nishiwaki
527f46480a
rename symbols before macro lookup
2014-02-12 10:39:20 +09:00
Yuichi Nishiwaki
9c278889fc
add partial apply funciton
2014-02-12 01:17:05 +09:00
Yuichi Nishiwaki
34c10b0054
unify includes of stdio and assert
2014-02-11 23:25:25 +09:00
Yuichi Nishiwaki
7843dc1023
add pic_errorf
2014-02-11 13:47:11 +09:00
Yuichi Nishiwaki
fc7b59100d
add some user functions to manipulate ports
2014-02-11 13:45:41 +09:00
Yuichi Nishiwaki
b404f30a50
pic_debug family return obj
2014-02-11 13:38:42 +09:00
Yuichi Nishiwaki
372fd3157b
error report is propagated through pic->err
2014-02-11 13:21:00 +09:00
Yuichi Nishiwaki
468e1b4d1f
add pic_fdebug
2014-02-11 00:47:57 +09:00
Yuichi Nishiwaki
7fe109a998
include xfile in picirn.h
2014-02-09 14:52:53 +09:00
Yuichi Nishiwaki
b8d4461401
add a comment
2014-02-09 13:35:55 +09:00
Yuichi Nishiwaki
e52614a51e
dont write argument name on prototype
2014-02-08 02:48:38 +09:00
Yuichi Nishiwaki
d100dde6b1
Merge branch 'master' into trampoline
2014-02-07 10:05:31 +09:00
Yuichi Nishiwaki
faac3f7e9d
include xhash in picrin.h
2014-02-07 01:24:51 +09:00
Yuichi Nishiwaki
53979bf848
prefer type alias to types with 'struct'
2014-02-07 01:15:17 +09:00
Yuichi Nishiwaki
b50006381b
remove unnecessary argument names in prototype
2014-02-06 14:23:29 +09:00
Yuichi Nishiwaki
2ef426d90b
add trampoline helper
2014-02-06 14:22:29 +09:00
Yuichi Nishiwaki
dd547ac093
add OP_NOP
2014-02-04 16:58:50 +09:00
Yuichi Nishiwaki
7837a30d53
add OP_NOP
2014-02-04 16:20:17 +09:00
Yuichi Nishiwaki
a3b0fa701b
rename pic_callinfo.pc -> ip
2014-02-04 10:46:36 +09:00
Yuichi Nishiwaki
018db310d3
save instruction pointer to pic_state
2014-02-04 10:40:03 +09:00
Yuichi Nishiwaki
0592c977da
GC_DEBUG off by default
2014-01-19 01:14:45 -08:00
Yuichi Nishiwaki
122c09d91e
add logic flaw gate in pic_type_repr
2014-01-19 00:55:19 -08:00
Yuichi Nishiwaki
ec00ec0257
add pic_test macro
2014-01-19 00:33:33 -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
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
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
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
b19631f18f
use submodule
2014-02-01 22:16:09 +09:00
Yuichi Nishiwaki
d48ae9227a
impl strdup and strndup by myself
2014-02-01 19:31:59 +09:00
Yuichi Nishiwaki
a4a63314a9
add pic_for_each macro
2014-02-01 16:04:57 +09:00
Yuichi Nishiwaki
47f4060086
rewrite deflibrary using gensym
2014-02-01 15:41:30 +09:00
Yuichi Nishiwaki
c789200f5b
add gensym macro
2014-02-01 15:40:43 +09:00
Yuichi Nishiwaki
3b53cc8a6b
get struct pic_code diet
2014-01-31 03:14:02 +09:00
Yuichi Nishiwaki
53fe18a94e
delete OP_PUSHFLOAT
2014-01-31 03:11:28 +09:00
Yuichi Nishiwaki
d70d96cb34
cosmetic changes
2014-01-31 03:04:00 +09:00
Yuichi Nishiwaki
9172dc9f31
remove old pic_symbol_p macro
2014-01-31 03:03:36 +09:00
Yuichi Nishiwaki
52fc58b55e
use a portable way: append 'static' designator everywhere 'inline' is added
2014-01-31 02:58:53 +09:00
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
223c531a3c
add UNUSED macro
2014-01-30 18:11:41 +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
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
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
c85e07b7ee
shrink default pool/irep size
2014-01-18 23:02:08 +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
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
1433698fe5
publish pic_gc_run
2014-01-16 22:02:09 +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