mark ⊏ as a fully-native primitive
This commit is contained in:
parent
7cf17cdad6
commit
6bc3f17b65
@ -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"){𝔽} }
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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;
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user