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:
2026-03-05 22:48:14 +00:00
parent ef04beba00
commit bb5c7e8444
2 changed files with 18 additions and 4 deletions

View File

@@ -1647,10 +1647,17 @@ def _sx_parse_int(v, default=0):
return default
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):
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
def map(fn, coll):

View File

@@ -775,10 +775,17 @@ def _sx_parse_int(v, default=0):
return default
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):
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
def map(fn, coll):