Specifications

Version history

Every published ICF and ICX specification version, its status, and what changed. Version-specific URLs are permanent publications — a version declared Stable is never silently edited.

ICF — the language

VersionStatusPublishedChanges
ICF 1.1.1 Stable — current 2026-08-21 Clarification patch of 1.1: adds Scope (§80), Security Considerations (§81), Implementation Limits (§82) and Conformance (§83). No change to document validity or interpretation; all 1.1 section numbers preserved.
ICF 1.1 Superseded by 1.1.1 2026-06-27 Schema annotations (!indexes/!defaults/!constraints/!expressions), row !overrides, primary objects, multiline value rows, comment lines, reserved object names, a normative processing model, an abstract data model and a formal EBNF grammar. Backward compatible with 1.0 documents.
ICF 1.0.1 Superseded by 1.1 2026 Editorial clarifications of 1.0. No change to valid interpretation.
ICF 1.0 Superseded by 1.1 2026 Initial publication: schema-driven documents, masters, records, text blocks, checksums.

ICX — the companion index

VersionStatusPublishedChanges
ICX 1.2 Stable — current July 2026 Optional Tags and Summary index fields, tagindex[] / summaryindex[] inverted structures, @sourcebytes, and the harness usage flow. Clarifies that an ICX @version is the ICX spec version.
ICX 1.1 Superseded by 1.2 July 2026 Aligned ICX with ICF language policy: indentation rules and reserved object names apply; shared structure renamed index[]recordindex[].
ICX 1.0 Superseded by 1.2 2026 Initial publication: per-record byte ranges, checksums, shared index[] structure.

ICF ↔ ICX compatibility

ICF versionCompatible ICX version(s)
ICF 1.0ICX 1.0
ICF 1.1ICX 1.1, ICX 1.2

ICX is optional and derived — see the ICX specification for the relationship in full.

Versioning policy

Specification versions follow a semantic lifecycle:

  • Patch (e.g. 1.0 → 1.0.1) — clarifications and corrections that do not change what documents are valid or how they are interpreted.
  • Minor (e.g. 1.0 → 1.1) — backward-compatible additions. Documents valid under the earlier version remain valid and mean the same thing.
  • Major — potentially incompatible changes. None have been published.

A version moves through Working Draft → Release Candidate → Stable. Once Stable, its version-specific URL is immutable: the published document is never silently changed. Implementations declare the version they target (see @version in the specification), and the parser compatibility rules define how newer minor versions are handled by older readers.

Errata

No errata have been published. When needed, corrections to stable specifications will be listed here with stable identifiers (ICF-ERR-NNN / ICX-ERR-NNN), the affected version and section, and their impact — rather than editing the published text.