-
Notifications
You must be signed in to change notification settings - Fork 0
Compatibility Policy
Simon B.Stirling edited this page Mar 2, 2026
·
1 revision
I use this document as the frozen compatibility and upgrade policy contract for the current bootstrap toolchain.
Contract version: compat.v1
I freeze compatibility expectations across these surfaces:
- source compatibility (canonical L0 accepted/verified/built behavior)
- image compatibility (
L0IMGv1 decode/execute behavior) - trace/debug compatibility (
debugmap.v1,traceschema.v1decode behavior) - object-output compatibility (
build-elf+ minimal native link/run slice) - previously frozen contract-doc surfaces (intrinsics, determinism, differential, fuzz, perf, error, release)
I use semantic versioning-style release tags:
- release candidate:
vMAJOR.MINOR.PATCH-rcN - production release:
vMAJOR.MINOR.PATCH
I apply this bump policy:
-
PATCH: bug fixes and hardening with no contract-surface breakage -
MINOR: additive, backward-compatible capabilities -
MAJOR: any change that breaks a frozen compatibility contract
When a frozen contract surface changes, I bump that contract version and document migration impact.
For the current v1 line, I keep:
- canonical v1 source fixtures accepted and behaviorally stable
- v1 image format accepted by
imgcheck/imgmeta/run - v1 trace/debug schemas accepted by
schemacat/mapcat/tracecat/tracejoin - prior v1 fixture behavior slices stable under the compatibility matrix gate
I enforce this policy with:
tests/compatibility_matrix.shtests/compat/m69_matrix.tsv
That gate is integrated into tests/run.sh and therefore enforced by make test.
I run compatibility slices spanning prior milestone fixtures:
- arithmetic and const-return runtime outputs
- control-flow and multi-block merge runtime outputs
- spill/regalloc runtime output slice
- SysV 6-arg runtime output slice
- trace/debug decode output slices
- ELF build/link/run exit-code slice
- Multi-version binary migration tooling.
- Automatic source upgrader between future major contract versions.
- Cross-platform object compatibility beyond current Linux x86-64 bootstrap scope.
- How-To-Write-L0
- Language-Reference
- Instruction-Set
- CLI-and-Compiler-Spec
- Implementable-Spec
- Command-Reference
- Examples-Catalog
- LLM-Quick-Reference
- Opcode-Examples
- LLM-Doc-Index