Language Reference

Execution and Feature Status

A compact status matrix for what Kira parses, semantically checks, and runs today.

Status Matrix

FeatureParsedCheckedVMLLVMHybrid
@Main entrypointYesYesYesYesYes
@Runtime / @NativeYesYes@Runtime onlyYesYes
function declarationsYesYesYesYesYes
integer, float, string, and boolean runtime valuesYesYesYesYesYes
local letYesYesYesYesYes
member accessYesYesYesYesYes
integer, float, and boolean operators in the lowered subsetYesYesYesYesYes
array literals, indexing, and indexed assignmentYesYesYesYesYes
if / else if / for / while / break / continue / switchYesYesYesYesYes
enum declarations, enum construction, and exhaustive matchYesYesYesYesYes
Foundation Result through import FoundationYesYesYesYesYes
@Printable print dispatch through onPrint()YesYesYesYesYes
conditional ?: in the lowered scalar/pointer subsetYesYesYesYesYes
construct forms and builder blocksYesYescheck-oriented onlycheck-oriented onlycheck-oriented only
@FFI.Extern declarationsYesYesNoYesYes
callback-typed FFI callsYesYesNoYesYes
builtin printYesYesYes for scalars, pointers, arrays, and named struct valuesYes for ordinary executable values, including named structs and array summariesYes for ordinary executable values, including named structs and array summaries
named struct constructionYesYesYesYesYes
callable values through locals and fieldsYesYesYesYesYes

Reading the Matrix

This table is intentionally conservative.

  • Yes means the repo has direct support and proof for that stage.
  • partial means the syntax and semantic model exist, but the manual does not claim broad runnable coverage.
  • check-oriented only means the feature is part of the implemented frontend and semantic validation surface, not a claim about today's executable lowering.

For the current repo state, VM, LLVM/native, and hybrid share the same ordinary executable lowering surface for the checked-in parity and interop corpus.

Ownership Status

The current ownership implementation is intentionally specific:

  • borrow, borrow mut, move, and copy syntax exists
  • missing-move, use-after-move, and move-twice diagnostics are checked in semantics
  • VM, LLVM/native, and hybrid all carry ownership metadata
  • returned borrows are rejected today instead of being accepted with incomplete lifetime checking
  • non-trivial copy lowering is not implemented yet and is diagnosed instead

On this page