Fall through to shared primitive registry for external primitives
is_primitive/get_primitive now check the shared registry (shared.sx.primitives) when a name isn't in the transpiled PRIMITIVES dict. Fixes Undefined symbol errors for register_primitive'd functions like relations-from. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1647,10 +1647,17 @@ def _sx_parse_int(v, default=0):
|
|||||||
return default
|
return default
|
||||||
|
|
||||||
def is_primitive(name):
|
def is_primitive(name):
|
||||||
return name in PRIMITIVES
|
if name in PRIMITIVES:
|
||||||
|
return True
|
||||||
|
from shared.sx.primitives import get_primitive as _ext_get
|
||||||
|
return _ext_get(name) is not None
|
||||||
|
|
||||||
def get_primitive(name):
|
def get_primitive(name):
|
||||||
return PRIMITIVES.get(name)
|
p = PRIMITIVES.get(name)
|
||||||
|
if p is not None:
|
||||||
|
return p
|
||||||
|
from shared.sx.primitives import get_primitive as _ext_get
|
||||||
|
return _ext_get(name)
|
||||||
|
|
||||||
# Higher-order helpers used by transpiled code
|
# Higher-order helpers used by transpiled code
|
||||||
def map(fn, coll):
|
def map(fn, coll):
|
||||||
|
|||||||
@@ -775,10 +775,17 @@ def _sx_parse_int(v, default=0):
|
|||||||
return default
|
return default
|
||||||
|
|
||||||
def is_primitive(name):
|
def is_primitive(name):
|
||||||
return name in PRIMITIVES
|
if name in PRIMITIVES:
|
||||||
|
return True
|
||||||
|
from shared.sx.primitives import get_primitive as _ext_get
|
||||||
|
return _ext_get(name) is not None
|
||||||
|
|
||||||
def get_primitive(name):
|
def get_primitive(name):
|
||||||
return PRIMITIVES.get(name)
|
p = PRIMITIVES.get(name)
|
||||||
|
if p is not None:
|
||||||
|
return p
|
||||||
|
from shared.sx.primitives import get_primitive as _ext_get
|
||||||
|
return _ext_get(name)
|
||||||
|
|
||||||
# Higher-order helpers used by transpiled code
|
# Higher-order helpers used by transpiled code
|
||||||
def map(fn, coll):
|
def map(fn, coll):
|
||||||
|
|||||||
Reference in New Issue
Block a user