Language profiles

One language, three compile-time profiles. Same source, three artifacts, one stable spec: production ML, governance kernels, or bare-metal embedded.
One MIND source compiled under three profiles: production ML, governance kernels and embedded.
mindc --profile
$ mindc app.mind --profile sytems
error: invalid value 'sytems' for '--profile <PROFILE>'
  [possible values: default, systems, embedded]

  tip: a similar value exists: 'systems'
Captured from mindc 0.10.2. Unknown profile names are rejected at the command line.

app.mind

one source

Shared front end

parser · type checker · IR · backends

--profile=

  • default

    full stdlib

  • systems

    no tensors

  • embedded

    no heap

The profile is part of the build cache fingerprint: one Mind.toml, a distinct artifact per profile.

One language, three artifacts

What each profile puts in scope

Modeled on Rust's #![no_std]: the language is not forked. All three profiles share the front end and backends; only the standard library in scope changes.

default

Model training and inference runtimes, governed inference servers

Used by: MIND-Nerve, MindLLM, RFN-MIND, MIND-Mem

systems

Control planes, governance and agent control planes

Used by: MIND-Law, Arch-MIND, MIND-Agents

embedded

Bare metal where malloc is not available: safety-critical control loops

Used by: Picotronix-MIND, BCI and edge inference

Delivery

What ships

The flag, its validation, the bundled standard library and per-profile gating, end to end in the compiler.

  1. The --profile flag

    mindc 0.2.8

    default, systems or embedded. The profile reaches the build cache fingerprint: one Mind.toml, a distinct artifact per profile.

  2. Strict CLI validation

    mindc 0.2.9

    Typos such as sytems are rejected instead of silently falling back to default.

  3. Stdlib auto-bundled

    mindc 0.4.2

    The pure-MIND RFC 0005 standard library is baked into the mindc binary.

  4. Per-profile stdlib gating

    Stdlib items resolve only under their profiles; embedded rejects heap-using items at type-check time.

  5. Cross-profile link refusal

    The loader refuses to link a tensor-built artifact into an embedded binary.

Capabilities

At a glance

Scope per mind-spec v1.0, Language Profiles.

  • Tensor stdlib

    default

    Full

    systems

    Stripped

    embedded

    Stripped
  • Q16.16 fixed-point

    default

    Yes

    systems

    Yes

    embedded

    Yes
  • Governance kernel

    default

    Yes

    systems

    Yes

    embedded

    Yes
  • Heap allocator

    default

    Yes

    systems

    Yes

    embedded

    Stack and static
  • GPU and accelerators

    default

    Via MIND-Runtime

    systems

    No

    embedded

    No
  • Target environments

    default

    Servers, multi-node, GPU

    systems

    Control planes, agents

    embedded

    Cortex-M, RISC-V, WASM
Benchmark policy for profiles

The 1.8–15.5 µs frontend latency claim is locked to --profile=default. Non-default profiles are benchmarked as separate sub-benchmarks; the spec expects them to be about 10 to 20% faster because the name-resolution table is smaller.

Profiles gate at module level only: no statement-level conditional compilation, and no runtime profile detection. The profile is a compile-time constant. Source: mind-spec v1.0, Language Profiles.

The standard library as a three-tier stand of nested scopes: the embedded core on top, heap allocations on the middle ring for systems, tensor blocks on the outer ring for default. A profile selector steps through embedded, systems and default, lighting the scope each one compiles against.

Pick a profile and build.

Profile selection is formalised in mind-spec v1.0, Language Profiles.