Breaking ABI changes require version bump
Platform spec ADR
Breaking ABI changes require version bump
Spec standingStandard
- Contracts and edge cases MUST/SHOULD rules for ABI version bumps, symbol stability, and mixed toolchain failures.
- Design model ABI version negotiation, symbol stability, and compiler–runtime compatibility boundaries.
- Examples ABI version checks, symbol parity, and migration scenarios for toolchain maintainers.
- FAQ and troubleshooting Common ABI mismatch failures and maintainer guidance for version bumps.
- Flow and algorithm JIT symbol registration, ABI version export, and compatibility check ordering.
- Verification and traceability Tests and crate paths that pin ABI version and runtime export symbol parity.
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”Additive runtime symbols and Cargo feature gates are easy to confuse with ABI-stable changes. Silent signature drift breaks AOT/JIT link steps or causes undefined behavior at call sites.
Decision
Section titled “Decision”| Trigger | Action |
|---|---|
BeskidStr / BeskidArray / interop payload layout change | Must increment BESKID_RUNTIME_ABI_VERSION (ABI-004) |
Builtin rename, arity change, or AbiParamKind / AbiReturnKind change | Must bump version |
| Semantics relied on by lowering change (e.g. barrier no-op) | Must bump version |
| New symbol appended, older artifacts never import it | May ship without bump (ABI-005) |
Optional Cargo features only | Must not bump ABI version |
Reference tree pins version 2 until the next breaking change.
Consequences
Section titled “Consequences”Release notes should list bumped versions and removed symbols. Renaming without bump is a release-process violation.
Verification anchors
Section titled “Verification anchors”beskid_abi symbol tables; RUNTIME_EXPORT_SYMBOLS parity checks in CI.