Skip to content
Beskid Platform specification

Beskid

Jump to a Beskid service

Beskid

Jump to a Beskid service

FAQ and troubleshooting

Platform spec article

FAQ and troubleshooting

Spec standingStandard

Owner
Piotr Mikstacki
Submitter
Piotr Mikstacki

No for production Standard flows—use link-time linking. extern_dlopen remains documented for legacy engine tests and Proposed dynamic profiles.

Dynamic resolution tests target Linux x86_64. macOS agents should skip or use link-time externs; dlopen policy is not portable in the legacy feature.

What is the difference between interop_dispatch_* and user Extern?

Section titled “What is the difference between interop_dispatch_* and user Extern?”

User Extern calls native library functions directly (C ABI). interop_dispatch_* interprets Beskid-owned tagged values at the language/runtime boundary; both are declared via BUILTIN_SPECS but serve different layers.

No. Extern targets must be foreign symbols; calling alloc or panic through dlsym would bypass type descriptors and GC scope rules.

SymptomCheck
”extern present but feature disabled”Enable extern_dlopen on engine or switch to link-time profile
Invalid signature at JITParameter uses Beskid struct/string type—fix contract to scalars/pointers
dlsym undefined symbolTypo in symbol string; verify with nm -D on the .so
Dispatch returns garbageABI/layout drift—compare interop_layout.rs with ABI versioning