mark ⊏ as a fully-native primitive

This commit is contained in:
dzaima 2025-06-09 23:00:09 +03:00
parent 7cf17cdad6
commit 6bc3f17b65
3 changed files with 5 additions and 7 deletions

View File

@ -114,11 +114,11 @@ primN ← ⟨
"rank", "depth", "repeat", "catch" "rank", "depth", "repeat", "catch"
primC "+-×÷⋆√⌊⌈|¬∧∨<>≠=≤≥≡≢⊣⊢⥊∾≍⋈↑↓↕«»⌽⍉/⍋⍒⊏⊑⊐⊒∊⍷⊔!˙˜˘¨⌜⁼´˝`∘○⊸⟜⌾⊘◶⎉⚇⍟⎊" primC "+-×÷⋆√⌊⌈|¬∧∨<>≠=≤≥≡≢⊣⊢⥊∾≍⋈↑↓↕«»⌽⍉/⍋⍒⊏⊑⊐⊒∊⍷⊔!˙˜˘¨⌜⁼´˝`∘○⊸⟜⌾⊘◶⎉⚇⍟⎊"
pre "+-=×↕≢≤⊑⊘⌊⌜⥊!<>`|¨´÷˙˜↑↓∘∾≠≥⊢⊣⊸⋆⋈⌈⍟⎊○◶⟜" pre "+-=×↕≢≤⊑⊘⌊⌜⥊!<>`|¨´÷˙˜↑↓∘∾≠≥⊢⊣⊸⋆⋈⌈⍟⎊○◶⟜"
isFull ¬ primC "⁼/⊔⌾⍷⚇˝" isFull ¬ primC "⁼/⊔⌾⍷⚇˝" # primitives whose rt_* values are necessary
fullC isFull/primC fullC isFull/primC
extraC pre (¬˜/) fullC extraC pre (¬˜/) fullC
# •Out List "bi_"⊸∾¨ (primC∊extraC) / primN # •Out 1↓·∾","⊸∾¨ "bi_"⊸∾¨ (primC∊extraC) / primN # entries to put in "B provide[]" in load.c
glyphs Import "glyphs.bqn" glyphs Import "glyphs.bqn"
_getComp { (4+2×srcmap) <˜ 5 (𝕗 Import "c.bqn"){𝔽} } _getComp { (4+2×srcmap) <˜ 5 (𝕗 Import "c.bqn"){𝔽} }

View File

@ -134,7 +134,6 @@ FORCE_INLINE void cf_call(CFRes f, void* r, ux rs, void* x, ux xs) {
extern GLOBAL B rt_select;
B select_c1(B t, B x) { B select_c1(B t, B x) {
if (isAtm(x)) thrM("⊏𝕩: 𝕩 cannot be an atom"); if (isAtm(x)) thrM("⊏𝕩: 𝕩 cannot be an atom");
ur xr = RNK(x); ur xr = RNK(x);

View File

@ -148,7 +148,7 @@ NOINLINE B load_fullpath(B path, B name) {
GLOBAL HArr* comps_curr; GLOBAL HArr* comps_curr;
GLOBAL B rt_undo, rt_select, rt_slash, rt_depth, GLOBAL B rt_undo, rt_slash, rt_depth,
rt_group, rt_under, rt_find; rt_group, rt_under, rt_find;
Block* load_buildBlock(B x, B src, B path, B name, Scope* sc, i32 nsResult) { // consumes x,src Block* load_buildBlock(B x, B src, B path, B name, Scope* sc, i32 nsResult) { // consumes x,src
B fullpath = load_fullpath(path, name); B fullpath = load_fullpath(path, name);
@ -512,7 +512,6 @@ void load_init() { // very last init function
SGet(rtObjRaw) SGet(rtObjRaw)
gc_add(rt_undo = Get(rtObjRaw, n_undo )); gc_add(rt_undo = Get(rtObjRaw, n_undo ));
gc_add(rt_select = Get(rtObjRaw, n_select));
gc_add(rt_slash = Get(rtObjRaw, n_slash )); gc_add(rt_slash = Get(rtObjRaw, n_slash ));
gc_add(rt_group = Get(rtObjRaw, n_group )); gc_add(rt_group = Get(rtObjRaw, n_group ));
gc_add(rt_under = Get(rtObjRaw, n_under )); gc_add(rt_under = Get(rtObjRaw, n_under ));
@ -558,7 +557,7 @@ void load_init() { // very last init function
} }
load_rt = frtObj; load_rt = frtObj;
rt_select = rt_slash = rt_group = rt_find = bi_invalidFn; rt_slash = rt_group = rt_find = bi_invalidFn;
rt_undo = bi_invalidMd1; rt_undo = bi_invalidMd1;
rt_under = rt_depth = bi_invalidMd2; rt_under = rt_depth = bi_invalidMd2;