Skip to content
Beskid Platform specification

Beskid

Jump to a Beskid service

Beskid

Jump to a Beskid service

FAQ and troubleshooting

Spec standingStandard

Owner
Piotr Mikstacki
Submitter
Piotr Mikstacki

When must we bump BESKID_RUNTIME_ABI_VERSION?

Section titled “When must we bump BESKID_RUNTIME_ABI_VERSION?”

When an existing generated call pattern would observe different layout, symbol names, or Cranelift signatures at link time. Purely additive exports that no shipped compiler emits may stay on the same version (ABI-005).

The extension ships a platform-matched beskid CLI/LSP stack; that stack must be built against the same beskid_abi revision as the embedded compiler. Mismatch manifests as JIT MissingFunction or version gate failures—reinstall matching artifacts rather than mixing arbitrary release channels.

Are interop_dispatch_* symbols part of the versioned surface?

Section titled “Are interop_dispatch_* symbols part of the versioned surface?”

Yes. They appear in RUNTIME_EXPORT_SYMBOLS and BUILTIN_SPECS. Tag/payload layout changes require an ABI bump and coordinated engine/runtime updates (Builtins and symbols).

Can JIT use a newer runtime than the compiler?

Section titled “Can JIT use a newer runtime than the compiler?”

Only when beskid_runtime_abi_version() is still equal to the compiler’s expected constant and no removed symbols are referenced. Otherwise rebuild the compiler; unsupported mixing is intentional (ABI-004).

SymptomLikely causeFix
missing function 'alloc' at JIT finalizeRuntime library not linked or stripped exportsEnsure beskid_runtime built with default features; verify RUNTIME_EXPORT_SYMBOLS
Segfault on first builtin callWrong function pointer type registeredCheck BUILTIN_SPECS vs runtime extern "C-unwind" signature
Works in debug CLI, fails in VSIXStale extension runtimeRebuild Open VSX matrix with matching beskid_abi
AOT binary crashes, JIT OKOld runtime .so bundled in deployRe-link AOT with current beskid_runtime