declare arena_idx as a size_t
This commit is contained in:
parent
826eb4415d
commit
2155a0c8f1
|
@ -106,8 +106,7 @@ typedef struct {
|
||||||
|
|
||||||
struct pic_heap *heap;
|
struct pic_heap *heap;
|
||||||
struct pic_object **arena;
|
struct pic_object **arena;
|
||||||
size_t arena_size;
|
size_t arena_size, arena_idx;
|
||||||
int arena_idx;
|
|
||||||
|
|
||||||
char *native_stack_start;
|
char *native_stack_start;
|
||||||
} pic_state;
|
} pic_state;
|
||||||
|
@ -124,8 +123,8 @@ void pic_free(pic_state *, void *);
|
||||||
|
|
||||||
void pic_gc_run(pic_state *);
|
void pic_gc_run(pic_state *);
|
||||||
pic_value pic_gc_protect(pic_state *, pic_value);
|
pic_value pic_gc_protect(pic_state *, pic_value);
|
||||||
int pic_gc_arena_preserve(pic_state *);
|
size_t pic_gc_arena_preserve(pic_state *);
|
||||||
void pic_gc_arena_restore(pic_state *, int);
|
void pic_gc_arena_restore(pic_state *, size_t);
|
||||||
|
|
||||||
pic_state *pic_open(int argc, char *argv[], char **envp);
|
pic_state *pic_open(int argc, char *argv[], char **envp);
|
||||||
void pic_close(pic_state *);
|
void pic_close(pic_state *);
|
||||||
|
|
|
@ -266,7 +266,7 @@ static pic_value
|
||||||
analyze(analyze_state *state, pic_value obj, bool tailpos)
|
analyze(analyze_state *state, pic_value obj, bool tailpos)
|
||||||
{
|
{
|
||||||
pic_state *pic = state->pic;
|
pic_state *pic = state->pic;
|
||||||
int ai = pic_gc_arena_preserve(pic);
|
size_t ai = pic_gc_arena_preserve(pic);
|
||||||
pic_value res;
|
pic_value res;
|
||||||
pic_sym tag;
|
pic_sym tag;
|
||||||
|
|
||||||
|
@ -1438,7 +1438,7 @@ struct pic_proc *
|
||||||
pic_compile(pic_state *pic, pic_value obj)
|
pic_compile(pic_state *pic, pic_value obj)
|
||||||
{
|
{
|
||||||
struct pic_irep *irep;
|
struct pic_irep *irep;
|
||||||
int ai = pic_gc_arena_preserve(pic);
|
size_t ai = pic_gc_arena_preserve(pic);
|
||||||
|
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
fprintf(stdout, "ai = %d\n", pic_gc_arena_preserve(pic));
|
fprintf(stdout, "ai = %d\n", pic_gc_arena_preserve(pic));
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
pic_str *
|
pic_str *
|
||||||
pic_get_backtrace(pic_state *pic)
|
pic_get_backtrace(pic_state *pic)
|
||||||
{
|
{
|
||||||
int ai = pic_gc_arena_preserve(pic);
|
size_t ai = pic_gc_arena_preserve(pic);
|
||||||
pic_callinfo *ci;
|
pic_callinfo *ci;
|
||||||
pic_str *trace;
|
pic_str *trace;
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ pic_get_backtrace(pic_state *pic)
|
||||||
void
|
void
|
||||||
pic_print_backtrace(pic_state *pic, struct pic_error *e)
|
pic_print_backtrace(pic_state *pic, struct pic_error *e)
|
||||||
{
|
{
|
||||||
int ai = pic_gc_arena_preserve(pic);
|
size_t ai = pic_gc_arena_preserve(pic);
|
||||||
pic_str *trace;
|
pic_str *trace;
|
||||||
|
|
||||||
assert(pic->err != NULL);
|
assert(pic->err != NULL);
|
||||||
|
|
4
src/gc.c
4
src/gc.c
|
@ -201,14 +201,14 @@ pic_gc_protect(pic_state *pic, pic_value v)
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
size_t
|
||||||
pic_gc_arena_preserve(pic_state *pic)
|
pic_gc_arena_preserve(pic_state *pic)
|
||||||
{
|
{
|
||||||
return pic->arena_idx;
|
return pic->arena_idx;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
pic_gc_arena_restore(pic_state *pic, int state)
|
pic_gc_arena_restore(pic_state *pic, size_t state)
|
||||||
{
|
{
|
||||||
pic->arena_idx = state;
|
pic->arena_idx = state;
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,7 +60,7 @@ pic_features(pic_state *pic)
|
||||||
void
|
void
|
||||||
pic_init_core(pic_state *pic)
|
pic_init_core(pic_state *pic)
|
||||||
{
|
{
|
||||||
int ai = pic_gc_arena_preserve(pic);
|
size_t ai = pic_gc_arena_preserve(pic);
|
||||||
|
|
||||||
pic_deflibrary ("(scheme base)") {
|
pic_deflibrary ("(scheme base)") {
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
pic_value
|
pic_value
|
||||||
pic_load_cstr(pic_state *pic, const char *src)
|
pic_load_cstr(pic_state *pic, const char *src)
|
||||||
{
|
{
|
||||||
int ai;
|
size_t ai;
|
||||||
pic_value v, exprs;
|
pic_value v, exprs;
|
||||||
struct pic_proc *proc;
|
struct pic_proc *proc;
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ pic_value
|
||||||
pic_load(pic_state *pic, const char *fn)
|
pic_load(pic_state *pic, const char *fn)
|
||||||
{
|
{
|
||||||
FILE *file;
|
FILE *file;
|
||||||
int ai;
|
size_t ai;
|
||||||
pic_value v, exprs;
|
pic_value v, exprs;
|
||||||
struct pic_proc *proc;
|
struct pic_proc *proc;
|
||||||
|
|
||||||
|
|
|
@ -150,7 +150,7 @@ static pic_value macroexpand_node(pic_state *, pic_value, struct pic_senv *, pic
|
||||||
static pic_value
|
static pic_value
|
||||||
macroexpand(pic_state *pic, pic_value expr, struct pic_senv *senv, pic_value assoc_box)
|
macroexpand(pic_state *pic, pic_value expr, struct pic_senv *senv, pic_value assoc_box)
|
||||||
{
|
{
|
||||||
int ai = pic_gc_arena_preserve(pic);
|
size_t ai = pic_gc_arena_preserve(pic);
|
||||||
pic_value v;
|
pic_value v;
|
||||||
|
|
||||||
v = macroexpand_node(pic, expr, senv, assoc_box);
|
v = macroexpand_node(pic, expr, senv, assoc_box);
|
||||||
|
@ -196,7 +196,7 @@ push_scope(pic_state *pic, pic_value formals, struct pic_senv *up, pic_value ass
|
||||||
static pic_value
|
static pic_value
|
||||||
macroexpand_list(pic_state *pic, pic_value list, struct pic_senv *senv, pic_value assoc_box)
|
macroexpand_list(pic_state *pic, pic_value list, struct pic_senv *senv, pic_value assoc_box)
|
||||||
{
|
{
|
||||||
int ai = pic_gc_arena_preserve(pic);
|
size_t ai = pic_gc_arena_preserve(pic);
|
||||||
pic_value v, vs;
|
pic_value v, vs;
|
||||||
|
|
||||||
/* macroexpand in order */
|
/* macroexpand in order */
|
||||||
|
@ -271,7 +271,7 @@ macroexpand_deflibrary(pic_state *pic, pic_value expr)
|
||||||
pic_in_library(pic, pic_cadr(pic, expr));
|
pic_in_library(pic, pic_cadr(pic, expr));
|
||||||
|
|
||||||
pic_for_each (v, pic_cddr(pic, expr)) {
|
pic_for_each (v, pic_cddr(pic, expr)) {
|
||||||
int ai = pic_gc_arena_preserve(pic);
|
size_t ai = pic_gc_arena_preserve(pic);
|
||||||
|
|
||||||
pic_eval(pic, v);
|
pic_eval(pic, v);
|
||||||
|
|
||||||
|
|
|
@ -734,7 +734,7 @@ pic_number_string_to_number(pic_state *pic)
|
||||||
void
|
void
|
||||||
pic_init_number(pic_state *pic)
|
pic_init_number(pic_state *pic)
|
||||||
{
|
{
|
||||||
int ai = pic_gc_arena_preserve(pic);
|
size_t ai = pic_gc_arena_preserve(pic);
|
||||||
|
|
||||||
pic_defun(pic, "number?", pic_number_real_p);
|
pic_defun(pic, "number?", pic_number_real_p);
|
||||||
pic_defun(pic, "complex?", pic_number_real_p);
|
pic_defun(pic, "complex?", pic_number_real_p);
|
||||||
|
|
16
src/pair.c
16
src/pair.c
|
@ -84,7 +84,7 @@ pic_list1(pic_state *pic, pic_value obj1)
|
||||||
pic_value
|
pic_value
|
||||||
pic_list2(pic_state *pic, pic_value obj1, pic_value obj2)
|
pic_list2(pic_state *pic, pic_value obj1, pic_value obj2)
|
||||||
{
|
{
|
||||||
int ai = pic_gc_arena_preserve(pic);
|
size_t ai = pic_gc_arena_preserve(pic);
|
||||||
pic_value val;
|
pic_value val;
|
||||||
|
|
||||||
val = pic_cons(pic, obj1, pic_list1(pic, obj2));
|
val = pic_cons(pic, obj1, pic_list1(pic, obj2));
|
||||||
|
@ -97,7 +97,7 @@ pic_list2(pic_state *pic, pic_value obj1, pic_value obj2)
|
||||||
pic_value
|
pic_value
|
||||||
pic_list3(pic_state *pic, pic_value obj1, pic_value obj2, pic_value obj3)
|
pic_list3(pic_state *pic, pic_value obj1, pic_value obj2, pic_value obj3)
|
||||||
{
|
{
|
||||||
int ai = pic_gc_arena_preserve(pic);
|
size_t ai = pic_gc_arena_preserve(pic);
|
||||||
pic_value val;
|
pic_value val;
|
||||||
|
|
||||||
val = pic_cons(pic, obj1, pic_list2(pic, obj2, obj3));
|
val = pic_cons(pic, obj1, pic_list2(pic, obj2, obj3));
|
||||||
|
@ -110,7 +110,7 @@ pic_list3(pic_state *pic, pic_value obj1, pic_value obj2, pic_value obj3)
|
||||||
pic_value
|
pic_value
|
||||||
pic_list4(pic_state *pic, pic_value obj1, pic_value obj2, pic_value obj3, pic_value obj4)
|
pic_list4(pic_state *pic, pic_value obj1, pic_value obj2, pic_value obj3, pic_value obj4)
|
||||||
{
|
{
|
||||||
int ai = pic_gc_arena_preserve(pic);
|
size_t ai = pic_gc_arena_preserve(pic);
|
||||||
pic_value val;
|
pic_value val;
|
||||||
|
|
||||||
val = pic_cons(pic, obj1, pic_list3(pic, obj2, obj3, obj4));
|
val = pic_cons(pic, obj1, pic_list3(pic, obj2, obj3, obj4));
|
||||||
|
@ -123,7 +123,7 @@ pic_list4(pic_state *pic, pic_value obj1, pic_value obj2, pic_value obj3, pic_va
|
||||||
pic_value
|
pic_value
|
||||||
pic_list5(pic_state *pic, pic_value obj1, pic_value obj2, pic_value obj3, pic_value obj4, pic_value obj5)
|
pic_list5(pic_state *pic, pic_value obj1, pic_value obj2, pic_value obj3, pic_value obj4, pic_value obj5)
|
||||||
{
|
{
|
||||||
int ai = pic_gc_arena_preserve(pic);
|
size_t ai = pic_gc_arena_preserve(pic);
|
||||||
pic_value val;
|
pic_value val;
|
||||||
|
|
||||||
val = pic_cons(pic, obj1, pic_list4(pic, obj2, obj3, obj4, obj5));
|
val = pic_cons(pic, obj1, pic_list4(pic, obj2, obj3, obj4, obj5));
|
||||||
|
@ -136,7 +136,7 @@ pic_list5(pic_state *pic, pic_value obj1, pic_value obj2, pic_value obj3, pic_va
|
||||||
pic_value
|
pic_value
|
||||||
pic_list6(pic_state *pic, pic_value obj1, pic_value obj2, pic_value obj3, pic_value obj4, pic_value obj5, pic_value obj6)
|
pic_list6(pic_state *pic, pic_value obj1, pic_value obj2, pic_value obj3, pic_value obj4, pic_value obj5, pic_value obj6)
|
||||||
{
|
{
|
||||||
int ai = pic_gc_arena_preserve(pic);
|
size_t ai = pic_gc_arena_preserve(pic);
|
||||||
pic_value val;
|
pic_value val;
|
||||||
|
|
||||||
val = pic_cons(pic, obj1, pic_list5(pic, obj2, obj3, obj4, obj5, obj6));
|
val = pic_cons(pic, obj1, pic_list5(pic, obj2, obj3, obj4, obj5, obj6));
|
||||||
|
@ -149,7 +149,7 @@ pic_list6(pic_state *pic, pic_value obj1, pic_value obj2, pic_value obj3, pic_va
|
||||||
pic_value
|
pic_value
|
||||||
pic_list7(pic_state *pic, pic_value obj1, pic_value obj2, pic_value obj3, pic_value obj4, pic_value obj5, pic_value obj6, pic_value obj7)
|
pic_list7(pic_state *pic, pic_value obj1, pic_value obj2, pic_value obj3, pic_value obj4, pic_value obj5, pic_value obj6, pic_value obj7)
|
||||||
{
|
{
|
||||||
int ai = pic_gc_arena_preserve(pic);
|
size_t ai = pic_gc_arena_preserve(pic);
|
||||||
pic_value val;
|
pic_value val;
|
||||||
|
|
||||||
val = pic_cons(pic, obj1, pic_list6(pic, obj2, obj3, obj4, obj5, obj6, obj7));
|
val = pic_cons(pic, obj1, pic_list6(pic, obj2, obj3, obj4, obj5, obj6, obj7));
|
||||||
|
@ -205,7 +205,7 @@ pic_length(pic_state *pic, pic_value obj)
|
||||||
pic_value
|
pic_value
|
||||||
pic_reverse(pic_state *pic, pic_value list)
|
pic_reverse(pic_state *pic, pic_value list)
|
||||||
{
|
{
|
||||||
int ai = pic_gc_arena_preserve(pic);
|
size_t ai = pic_gc_arena_preserve(pic);
|
||||||
pic_value v, acc;
|
pic_value v, acc;
|
||||||
|
|
||||||
acc = pic_nil_value();
|
acc = pic_nil_value();
|
||||||
|
@ -221,7 +221,7 @@ pic_reverse(pic_state *pic, pic_value list)
|
||||||
pic_value
|
pic_value
|
||||||
pic_append(pic_state *pic, pic_value xs, pic_value ys)
|
pic_append(pic_state *pic, pic_value xs, pic_value ys)
|
||||||
{
|
{
|
||||||
int ai = pic_gc_arena_preserve(pic);
|
size_t ai = pic_gc_arena_preserve(pic);
|
||||||
pic_value x;
|
pic_value x;
|
||||||
|
|
||||||
xs = pic_reverse(pic, xs);
|
xs = pic_reverse(pic, xs);
|
||||||
|
|
|
@ -217,7 +217,7 @@ read_datum(int tok, yyscan_t scanner)
|
||||||
static pic_value
|
static pic_value
|
||||||
read(int tok, yyscan_t scanner)
|
read(int tok, yyscan_t scanner)
|
||||||
{
|
{
|
||||||
int ai = pic_gc_arena_preserve(pic);
|
size_t ai = pic_gc_arena_preserve(pic);
|
||||||
pic_value val;
|
pic_value val;
|
||||||
|
|
||||||
val = read_datum(tok, scanner);
|
val = read_datum(tok, scanner);
|
||||||
|
|
|
@ -18,7 +18,7 @@ pic_open(int argc, char *argv[], char **envp)
|
||||||
char t;
|
char t;
|
||||||
|
|
||||||
pic_state *pic;
|
pic_state *pic;
|
||||||
int ai;
|
size_t ai;
|
||||||
|
|
||||||
pic = (pic_state *)malloc(sizeof(pic_state));
|
pic = (pic_state *)malloc(sizeof(pic_state));
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ pic_system_cmdline(pic_state *pic)
|
||||||
pic_get_args(pic, "");
|
pic_get_args(pic, "");
|
||||||
|
|
||||||
for (i = 0; i < pic->argc; ++i) {
|
for (i = 0; i < pic->argc; ++i) {
|
||||||
int ai = pic_gc_arena_preserve(pic);
|
size_t ai = pic_gc_arena_preserve(pic);
|
||||||
|
|
||||||
v = pic_cons(pic, pic_obj_value(pic_str_new_cstr(pic, pic->argv[i])), v);
|
v = pic_cons(pic, pic_obj_value(pic_str_new_cstr(pic, pic->argv[i])), v);
|
||||||
pic_gc_arena_restore(pic, ai);
|
pic_gc_arena_restore(pic, ai);
|
||||||
|
@ -95,7 +95,7 @@ pic_system_getenvs(pic_state *pic)
|
||||||
{
|
{
|
||||||
char **envp;
|
char **envp;
|
||||||
pic_value data = pic_nil_value();
|
pic_value data = pic_nil_value();
|
||||||
int ai = pic_gc_arena_preserve(pic);
|
size_t ai = pic_gc_arena_preserve(pic);
|
||||||
|
|
||||||
pic_get_args(pic, "");
|
pic_get_args(pic, "");
|
||||||
|
|
||||||
|
|
2
src/vm.c
2
src/vm.c
|
@ -514,7 +514,7 @@ pic_value
|
||||||
pic_apply(pic_state *pic, struct pic_proc *proc, pic_value argv)
|
pic_apply(pic_state *pic, struct pic_proc *proc, pic_value argv)
|
||||||
{
|
{
|
||||||
pic_code c;
|
pic_code c;
|
||||||
int ai = pic_gc_arena_preserve(pic);
|
size_t ai = pic_gc_arena_preserve(pic);
|
||||||
size_t argc, i;
|
size_t argc, i;
|
||||||
pic_code boot[2];
|
pic_code boot[2];
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue