Skip to content
Beskid Platform specification

Beskid

Jump to a Beskid service

Beskid

Jump to a Beskid service

C ABI profile — Dynamic resolution profile

Platform spec article

C ABI profile — Dynamic resolution profile

Spec standingProposed

Owner
Piotr Mikstacki
Submitter
Piotr Mikstacki

Status: Proposed — This profile is not required for v0.3 Standard conformance. It documents the reference engine’s optional extern_dlopen path for migration and tooling experiments.

When enabled on supported hosts (historically Linux x86_64):

  • Libraries load via dlopen(RTLD_LOCAL | RTLD_NOW).
  • Symbols resolve via dlsym with process-lifetime caches.
  • BESKID_EXTERN_ALLOW / BESKID_EXTERN_DENY apply as in /execution/runtime/extern-policy-v0-1/.

Implementation anchors: compiler/crates/beskid_engine/src/engine.rs (extern_dlopen feature).

Production builds should use link-time linking. Dynamic resolution remains available for:

  • Local development without a full link driver.
  • Tests gated by --features extern_dlopen.

New platform-spec and CLI work must target link-time binding. Dynamic resolution must not be documented as the default in execution/runtime FFI chapters after v0.3.