diff --git a/src/builtins/sysfn.c b/src/builtins/sysfn.c index 876d2e78..5accf8dc 100644 --- a/src/builtins/sysfn.c +++ b/src/builtins/sysfn.c @@ -1865,15 +1865,15 @@ u32* dsv_text[] = { NULL }; -B dsv_ns, dsv_vs; +B def_sysNames, def_sysVals; void sysfn_init(void) { usz dsv_num = sizeof(dsv_strs)/sizeof(char*); usz i = 0; - HArr_p dsv_ns0 = m_harrUv(dsv_num); dsv_ns=dsv_ns0.b; gc_add(dsv_ns); + HArr_p dsv_ns0 = m_harrUv(dsv_num); def_sysNames=dsv_ns0.b; gc_add(def_sysNames); for (usz i = 0; i < dsv_num; i++) dsv_ns0.a[i] = m_c8vec_0(dsv_strs[i]); NOGC_E; - HArr_p dsv_vs0 = m_harrUv(dsv_num); dsv_vs=dsv_vs0.b; gc_add(dsv_vs); + HArr_p dsv_vs0 = m_harrUv(dsv_num); def_sysVals=dsv_vs0.b; gc_add(def_sysVals); #define F(L,N,B) dsv_vs0.a[i] = inc(B); i++; FOR_DEFAULT_SYSVALS(F) #undef F diff --git a/src/load.c b/src/load.c index 6dfc8f35..3d0c976f 100644 --- a/src/load.c +++ b/src/load.c @@ -131,20 +131,21 @@ Block* load_compImport(char* name, B bc, B objs, B blocks, B bodies) { // consum } #endif -B load_comp; -B load_re; B load_compgen; -B load_rtObj; -B load_compArg; -B load_glyphs; B load_explain; +B def_comp; +B def_compArg; +B def_re; +B def_rt; +B def_glyphs; + #if NATIVE_COMPILER #include "opt/comp.c" B load_rtComp; void switchComp(void) { - load_comp = load_comp.u==load_rtComp.u? native_comp : load_rtComp; + def_comp = def_comp.u==load_rtComp.u? native_comp : load_rtComp; } #endif B compObj_c1(B t, B x) { @@ -154,7 +155,7 @@ B compObj_c1(B t, B x) { return res; } B compObj_c2(B t, B w, B x) { - load_comp = x; gc_add(x); + def_comp = x; gc_add(x); return w; } @@ -202,7 +203,7 @@ static NOINLINE Block* bqn_compc(B str, B path, B args, B re, B comp, B compArg) return r; } Block* bqn_comp(B str, B path, B args) { // consumes all - return bqn_compc(str, path, args, load_re, load_comp, load_compArg); + return bqn_compc(str, path, args, def_re, def_comp, def_compArg); } Block* bqn_compScc(B str, B path, B args, B re, B comp, B rt, Scope* sc, bool loose, bool noNS) { // consumes str,path,args str = chr_squeeze(str); @@ -226,7 +227,7 @@ Block* bqn_compScc(B str, B path, B args, B re, B comp, B rt, Scope* sc, bool lo return r; } NOINLINE Block* bqn_compSc(B str, B path, B args, Scope* sc, bool repl) { // consumes str,path,args - return bqn_compScc(str, path, args, load_re, load_comp, load_rtObj, sc, repl, false); + return bqn_compScc(str, path, args, def_re, def_comp, def_rt, sc, repl, false); } B bqn_exec(B str, B path, B args) { // consumes all @@ -236,13 +237,12 @@ B bqn_exec(B str, B path, B args) { // consumes all return res; } -extern B dsv_ns, dsv_vs; B str_all, str_none; void init_comp(B* set, B prim, B sys) { if (q_N(prim)) { - set[0] = inc(load_comp); - set[1] = inc(load_rtObj); - set[2] = inc(load_glyphs); + set[0] = inc(def_comp); + set[1] = inc(def_rt); + set[2] = inc(def_glyphs); } else { if (!isArr(prim) || RNK(prim)!=1) thrM("β€’ReBQN: 𝕩.primitives must be a list"); usz pia = IA(prim); @@ -284,8 +284,8 @@ void init_comp(B* set, B prim, B sys) { } if (q_N(sys)) { all_sys: - set[3] = inc(dsv_ns); - set[4] = inc(dsv_vs); + set[3] = inc(def_sysNames); + set[4] = inc(def_sysVals); } else { if (!isArr(sys) || RNK(sys)!=1) thrM("β€’ReBQN: 𝕩.system must be a list"); if (str_all.u==0) { gc_add(str_all = m_c8vec("all",3)); gc_add(str_none = m_c8vec("none",4)); } @@ -475,8 +475,8 @@ void load_init() { // very last init function decG(rtObjRaw); B* runtime = runtimeH.a; B rtObj = runtimeH.b; - load_rtObj = FAKE_RUNTIME? frtObj : rtObj; - load_compArg = m_hvec2(load_rtObj, incG(bi_sys)); gc_add(FAKE_RUNTIME? rtObj : frtObj); + def_rt = FAKE_RUNTIME? frtObj : rtObj; + def_compArg = m_hvec2(def_rt, incG(bi_sys)); gc_add(FAKE_RUNTIME? rtObj : frtObj); #else B* runtime = fruntime; (void)frtObj; @@ -486,14 +486,14 @@ void load_init() { // very last init function B r = fruntime[i]; if (isVal(r)) v(r)->flags|= i+1; } - load_rtObj = frtObj; - load_compArg = m_hvec2(load_rtObj, incG(bi_sys)); + def_rt = frtObj; + def_compArg = m_hvec2(def_rt, incG(bi_sys)); rt_select=rt_slash=rt_group=rt_find=rt_invFnReg=rt_invFnSwap = incByG(bi_invalidFn, 7); rt_undo=rt_insert = incByG(bi_invalidMd1, 2); rt_under=rt_depth = incByG(bi_invalidMd2, 2); rt_invFnRegFn=rt_invFnSwapFn = invalidFn_c1; #endif - gc_add(load_compArg); + gc_add(def_compArg); gc_add(rt_undo); gc_add(rt_select); gc_add(rt_slash); @@ -521,7 +521,7 @@ void load_init() { // very last init function print_allocStats(); exit(0); #else // use compiler - load_glyphs = m_hvec3(m_c32vec_0(U"+-Γ—Γ·β‹†βˆšβŒŠβŒˆ|¬∧∨<>β‰ =≀β‰₯β‰‘β‰’βŠ£βŠ’β₯ŠβˆΎβ‰β‹ˆβ†‘β†“β†•Β«Β»βŒ½β‰/β‹β’βŠβŠ‘βŠβŠ’βˆŠβ·βŠ”!"), m_c32vec_0(U"Λ™ΛœΛ˜Β¨βŒœβΌΒ΄Λ`"), m_c32vec_0(U"βˆ˜β—‹βŠΈβŸœβŒΎβŠ˜β—ΆβŽ‰βš‡βŸβŽŠ")); gc_add(load_glyphs); + def_glyphs = m_hvec3(m_c32vec_0(U"+-Γ—Γ·β‹†βˆšβŒŠβŒˆ|¬∧∨<>β‰ =≀β‰₯β‰‘β‰’βŠ£βŠ’β₯ŠβˆΎβ‰β‹ˆβ†‘β†“β†•Β«Β»βŒ½β‰/β‹β’βŠβŠ‘βŠβŠ’βˆŠβ·βŠ”!"), m_c32vec_0(U"Λ™ΛœΛ˜Β¨βŒœβΌΒ΄Λ`"), m_c32vec_0(U"βˆ˜β—‹βŠΈβŸœβŒΎβŠ˜β—ΆβŽ‰βš‡βŸβŽŠ")); gc_add(def_glyphs); #if !ONLY_NATIVE_COMP B prevAsrt = runtime[n_asrt]; @@ -531,14 +531,14 @@ void load_init() { // very last init function ); runtime[n_asrt] = prevAsrt; load_compgen = evalFunBlock(comp_b, 0); ptr_dec(comp_b); - load_comp = c1(load_compgen, inc(load_glyphs)); + def_comp = c1(load_compgen, inc(def_glyphs)); #if NATIVE_COMPILER - load_rtComp = load_comp; + load_rtComp = def_comp; #endif - gc_add(load_compgen); gc_add(load_comp); + gc_add(load_compgen); gc_add(def_comp); #endif - load_re = m_caB(7, (B[]){m_c32('?'), m_c32('?'), m_c32('?'), incG(load_rtObj), incG(load_glyphs), incG(dsv_ns), incG(dsv_vs)}); - gc_add(load_re); + def_re = m_caB(7, (B[]){m_c32('?'), m_c32('?'), m_c32('?'), incG(def_rt), incG(def_glyphs), incG(def_sysNames), incG(def_sysVals)}); + gc_add(def_re); #if FORMATTER Block* fmt_b = load_compImport("(formatter)", @@ -576,7 +576,7 @@ B bqn_explain(B str, B path) { thrM("Explainer not included in this CBQN build"); #else if (load_explain.u==0) { - B* runtime = harr_ptr(load_rtObj); + B* runtime = harr_ptr(def_rt); Block* expl_b = load_compImport("(explain)", #include PRECOMPILED_FILE(explain) ); @@ -584,9 +584,8 @@ B bqn_explain(B str, B path) { gc_add(load_explain); } - B args = bi_N; - COMPS_PUSH(path, args, str, load_re); - B c = c2(load_comp, incG(load_compArg), inc(str)); + COMPS_PUSH(path, bi_N, str, def_re); + B c = c2(def_comp, incG(def_compArg), inc(str)); COMPS_POP; B ret = c2(load_explain, c, str); return ret; @@ -798,7 +797,7 @@ void typesFinished_init() { #if NATIVE_COMPILER nativeCompiler_init(); #if ONLY_NATIVE_COMP - load_comp = native_comp; + def_comp = native_comp; #endif #endif } diff --git a/src/load.h b/src/load.h index 2840c328..bb115f47 100644 --- a/src/load.h +++ b/src/load.h @@ -11,6 +11,6 @@ enum { #define COMPS_REF(O,N) O->a[comps_##N] #define COMPS_CREF(N) COMPS_REF(comps_curr, N) -extern B dsv_ns, dsv_vs; +extern B def_sysNames, def_sysVals; B comps_getPrimitives(void); void comps_getSysvals(B* res);