Stability & Versioning

This page summarizes which parts of the MIND toolchain are production-stable today and which remain experimental.

Stable

Core IR (mind-spec Core v1)

Stable

The SSA-based core IR defined in mind-spec/spec/v1.0 is locked for compatibility guarantees.

Autodiff

Stable

Reverse-mode differentiation over the core IR with deterministic gradient IR output.

Shapes & broadcasting

Stable

Shape inference, static shapes, and broadcasting semantics are fixed for 1.0.

Deterministic canonicalization

Stable

Canonical forms and rewrite ordering are stable to enable reproducible builds.

IR runtime contract (mindc 0.2.5+)

Stable

The mic@1 textual IR is the stable boundary between mindc and downstream backends. Public API: libmind::ir::load(bytes), libmind::ir::save(module), and the AOT helper libmind::compile_to_mic_text(src, opts). See mind/docs/ir-stability.md.

Evidence-chain attestation (mindc 0.7.x, RFC 0016 + RFC 0021)

Stable

An IRModule may carry a Metadata-Attachment-Pair (MAP) epilogue with evidence_chain.{determinism,substrate,toolchain,trace_hash,parent} keys. The trace_hash is the SHA-256 of the canonical mic@3 binary serialisation (RFC 0016 GAP-1, re-anchored 2026-05-31 after audit found mic@1 text drops function-body semantics). Implementations claiming evidence-chain emission MUST anchor on mic@3, not on the v2/v2.1 or mic@1 forms.

The MAP carrier ships in mic@2.1 (RFC 0014) and mic@3 (RFC 0021 step 2 via the 0x4D sentinel epilogue). See mind-spec ir-stability.md §Evidence-chain attestation.

Canonical binary IR mic@3 (mindc 0.7.x, RFC 0021 steps 1–4)

Stable

Binary serialisation of the same IRModule data shape as mic@1 text, round-trip equivalent. Magic bytes MIC3. Emit via mindc --emit-mic3; emit with evidence MAP via mindc --emit-evidence; consume via mindc verify (recompute + report the trace_hash) and mindc inspect (decode + summarise the artifact).

RFC 0021 steps 1–4 are shipped and stable; steps 5–6 (the mic@2.x → mind-model@2 rename, a byte-preserving cross-repo migration, plus the remaining oracle/CI work) are still pending and may evolve.

Pratt expression parser (mindc 0.2.5+)

Stable

Single-dispatch operator-precedence parser for the expression layer; faster than the pre-Phase-10.5 baseline on representative programs. New operators (Phase 11/12) become O(1) inserts to the binding-power table. CI bench-gate enforces a +7% regression cap against .bench-baseline-2026-05-18-rfc0005.txt (loosened from +5% to absorb GitHub-hosted-runner variance on microbenches).

Pure-MIND standard library (mindc 0.4.2+, RFC 0005)

Stable

std.vec, std.string, std.map, and std.io ship in-tree as .mind source bundled into the compiler (include_str!) and resolved at project-load time. Seven __mind_* primitives (alloc, realloc, free, load_i64, store_i64, read, write) form the original host-interface core, and everything above them is pure MIND.

The intrinsic registry has since grown well beyond those seven (narrow-width load/store, region and arena management, deterministic BLAS kernels, and a small runtime surface), and each entry carries its determinism class on the same registry row as its name and arity, so an unclassified primitive is a compile error.

use std.vec resolution uses last-write-wins shadowing so a user crate can override any stdlib entry. MIND_STDLIB_PATH env-var override (Phase D₁, mindc 0.4.3+) provides fork-without-recompile for regulated deployments; arity/type errors on imported pub fns preserve Named struct parameter names (Phase D₂a, mindc 0.4.4+).

Conditionally Stable

MLIR lowering (feature-gated)

Conditionally stable

Available behind compiler feature flags; interfaces may change.

Core v1 GPU profile (contract)

Conditionally stable

Device kinds / backend targets, backend-selection error model, and the GPUBackend trait surface are defined and stable when GPU features are enabled.

Experimental

Concrete GPU backends

Commercial

GPU and accelerator backends (CUDA, ROCm, Metal, WebGPU, WebNN) ship in the commercial mind-runtime under an Enterprise license. The open-source compiler is CPU-only and ships no GPU backend; bit-identical determinism across GPU substrates remains roadmap.

Pure-MIND crypto / TLS / HTTP primitives

Experimental

AES-128-GCM, ChaCha20-Poly1305, SHA-256, SHA-512/384, HKDF, X25519, X.509 parse+verify, Keccak/SHA-3 + SHAKE, RSA-PSS, ECDSA-P256, ML-KEM-768 (FIPS 203), the X25519MLKEM768 hybrid key exchange, the TLS 1.3 key schedule / record layer / Finished / handshake crypto (RFC 8448 replay), HPACK (RFC 7541), and HTTP/2 framing (RFC 9113) are implemented in pure MIND (std/*.mind) and verified against RFC and NIST known-answer tests.

This is a verified primitive library, not yet a connectable TLS client/server (no socket-driven handshake state machine, no cert-chain path validation; HPACK is decode-only), and its API surface may change.

Package manager

Experimental

Design specified in mind-spec. A runtime implementation ships in the commercial mind-runtime; the open-source toolchain does not include one yet. Dependency resolution and registry workflows are not yet finalized.

Future ops / extensions

Experimental

New operators and language extensions will ship behind experimental flags.

Info

Tip: Experimental areas may change without notice. The MLIR interchange backend requires feature flags and is the default mindc build backend (floats, tensors and specialty targets); the native backend (ELF, Mach-O, PE/COFF) is opt-in (--backend native) and is the self-host path. GPU backends ship in the commercial mind-runtime (CUDA, ROCm, Metal, WebGPU, WebNN).

References