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

Why separate BUILTIN_SPECS and RUNTIME_EXPORT_SYMBOLS?

Section titled “Why separate BUILTIN_SPECS and RUNTIME_EXPORT_SYMBOLS?”

Names alone are insufficient for Cranelift: BuiltinFnSpec carries parameter and return kinds. The export list additionally includes symbols resolved without going through the spec table (for example version export) and documents the linker surface for AOT.

No (BLT-001). Codegen will not declare the import; JIT fails at finalize or AOT fails at link.

Generated code uses the Cranelift default for the host ISA; runtime exports use extern "C-unwind" so panics across the boundary remain defined for Rust host frames.

Do fiber builtins use Fiber<T> in the ABI?

Section titled “Do fiber builtins use Fiber<T> in the ABI?”

No. ABI uses raw ids and pointers; generic Fiber<T> is a corelib surface. See Fiber scheduler.

SymptomLikely fix
MissingFunction for channel_receiveCall site uses old symbol; use channel_receive_status / channel_receive_value
CLIF verify failure on builtin callArity mismatch—update BUILTIN_SPECS and lowering together
GC heap corruption after new storeMissing gc_write_barrier in lowering for pointer write
array_new always null data pointerBuild runtime with --features arrays_backing if tests need backing storage