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:
- language implementers studying self-hosting compiler chains;
- systems programmers interested in explicit ABI, runtime, and release evidence;
- maintainers building source-owned tooling and checked runtime boundaries;
- contributors working on compiler, package, scripting, editor, or release
infrastructure.
It is not yet a general-purpose production application platform for arbitrary
programs. Current support is documented in
Prerequisites
Required for the common source checkout workflow:
- POSIX shell;
make;- Python 3 for host-side adapters and checks.
Required for native compiler and release paths:
- a C toolchain accepted by the repository Makefile;
- enough memory for the selected native/release gate.
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
- Read Concepts for the mental model.
- Read Examples for runnable examples.
- Read Troubleshooting when a command fails.
- Read Architecture before changing compiler or runtime
behavior.