mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-19 13:49:16 +02:00
Clean up and more function conversions
This commit is contained in:
parent
5ff682a592
commit
807eb98843
1 changed files with 11 additions and 10 deletions
21
runtime.c
21
runtime.c
|
@ -361,7 +361,7 @@ static void Cyc_global_set_cps_gc_return(void *data, object cont, int argc, obje
|
||||||
object next = args[2];
|
object next = args[2];
|
||||||
object *glo = (object *)glo_obj;
|
object *glo = (object *)glo_obj;
|
||||||
*(glo) = val;
|
*(glo) = val;
|
||||||
closcall1(data, next, val);
|
closcall1(data, (closure)next, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
object Cyc_global_set_cps(void *thd, object cont, object identifier, object * glo, object value)
|
object Cyc_global_set_cps(void *thd, object cont, object identifier, object * glo, object value)
|
||||||
|
@ -1197,7 +1197,7 @@ void dispatch_write_va(void *data, object clo, int argc, object *args)
|
||||||
opts = args[1];
|
opts = args[1];
|
||||||
}
|
}
|
||||||
result = Cyc_write_va_list(data, x, opts);
|
result = Cyc_write_va_list(data, x, opts);
|
||||||
return_closcall1(data, cont, result);
|
return_closcall1(data, clo, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
object Cyc_write_va(void *data, int argc, object x, ...)
|
object Cyc_write_va(void *data, int argc, object x, ...)
|
||||||
|
@ -5568,20 +5568,20 @@ object apply(void *data, object cont, object func, object args)
|
||||||
make_pair(c, func, args);
|
make_pair(c, func, args);
|
||||||
//printf("JAE DEBUG, sending to eval: ");
|
//printf("JAE DEBUG, sending to eval: ");
|
||||||
//Cyc_display(data, &c, stderr);
|
//Cyc_display(data, &c, stderr);
|
||||||
((closure) Cyc_glo_eval_from_c)->fn(data, 2, Cyc_glo_eval_from_c, cont,
|
object buf[3] = {cont, &c, NULL};
|
||||||
&c, NULL);
|
((closure) Cyc_glo_eval_from_c)->fn(data, Cyc_glo_eval_from_c, 2, buf);
|
||||||
|
|
||||||
// TODO: would be better to compare directly against symbols here,
|
// TODO: would be better to compare directly against symbols here,
|
||||||
// but need a way of looking them up ahead of time.
|
// but need a way of looking them up ahead of time.
|
||||||
// maybe a libinit() or such is required.
|
// maybe a libinit() or such is required.
|
||||||
} else if (strncmp(((symbol) fobj)->desc, "primitive", 10) == 0 && Cyc_glo_eval_from_c != NULL) {
|
} else if (strncmp(((symbol) fobj)->desc, "primitive", 10) == 0 && Cyc_glo_eval_from_c != NULL) {
|
||||||
make_pair(c, cadr(func), args);
|
make_pair(c, cadr(func), args);
|
||||||
((closure) Cyc_glo_eval_from_c)->fn(data, 3, Cyc_glo_eval_from_c, cont,
|
object buf[3] = {cont, &c, NULL};
|
||||||
&c, NULL);
|
((closure) Cyc_glo_eval_from_c)->fn(data, Cyc_glo_eval_from_c, 3, buf);
|
||||||
} else if (strncmp(((symbol) fobj)->desc, "procedure", 10) == 0 && Cyc_glo_eval_from_c != NULL) {
|
} else if (strncmp(((symbol) fobj)->desc, "procedure", 10) == 0 && Cyc_glo_eval_from_c != NULL) {
|
||||||
make_pair(c, func, args);
|
make_pair(c, func, args);
|
||||||
((closure) Cyc_glo_eval_from_c)->fn(data, 3, Cyc_glo_eval_from_c, cont,
|
object buf[3] = {cont, &c, NULL};
|
||||||
&c, NULL);
|
((closure) Cyc_glo_eval_from_c)->fn(data, Cyc_glo_eval_from_c, 3, buf);
|
||||||
} else {
|
} else {
|
||||||
make_pair(c, func, args);
|
make_pair(c, func, args);
|
||||||
Cyc_rt_raise2(data, "Unable to evaluate: ", &c);
|
Cyc_rt_raise2(data, "Unable to evaluate: ", &c);
|
||||||
|
@ -6650,7 +6650,7 @@ void Cyc_exit_thread(gc_thread_data * thd)
|
||||||
gc_remove_mutator(thd);
|
gc_remove_mutator(thd);
|
||||||
ck_pr_cas_int((int *)&(thd->thread_state), CYC_THREAD_STATE_RUNNABLE,
|
ck_pr_cas_int((int *)&(thd->thread_state), CYC_THREAD_STATE_RUNNABLE,
|
||||||
CYC_THREAD_STATE_TERMINATED);
|
CYC_THREAD_STATE_TERMINATED);
|
||||||
pthread_exit(NULL); // For now, just a proof of concept
|
pthread_exit(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -6837,7 +6837,8 @@ void Cyc_import_shared_object(void *data, object cont, object filename, object e
|
||||||
Cyc_rt_raise2(data, "Unable to load symbol", &s);
|
Cyc_rt_raise2(data, "Unable to load symbol", &s);
|
||||||
}
|
}
|
||||||
mclosure1(clo, entry_pt, cont);
|
mclosure1(clo, entry_pt, cont);
|
||||||
entry_pt(data, 0, &clo, &clo);
|
object buf[1] = {&clo};
|
||||||
|
entry_pt(data, &clo, 1, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Read */
|
/** Read */
|
||||||
|
|
Loading…
Add table
Reference in a new issue