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
|
||||
|
||||
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):
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user