Skip to content

Getting started

This page orients you in the repository. For a friendlier walkthrough, start with the Guide.

What Li is

Li is a compiled language for scientific and systems programming where only provable programs build. You write readable code with small promises (requires, ensures, decreases); lic build checks them before producing a binary.

Install

See Getting started — tools for macOS, Linux, and Windows notes.

First commands

./scripts/build.sh
./build/compiler/lic/lic build examples/hello.li -o hello
./hello

Learn by example

Goal Page
Hello world guide/hello-world.md
SIMD + parallel guide/fast-math-and-parallelism.md
More snippets guide/examples-gallery.md

Go deeper

Topic Page
All types and features language/overview.md
Compile pipeline compiler/build-pipeline.md
Mathematical provability compiler/why-provable.md
Tests & security testing/overview.md

Repository layout

li/
  compiler/     # lic — lexer, types, MIR, LLVM
  runtime/      # Small C runtime (print, OpenMP driver, …)
  std/          # Standard library (.li)
  examples/     # hello, tetris, …
  benchmarks/   # Physics & perf harness
  li-tests/     # All automated tests
  docs/         # This documentation

Implementation order

Follow the master plan — do not skip the Lean verification phases for release builds.