Cargo features are separate from ABI version
Platform spec ADR
Cargo features are separate from ABI version
Spec standingStandard
- Contracts and edge cases MUST/SHOULD rules for optional runtime features and toolchain alignment.
- Design model Cargo feature gates, runtime build capabilities, and compiler alignment expectations.
- Examples Building runtime with features, array backing expectations, and engine extern_dlopen.
- FAQ and troubleshooting Optional runtime features vs ABI version, array backing surprises, and CI alignment.
- Flow and algorithm Selecting runtime features at build time and validating behavior at run time.
- Verification and traceability Cargo feature definitions, conditional compilation gates, and CI matrix expectations.
0 revisions (git unavailable at build; counts may be empty)
No commits recorded for this path.
| Section id | Required | Found |
|---|---|---|
what-this-feature-specifies | yes | yes |
implementation-anchors | yes | yes |
Full tree: run pnpm verify:platform-spec-layout (writes src/generated/platform-spec-layout-report.json).
Context
Section titled “Context”CI and VSIX builds enable different beskid_runtime features. Confusing feature gates with ABI bumps breaks compatibility checks.
Decision
Section titled “Decision”| Concept | Rule |
|---|---|
BESKID_RUNTIME_ABI_VERSION | Changes only on breaking layout/signature per D-EXEC-ABI-0002 |
Cargo features | metrics, arrays_backing, sched — build-time toggles |
| Additive exports | New feature-gated symbols may ship without ABI bump if old artifacts never import them |
| Shipped binaries | Must document enabled features in release notes |
| Tests | Compiler tests enable features explicitly when validating optional paths |
Consequences
Section titled “Consequences”Mismatch (test expects arrays_backing, default runtime does not) fails logically without ABI version inequality.
Verification anchors
Section titled “Verification anchors”beskid_runtime/Cargo.toml; design model feature table.