diff --git a/makefile b/makefile index 2bb29f4d..0e635200 100644 --- a/makefile +++ b/makefile @@ -27,4 +27,4 @@ heapverify-clean: rtverify-clean: @$(MAKE) -C obj/rtverify clean -clean: o3-clean debug-clean rtperf-clean heapverify-clean rtverify-clean +clean: o3-clean o3g-clean debug-clean rtperf-clean heapverify-clean rtverify-clean diff --git a/src/builtins/md1.c b/src/builtins/md1.c index e3f0429e..d6b2594f 100644 --- a/src/builtins/md1.c +++ b/src/builtins/md1.c @@ -367,7 +367,7 @@ B cell_c1(B d, B x) { B f = c(Md1D,d)->f; } if (cr>1) ptr_dec(csh); dec(x); - return c1(bi_gt, harr_fv(r)); + return bqn_merge(harr_fv(r)); } B cell_c2(B d, B w, B x) { B f = c(Md1D,d)->f; if ((isAtm(x) || rnk(x)==0) && (isAtm(w) || rnk(w)==0)) { diff --git a/src/builtins/sfns.c b/src/builtins/sfns.c index 6f1084c5..cc223897 100644 --- a/src/builtins/sfns.c +++ b/src/builtins/sfns.c @@ -687,19 +687,21 @@ B reverse_uc1(B t, B o, B x) { B pick_uc1(B t, B o, B x) { if (isAtm(x) || a(x)->ia==0) return def_fn_uc1(t, o, x); + B xf = getFillQ(x); usz ia = a(x)->ia; B arg = TI(x).get(x, 0); B rep = c1(o, arg); MAKE_MUT(r, ia); mut_to(r, el_or(TI(x).elType, selfElType(rep))); mut_set(r, 0, rep); mut_copy(r, 1, x, 1, ia-1); - return mut_fcd(r, x); + return qWithFill(mut_fcd(r, x), xf); } B pick_ucw(B t, B o, B w, B x) { if (isArr(w) || isAtm(x) || rnk(x)!=1) return def_fn_ucw(t, o, w, x); usz xia = a(x)->ia; usz wi = WRAP(o2i64(w), xia, thrF("𝔽⌾(n⊸⊑)𝕩: reading out-of-bounds (n≡%R, %s≡≠𝕩)", w, xia)); + B xf = getFillQ(x); B arg = TI(x).get(x, wi); B rep = c1(o, arg); if (reusable(x) && TI(x).canStore(rep)) { @@ -727,7 +729,7 @@ B pick_ucw(B t, B o, B w, B x) { mut_set(r, wi, rep); mut_copy(r, 0, x, 0, wi); mut_copy(r, wi+1, x, wi+1, xia-wi-1); - return mut_fcd(r, x); + return qWithFill(mut_fcd(r, x), xf); } B slash_ucw(B t, B o, B w, B x) {