0x0LearnReferenceLibraries0x0.jmp0x1b.com

Getting Started

This guide gets a systems programmer from a checkout to a running 0x0 program.

It describes current repository behavior only.

What 0x0 Is

0x0 is a symbolic, Lisp-like, pure-functional language kernel. The production

compiler is written in 0x0 source at compiler/main.0x0. The assembly seed at

seed/zero.s is retained for bootstrap recovery and audit; it is not the normal

language implementation path.

Who This Is For

0x0 is currently best suited for:

infrastructure.

It is not yet a general-purpose production application platform for arbitrary

programs. Current support is documented in

Feature Support Matrix.

Prerequisites

Required for the common source checkout workflow:

Required for native compiler and release paths:

Needs verification: exact minimum Python and C compiler versions for every

supported host. See Platform Support for current support

claims.

Build Or Select A Compiler

For a normal checkout with trusted artifacts available:


make

If the trusted compiler artifact is missing and you intentionally want to audit

the seed path:


make bootstrap-from-seed
make release-verify

make normally uses the trusted release compiler rooted at version 0.1.0; it

does not invoke the seed unless you choose the bootstrap path.

Run The First Program

Run the minimal example:


./bin/zero run examples/add.0x0

Expected output:


42

The source is:


(⊙ add)

(ƒ add
  (∷ (→ I64 I64 I64))
  (a b)
  (+ a b))

(ƒ main
  (∷ (→ Unit I64))
  (_)
  (add 20 22))

Postcondition: the command exits successfully and writes 42 to stdout.

Try Imports

Run a multi-file import example:


./bin/zero run examples/import-main.0x0

Expected output:


42

The root file imports examples/import-helper.0x0 with:


(↥ "import-helper.0x0")

Relative imports are resolved from the importing file's directory.

Try ADTs And Match

Run:


./bin/zero run examples/adt-result.0x0

Expected output:


80

This example demonstrates top-level τ declarations and match. See

Language Guide for current ADT restrictions and lowering notes.

Development Checks

Use the quick maintainer check:


make doctor

Before committing a repository change:


make selfhost-guard

For documentation-only changes:


make documentation-impact-check
make docs-check

Next Steps

behavior.