From dd5d17ca8385949f42bb6fe94a53a9e6c943885c Mon Sep 17 00:00:00 2001 From: tankorsmash Date: Wed, 5 Feb 2025 19:32:49 -0500 Subject: [PATCH] add best effort guesses for builtins/cmp,fns,fold.c I'm not sure about modifiers so I left them without arguments --- src/builtins/cmp.c | 2 +- src/builtins/fns.c | 20 ++++++++++---------- src/builtins/fold.c | 18 +++++++++--------- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/builtins/cmp.c b/src/builtins/cmp.c index 9b2e7db2..819b76b7 100644 --- a/src/builtins/cmp.c +++ b/src/builtins/cmp.c @@ -154,7 +154,7 @@ B leading_axis_arith(FC2 fc2, B w, B x, usz* wsh, usz* xsh, ur mr); if (ria) cmp_fns_##NAME##AA[we](rp, tyany_ptr(w), tyany_ptr(x), ria); \ decG(w);decG(x); return r; \ base: return NAME##_rec(swapped,w,x); \ - badShape: thrF("%U: Expected equal shape prefix (%H ≑ ≒𝕨, %H ≑ ≒𝕩)", swapped?CR:CN, swapped?x:w, swapped?w:x); \ + badShape: thrF("𝕨%U𝕩: Expected equal shape prefix (%H ≑ ≒𝕨, %H ≑ ≒𝕩)", swapped?CR:CN, swapped?x:w, swapped?w:x); \ } CMP_AA_D("β‰₯", "≀", ge, ) CMP_AA_D(">", "<", gt, ) diff --git a/src/builtins/fns.c b/src/builtins/fns.c index 567b96f9..16840c2a 100644 --- a/src/builtins/fns.c +++ b/src/builtins/fns.c @@ -60,8 +60,8 @@ static B* ud_rec(B* p, usz d, usz r, i32* pos, usz* sh) { NOINLINE B list_range(B x) { SGetU(x) usz xia = IA(x); - if (RNK(x)!=1) thrF("↕: Argument must be either an integer or integer list (had rank %i)", RNK(x)); - if (xia>UR_MAX) thrF("↕: Result rank too large (%s≑≠𝕩)", xia); + if (RNK(x)!=1) thrF("↕𝕩: 𝕩 must be either an integer or integer list (had rank %i)", RNK(x)); + if (xia>UR_MAX) thrF("↕𝕩: Result rank too large (%s≑≠𝕩)", xia); if (xia==0) { decG(x); return m_funit(emptyIVec()); } usz sh[xia]; // stack allocation of rank items i32 pos[xia]; @@ -73,7 +73,7 @@ NOINLINE B list_range(B x) { good|= c==0; bad|= (c > I32_MAX) | mulOn(ria, c); } - if (bad && !good) thrM("↕: Result too large"); + if (bad && !good) thrM("↕𝕩: Result too large"); decG(x); Arr* r = m_fillarr0p(ria); @@ -110,13 +110,13 @@ B slash_c2(B t, B w, B x); B ud_c2(B t, B w, B x) { usz wia=1; if (isArr(w)) { - if (RNK(w)>1) thrM("↕: 𝕨 must have rank at most 1"); + if (RNK(w)>1) thrM("𝕨↕𝕩: 𝕨 must have rank at most 1"); wia = IA(w); if (wia==0) { decG(w); return isArr(x)? x : m_unit(x); } } ur xr; - if (isAtm(x) || (xr=RNK(x)) UR_MAX) thrM("↕: Result rank too large"); + if (isAtm(x) || (xr=RNK(x)) UR_MAX) thrM("𝕨↕𝕩: Result rank too large"); ur wr = wia; ur rr = xr + wr; ShArr* sh = m_shArr(rr); @@ -135,7 +135,7 @@ B ud_c2(B t, B w, B x) { for (usz i=0; i xr) thrF("⍷: Rank of 𝕨 must be at most rank of 𝕩 (%i≑=𝕨, %i≑=𝕩)", wr, xr); + if (wr > xr) thrF("𝕨⍷𝕩: Rank of 𝕨 must be at most rank of 𝕩 (%i≑=𝕨, %i≑=𝕩)", wr, xr); u8 xe, we ONLY_GCC(= 0); B r; if (xr==1 && (xe=TI(x,elType))!=el_B && xe!=el_bit && (isAtm(w) || (we=TI(w,elType))!=el_B)) { diff --git a/src/builtins/fold.c b/src/builtins/fold.c index 90b795dc..ac736b1a 100644 --- a/src/builtins/fold.c +++ b/src/builtins/fold.c @@ -103,13 +103,13 @@ static i64 (*const sum_small_fns[])(void*, usz) = { sum_small_i8, sum_small_i16, static f64 (*const sum_fns[])(void*, usz, f64) = { sum_i8, sum_i16, sum_i32, sum_f64 }; B sum_c1(B t, B x) { - if (isAtm(x) || RNK(x)!=1) thrF("β€’math.Sum: Argument must be a list (%H ≑ ≒𝕩)", x); + if (isAtm(x) || RNK(x)!=1) thrF("β€’math.Sum𝕩: Argument must be a list (%H ≑ ≒𝕩)", x); usz ia = IA(x); if (ia==0) { decG(x); return m_f64(0); } u8 xe = TI(x,elType); if (!elNum(xe)) { x = any_squeeze(x); xe = TI(x,elType); - if (!elNum(xe)) thrF("β€’math.Sum: Argument elements must be numbers", x); + if (!elNum(xe)) thrF("β€’math.Sum𝕩: Argument elements must be numbers", x); } f64 r; void* xv = tyany_ptr(x); @@ -180,7 +180,7 @@ static f64 (*const min_fns[])(void*, usz) = { min_i8, min_i16, min_i32, min_f64 static f64 (*const max_fns[])(void*, usz) = { max_i8, max_i16, max_i32, max_f64 }; B fold_c1(Md1D* d, B x) { B f = d->f; - if (isAtm(x) || RNK(x)!=1) thrF("Β΄: Argument must be a list (%H ≑ ≒𝕩)", x); + if (isAtm(x) || RNK(x)!=1) thrF("´𝕩: Argument must be a list (%H ≑ ≒𝕩)", x); usz ia = IA(x); if (ia<=2) { if (ia==2) { @@ -197,7 +197,7 @@ B fold_c1(Md1D* d, B x) { B f = d->f; B r = TI(f,identity)(f); if (!q_N(r)) return r; } - thrM("Β΄: Identity not found"); + thrM("´𝕩: Identity not found"); } } if (RARE(!isFun(f))) { decG(x); if (isMd(f)) thrM("Calling a modifier"); return inc(f); } @@ -268,7 +268,7 @@ B fold_c1(Md1D* d, B x) { B f = d->f; } B fold_c2(Md1D* d, B w, B x) { B f = d->f; - if (isAtm(x) || RNK(x)!=1) thrF("Β΄: 𝕩 must be a list (%H ≑ ≒𝕩)", x); + if (isAtm(x) || RNK(x)!=1) thrF("𝕨´𝕩: 𝕩 must be a list (%H ≑ ≒𝕩)", x); usz ia = IA(x); if (RARE(ia==0)) { decG(x); return w; } if (RARE(!isFun(f))) { dec(w); decG(x); if (isMd(f)) thrM("Calling a modifier"); return inc(f); } @@ -385,7 +385,7 @@ extern B insert_base(B f, B x, bool has_w, B w); // from cells.c B insert_c1(Md1D* d, B x) { B f = d->f; ur xr; - if (isAtm(x) || (xr=RNK(x))==0) thrM("˝: 𝕩 must have rank at least 1"); + if (isAtm(x) || (xr=RNK(x))==0) thrM("˝𝕩: 𝕩 must have rank at least 1"); usz len = *SH(x); if (len==0) { if (isFun(f)) { @@ -400,11 +400,11 @@ B insert_c1(Md1D* d, B x) { B f = d->f; } decG(x); return taga(r); } else if (RTID(f) == n_join) { - if (xr <= 1) thrM("˝: Identity does not exist"); + if (xr <= 1) thrM("˝𝕩: Identity does not exist"); goto join; } } - thrM("˝: Identity not found"); + thrM("˝𝕩: Identity not found"); } if (len==1) return C1(select, x); if (RARE(!isFun(f))) { decG(x); if (isMd(f)) thrM("Calling a modifier"); return inc(f); } @@ -444,7 +444,7 @@ B insert_c1(Md1D* d, B x) { B f = d->f; } B insert_c2(Md1D* d, B w, B x) { B f = d->f; ur xr; - if (isAtm(x) || (xr=RNK(x))==0) thrM("˝: 𝕩 must have rank at least 1"); + if (isAtm(x) || (xr=RNK(x))==0) thrM("𝕨˝𝕩: 𝕩 must have rank at least 1"); usz len = *SH(x); if (len==0) { decG(x); return w; } if (RARE(!isFun(f))) { dec(w); decG(x); if (isMd(f)) thrM("Calling a modifier"); return inc(f); }