Skip to content
Beskid Platform specification

Beskid

Jump to a Beskid service

Beskid

Jump to a Beskid service

Contracts and edge cases

Platform spec article

Contracts and edge cases

Spec standingStandard

Owner
Piotr Mikstacki
Submitter
Piotr Mikstacki
IDRequirement
RFF-001Optional runtime features must not change BESKID_RUNTIME_ABI_VERSION unless they alter existing symbol signatures or layouts.
RFF-002Default CI/release runtime builds must document which features are enabled in build notes or manifests.
RFF-003Tests that require arrays_backing must enable the feature on beskid_runtime dependency.
RFF-004metrics exports must be absent from baseline RUNTIME_EXPORT_SYMBOLS when built without metrics.
RFF-005Compiler lowering must not assume element backing exists unless workspace policy enables arrays_backing.
RFF-006extern_dlopen must remain off by default on beskid_engine for production toolchains.
RFF-007Phase B GC must be opt-in for v0.3; the runtime must boot in Phase A unless BESKID_RUNTIME_PHASE_B=1 or set_runtime_phase(RuntimePhase::PhaseB) flips it.
RFF-008Optional preemption must stay disabled by default; enabling it via BESKID_RUNTIME_PREEMPT=1 or set_preemption_enabled(true) must not change observable semantics of fiber-only programs beyond inserting yield points.
FeatureWithoutWith
arrays_backingarray_new.ptr == nullBacking store allocated
metricsNo rt_metrics_*Counters exposed
schedDefault scheduler onlyExperimental sched hooks
Phase B GC (BESKID_RUNTIME_PHASE_B)Single-mutator Phase A; channel pointer payloads still routed through external roots but barriers no-op outside markingMultiple mutators may attach via attach_phase_b_mutator; gc_write_barrier active on pointer-payload channel ops
Preemption (BESKID_RUNTIME_PREEMPT)runtime_preempt_check is a no-opruntime_preempt_check yields the current fiber (or OS thread if off-scheduler)
CaseOutcome
Test expects backing, runtime defaultTests fail allocation or pointer reads — fix features, not ABI
User enables metrics locallyJIT must link extra symbols only if codegen calls them
VSIX runtime vs CLI runtime feature mismatchSubtle array/GC test failures — align Open VSX build matrix