Nomo

DOCUMENTATION / EARLY PREVIEW

Start with Nomo

Nomo is still an early preview. These notes cover the stable path today and link to the specifications that are still evolving.

Quick start

Download the matching preview archive, put nomo on your PATH, and verify the toolchain:

nomo --version
nomo check hello.nomo

Create a program

A minimal package declares its package path, imports standard I/O, and exposes a typed main function:

package app.main

import std.io

fn main() -> void {
    io.println("Hello, Nomo")
}

Check and run

Use the same CLI for formatting, diagnostics, native builds, and execution:

nomo fmt hello.nomo
nomo check hello.nomo
nomo build hello.nomo
nomo run hello.nomo

Language foundations

Nomo favors immutable values, explicit mutation, Result-based failure, no null, and no exceptions. The compiler emits C99 before the platform linker runs.

Packages and workspaces

Package and workspace design is evolving through RFCs. Treat nomo.toml as a versioned project contract and review the relevant RFC before depending on unstable fields.

Where to go next

Use the language repository for implementation details, the RFC index for design decisions, and the playground for an install-free syntax tour.

enzh