Documentation
Everything the compiler already knows.
40 documents, hosted here and generated from the same Markdown that ships in the repository — so they move when the compiler moves.
Syntax at a glance
Syntax v2 is the default for .luke and .lk files. The
conversational v1 surface stays available behind --syntax=1 during the
deprecation window, and luke MIGRATE rewrites v1 source into v2.
| Form | Meaning |
|---|---|
| print(x) | Write a value to standard output |
| let n = 1 | Immutable binding; var for one you reassign |
| let n: float = 1 | Typed binding — int, float, str, bool, list, map, json |
| fn f(a: float) -> float { … } | Function with a declared return type |
| struct Dog : Animal { … } | Blueprint with inheritance; init is the constructor |
| import std/server | Standard library, sibling file, or luke/<package> |
| signal count = 0 | A reactive cell |
| derived total = a * b | A cell computed from other cells |
| effect on total { … } | Runs whenever the named cell changes |
| batch { … } | Several writes, one flush |
| watch user from db where "id = 1" | Server cell backed by a database row |
| push watch user on req | Stream that cell to a client over the wire |
| bind("name", user) | Paint a cell into the DOM |
| raw "…" | Pass a line through to the v1 surface untouched |
Start here
-
LukeLang is Build-first: technical syntax → native or WebAssembly via vm/.
-
Play (luke SHOW) is a convenience: GC’d bytecode VM for demos and exploration. Build (luke BUILD) is the language of record: syntax v2 → native code, no GC, Rust-class li
-
Status: normative for core / reactive / backend. Layout-UI section is provisional. Plan: SYNTAX_V2_PLAN.md · Golden corpus: examples/v2/ Decisions: all nine open items in
-
Status: v2 — decision record (syntax amended) Purpose: Lock down what LukeLang is, what it wins first, and the order we build it in. When a roadmap or PR conflicts with t
The language
-
The syntax v2 surface, which is what .lk and .luke files use. Every form here is drawn from SYNTAX_V2_SPEC.md, which is machine-checked against code generation — if the t
-
This document outlines the standard library provided by LukeLang, including functions for input/output, file system operations, and other utilities.
-
Nail these rules before money / IDs / counters rely on them.
-
Status: production pipeline — every luke BUILD / IR / FMT / LSP path goes through parseLuke Files: vm/include/luke_ast.hpp, vm/src/luke_expr.cpp, vm/src/luke_parse.cpp
-
Status: Phases 0–5 flip complete (.luke is v2; --syntax=1 deprecation window). Phrase-prefix deletion in build_c.cpp is the post-window cleanup. No codegen AST rewrite ye
-
Prefer BUILD_MODE.md for the language of record. This page is a short pointer — older JS-transpile guidance was removed with the legacy emitters (LEGACY.md).
Reactive engine
-
Status: Phases 1–8 shipped; Phases 9–11 production roadmap (correctness, scheduler, granularity) Normative spec: REACTIVE_SPEC.md · Roadmap: REACTIVE_ROADMAP.md Identity:
-
Status: Normative draft (Phase 9–10 — correctness + Scheduler 2.0) Implementation: vm/runtime/luke_reactive.h Architecture overview: REACTIVE.md Roadmap: REACTIVE_ROADMAP
-
Phases 1–8 shipped (feature foundation). This roadmap covers production-grade + signature-grade work. Priority: Correctness → Scheduler → Granularity → Memory → DevTools
Live Graph
-
Status: true differential IVM — point rows, N-table equi-JOIN chains, multi-row join bags, inequality/LIKE bag filters — + scrub UI + causal resume + wire fail-closed The
-
Luke’s httpServe / SERVE ROUTES binary speaks plain HTTP on a local port. Production TLS and static assets belong in front — the Go/nginx pattern:
Backend
-
Wedge: reactive full-stack web — see STRATEGY.md. Track: Backend (this document) — unlocks full-stack reactivity (likely the true signature). Prior track: Frontend (FRONT
-
Status: secure-path beachhead + auth-as-types + FLOW / LIMIT / REVEAL / rewind-audit spikes Track: BACKEND_ROADMAP.md · TaskList.md
-
Status: shipped. Slipstream is the default. Blocking libpq TLS pool remains the escape hatch (LUKE_PG_ASYNC=0). Official numbers vs Go: BACKEND_BENCHMARKS.md — equal-budg
-
Scope: HTTP serving and database-backed API throughput, LukeLang vs Go. Posture: these numbers are honest, reproducible, and caveated. Read §2 Environment and §8 Limitati
-
LukeLang's first market surface is backend language + reactive full-stack substrate, not generic scripting.
Frontend
-
Wedge: reactive full-stack web — see STRATEGY.md (the decision record this roadmap serves). Current track: Frontend (this document) + Backend beachhead opening Next track
-
Status: v0.5 — widgets + modal focus + live regions + class/scroll/grid Name: Argus Backend: DOM presentment (not Skia) Layout: Hanka Frontend track: FRONTEND_ROADMAP.md
-
Status: v1.4 — flex/grid + per-axis ALIGN + STACK/WRAP BELOW + SCROLL + WEAR Name: Hanka Role: Own layout numbers → feed Argus frames / CSS flex/grid Not: browser flex/gr
-
The LukeLang layout engine is named Hanka.
-
The LukeLang rendering engine is named Argus.
-
Status: v1 in progress (shippable static apps) Goal: Ship real browser apps as Luke-owned UI + Build AOT, not a thin skin over React. Frontend track: FRONTEND_ROADMAP.md
Tooling & compiler
-
LukeLang runtime already provides protocol servers:
-
Thanks for contributing. The canonical codebase is vm/.
-
Status: Phase 2 baseline (Track 12) — method-aware Re-run locally; quote median / min, not a single sample.
-
External “A+ language” grades are evidence, not a new product vision. Updated after true Execution A+ (no recompute fallbacks for supported shapes; multi-row JOIN cards).
-
Canonical implementation: vm/ (luke BUILD / luke SHOW)
Papers
-
A technical paper on the change propagation model at the core of LukeLang.
-
The LukeLang Frontend Engines: Argus and Hanka
A technical paper on the rendering and layout engines that render LukeLang user interfaces.
-
A technical paper on end to end reactivity from the database row to the screen pixel.
-
LukeLang Authentication: Secure by Compiler
A technical paper on authentication and authorization as language properties.
-
The LukeLang Request Pipeline: Middleware as Compiler Checked Capabilities
A technical paper on routing and middleware as language properties rather than ordered runtime lists.
-
OAuth and Authentication Flows as Compiler Verified State Machines
A technical paper on modeling delegated authorization and multi step authentication as flows the compiler can prove safe.
-
LukeLang Execution: The Build Pipeline and the Differential Ledger
A technical paper on how LukeLang source becomes running behavior, and how reactive queries execute as maintained differences rather than repeated work.
-
LukeLang Architecture: One Front End, Many Backends
A technical paper on the structural spine of the compiler: the shared program tree that every tool reads, and the layering that carries a value from a database row to a s
-
LukeLang Core Engines: The Substrate and How the Engines Compose
A technical paper on the small set of primitives beneath every LukeLang engine, and on the way four engines compose into one dataflow from a database row to a screen pixe