native F⟜k⁼𝕩 & k⊸F⁼𝕩
This commit is contained in:
parent
08b6ff77c4
commit
53bacf00c8
@ -182,6 +182,8 @@ B before_uc1(Md2* t, B o, B f, B g, B x) {
|
||||
if (!isFun(g)) return def_m2_uc1(t, o, f, g, x);
|
||||
return TI(g,fn_ucw)(g, o, inc(f), x);
|
||||
}
|
||||
B before_im(Md2D* d, B x) { return isFun(d->g) && !isCallable(d->f)? TI(d->g,fn_ix)(d->g, inc(d->f), x) : def_m2_im(d, x); }
|
||||
B after_im (Md2D* d, B x) { return isFun(d->f) && !isCallable(d->g)? TI(d->f,fn_iw)(d->f, inc(d->g), x) : def_m2_im(d, x); }
|
||||
|
||||
|
||||
B while_c1(Md2D* d, B x) { B f=d->f; B g=d->g;
|
||||
@ -253,4 +255,6 @@ void md2_init(void) {
|
||||
TIi(t_md2BI,m2_iw) = md2BI_iw;
|
||||
TIi(t_md2BI,m2_ix) = md2BI_ix;
|
||||
c(BMd2,bi_before)->uc1 = before_uc1;
|
||||
c(BMd2,bi_after)->im = after_im;
|
||||
c(BMd2,bi_before)->im = before_im;
|
||||
}
|
||||
|
||||
@ -227,16 +227,13 @@ B chr_squeeze(B x); // consumes; see note below
|
||||
static inline B num_squeezeChk(B x) { return FL_HAS(x,fl_squoze)? x : num_squeeze(x); }
|
||||
static inline B chr_squeezeChk(B x) { return FL_HAS(x,fl_squoze)? x : chr_squeeze(x); }
|
||||
|
||||
B def_fn_uc1(B t, B o, B x);
|
||||
B def_fn_ucw(B t, B o, B w, B x);
|
||||
B def_m1_uc1(Md1* t, B o, B f, B x);
|
||||
B def_m1_ucw(Md1* t, B o, B f, B w, B x);
|
||||
B def_m2_uc1(Md2* t, B o, B f, B g, B x);
|
||||
B def_m2_ucw(Md2* t, B o, B f, B g, B w, B x);
|
||||
B def_fn_im(B t, B x);
|
||||
B def_fn_uc1(B t, B o, B x); B def_fn_ucw(B t, B o, B w, B x);
|
||||
B def_m1_uc1(Md1* t, B o, B f, B x); B def_m1_ucw(Md1* t, B o, B f, B w, B x);
|
||||
B def_m2_uc1(Md2* t, B o, B f, B g, B x); B def_m2_ucw(Md2* t, B o, B f, B g, B w, B x);
|
||||
B def_fn_is(B t, B x);
|
||||
B def_fn_iw(B t, B w, B x);
|
||||
B def_fn_ix(B t, B w, B x);
|
||||
B def_fn_im(B t, B x); B def_m1_im(Md1D* d, B x); B def_m2_im(Md2D* d, B x);
|
||||
B def_fn_iw(B t, B w, B x); B def_m1_iw(Md1D* d, B w, B x); B def_m2_iw(Md2D* d, B w, B x);
|
||||
B def_fn_ix(B t, B w, B x); B def_m1_ix(Md1D* d, B w, B x); B def_m2_ix(Md2D* d, B w, B x);
|
||||
B def_decompose(B x);
|
||||
|
||||
void noop_visit(Value* x);
|
||||
|
||||
12
src/load.c
12
src/load.c
@ -621,12 +621,12 @@ B def_fn_im(B t, B x) { B fn = rt_invFnRegFn(rt_invFnReg, inc(t)); SLOW2(
|
||||
B def_fn_is(B t, B x) { B fn = rt_invFnSwapFn(rt_invFnSwap, inc(t)); SLOW2("!runtime 𝕎⁼𝕩", t, x); B r = c1(fn, x); dec(fn); return r; }
|
||||
B def_fn_iw(B t, B w, B x) { B fn = rt_invFnSwapFn(rt_invFnSwap, inc(t)); SLOW3("!runtime 𝕨F⁼𝕩", w, x, t); B r = c2(fn, w, x); dec(fn); return r; }
|
||||
B def_fn_ix(B t, B w, B x) { B fn = rt_invFnRegFn(rt_invFnReg, inc(t)); SLOW3("!runtime 𝕨F⁼𝕩", w, x, t); B r = c2(fn, w, x); dec(fn); return r; }
|
||||
B def_m1_im(Md1D* t, B x) { return def_fn_im(tag(t,FUN_TAG), x); }
|
||||
B def_m1_iw(Md1D* t, B w, B x) { return def_fn_iw(tag(t,FUN_TAG), w, x); }
|
||||
B def_m1_ix(Md1D* t, B w, B x) { return def_fn_ix(tag(t,FUN_TAG), w, x); }
|
||||
B def_m2_im(Md2D* t, B x) { return def_fn_im(tag(t,FUN_TAG), x); }
|
||||
B def_m2_iw(Md2D* t, B w, B x) { return def_fn_iw(tag(t,FUN_TAG), w, x); }
|
||||
B def_m2_ix(Md2D* t, B w, B x) { return def_fn_ix(tag(t,FUN_TAG), w, x); }
|
||||
B def_m1_im(Md1D* d, B x) { return def_fn_im(tag(d,FUN_TAG), x); }
|
||||
B def_m1_iw(Md1D* d, B w, B x) { return def_fn_iw(tag(d,FUN_TAG), w, x); }
|
||||
B def_m1_ix(Md1D* d, B w, B x) { return def_fn_ix(tag(d,FUN_TAG), w, x); }
|
||||
B def_m2_im(Md2D* d, B x) { return def_fn_im(tag(d,FUN_TAG), x); }
|
||||
B def_m2_iw(Md2D* d, B w, B x) { return def_fn_iw(tag(d,FUN_TAG), w, x); }
|
||||
B def_m2_ix(Md2D* d, B w, B x) { return def_fn_ix(tag(d,FUN_TAG), w, x); }
|
||||
|
||||
#ifdef DONT_FREE
|
||||
static B empty_get(Arr* x, usz n) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user