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

Barriers must remain in the ABI. Phase A may simplify runtime work when marking is off, but lowering still emits calls so Phase B does not require compiler flag days.

Can I call gc_collect from Beskid user code?

Section titled “Can I call gc_collect from Beskid user code?”

Only through intentional runtime/corelib surfaces; arbitrary user calls bypass pacing policy and may STW unexpectedly. Host tooling and tests are the primary callers.

How does this relate to the language memory model?

Section titled “How does this relate to the language memory model?”

Language rules define ownership and references; this feature defines runtime enforcement (allocation, tracing, barriers). See /platform-spec/language-meta/memory-model/.

When stack maps, scheduler coordination, and conformance suites prove safe parallel mutators. Until then GC-003 remains in force.

SymptomCheck
Random segfaults after field assignBarrier missing in lowering for reference store
Heap never shrinksPacing not triggered; call gc_collect in test to validate sweep
Leak across FFIUnmatched gc_register_root / gc_unregister_root
Fibers see stale objectsViolated single-mutator rule—audit scheduler attachment