mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-19 05:39:17 +02:00
WIP
This commit is contained in:
parent
eb8bd8001f
commit
da54b226e4
4 changed files with 34 additions and 7 deletions
|
@ -115,6 +115,7 @@ static void __lambda_1(int argc, closure _,object r_732) ;
|
|||
static void __lambda_0(int argc, closure _,object r_733) ;
|
||||
|
||||
static void __lambda_3(int argc, closure _) {
|
||||
printf("Done with library inits\n");
|
||||
make_int(c_7318, 0);
|
||||
return_check1(__lambda_2,&c_7318);;
|
||||
}
|
||||
|
@ -133,6 +134,9 @@ static void __lambda_0(int argc, closure _,object r_733) {
|
|||
__halt(Cyc_write(&c_7312));
|
||||
}
|
||||
|
||||
extern void c_libslib2_entry_pt(int argc, closure cont);
|
||||
extern void c_libslib1_entry_pt(int argc, closure cont);
|
||||
extern void c_schemebase_entry_pt(int argc, closure cont);
|
||||
static void c_entry_pt(argc, env,cont) int argc; closure env,cont; {
|
||||
// TODO: should do these explicitly instead of using macros, in case they are not generated
|
||||
mclosure0(c_done, __lambda_3);
|
||||
|
@ -142,7 +146,7 @@ static void c_entry_pt(argc, env,cont) int argc; closure env,cont; {
|
|||
|
||||
// TODO: need to change each entry point to accept above closures
|
||||
// will need to check in each one for closure1 or closure0, I think???
|
||||
funcall0(c_base);
|
||||
funcall0(&c_base);
|
||||
|
||||
// TODO: these can't return, they need to call into each other as a continuation chain
|
||||
//c_schemebase_entry_pt(argc, env,cont);
|
||||
|
|
|
@ -118,7 +118,8 @@ void __lambda_0(int argc, closure _,object k_735) {
|
|||
return_funcall1( k_735, Cyc_write(__glo_lib2_91hello));;
|
||||
}
|
||||
|
||||
void c_libslib1_entry_pt(argc, env,cont) int argc; closure env,cont; {
|
||||
void c_libslib1_entry_pt(argc, cont) int argc; closure cont; {
|
||||
printf("Initializing lib1\n");
|
||||
|
||||
add_global((object *) &__glo_lib1_91hello);
|
||||
add_global((object *) &__glo_internal_91func);
|
||||
|
@ -136,4 +137,10 @@ void c_libslib1_entry_pt(argc, env,cont) int argc; closure env,cont; {
|
|||
make_cons(c_7333, &pair_7326,Cyc_global_variables);
|
||||
make_cons(c_7332, &pair_7328, &c_7333);
|
||||
make_cons(c_7331, &pair_7330, &c_7332);
|
||||
Cyc_global_variables = &c_7331;}
|
||||
Cyc_global_variables = &c_7331;
|
||||
|
||||
if (((closure)cont)->tag == closure1_tag) {
|
||||
((cont)->fn)(1, ((closure1_type *)cont)->elt1);
|
||||
} else {
|
||||
((cont)->fn)(0, cont);
|
||||
}}
|
||||
|
|
|
@ -46,7 +46,8 @@
|
|||
object __glo_lib2_91hello = nil;
|
||||
#include "runtime.h"
|
||||
|
||||
void c_libslib2_entry_pt(argc, env,cont) int argc; closure env,cont; {
|
||||
void c_libslib2_entry_pt(argc, cont) int argc; closure cont; {
|
||||
printf("Initializing lib2\n");
|
||||
|
||||
add_global((object *) &__glo_lib2_91hello);
|
||||
make_string(c_733, "Hello from library #2");
|
||||
|
@ -55,4 +56,9 @@ void c_libslib2_entry_pt(argc, env,cont) int argc; closure env,cont; {
|
|||
make_cvar(cvar_737, (object *)&__glo_lib2_91hello);make_cons(pair_738, find_or_add_symbol("lib2-hello"), &cvar_737);
|
||||
make_cons(c_739, &pair_738,Cyc_global_variables);
|
||||
Cyc_global_variables = &c_739;
|
||||
}
|
||||
|
||||
if (((closure)cont)->tag == closure1_tag) {
|
||||
((cont)->fn)(1, ((closure1_type *)cont)->elt1);
|
||||
} else {
|
||||
((cont)->fn)(0, cont);
|
||||
}}
|
||||
|
|
|
@ -2641,7 +2641,8 @@ static void __lambda_0(int argc, object self_73378, object _191, object result)
|
|||
return_funcall1( ((closureN)self_73378)->elts[0], result);;
|
||||
}
|
||||
|
||||
void c_schemebase_entry_pt(argc, env,cont) int argc; closure env,cont; {
|
||||
void c_schemebase_entry_pt(argc, cont) int argc; closure cont; {
|
||||
printf("Initializing base\n");
|
||||
|
||||
add_global((object *) &__glo_Cyc_91remove_91exception_91handler);
|
||||
add_global((object *) &__glo_Cyc_91add_91exception_91handler);
|
||||
|
@ -2891,4 +2892,13 @@ make_cons(c_731473, &pair_731463, &c_731474);
|
|||
make_cons(c_731472, &pair_731465, &c_731473);
|
||||
make_cons(c_731471, &pair_731467, &c_731472);
|
||||
make_cons(c_731470, &pair_731469, &c_731471);
|
||||
Cyc_global_variables = &c_731470;}
|
||||
Cyc_global_variables = &c_731470;
|
||||
|
||||
if (((closure)cont)->tag == closure1_tag) {
|
||||
((cont)->fn)(1, ((closure1_type *)cont)->elt1);
|
||||
} else {
|
||||
((cont)->fn)(0, cont);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue