News

What shipped, and when.

There are no version numbers yet — the language ships from main, gated by the test suite. This is the record of the changes big enough to change how you write LukeLang.

Syntax v2 is the default

25 August 2026 · #38

The biggest change in the language's life. .luke and .lk files now use the technical surface — fn, let, struct, braces and operators — instead of the conversational one.

// before
THIS IS FUNCTION add WITH a AS NUMBER, b AS NUMBER GIVES BACK NUMBER DO
  GIVE BACK ADD a AND b
END FUNCTION

// after
fn add(a: float, b: float) -> float {
  return a + b
}
  • The whole corpus moved: 118 examples, the standard library, packages and the deployed demo
  • luke MIGRATE file.luke rewrites v1 source, marking anything it cannot translate
  • Conversational v1 stays available behind --syntax=1 for the deprecation window
  • The specification is machine-checked against code generation, so it cannot drift
  • Equivalence gates compare v1 and v2 output byte for byte — 10 of 10 normative programs pass

Read the specification or the phased plan behind the cutover.

Official editor tooling

19 August 2026 · #37

  • A VS Code extension with syntax highlighting, snippets and brace-aware indentation
  • Backend publishing documentation for getting a built server onto a real machine
  • AGENTS.md, describing how the repository expects automated contributors to behave

Postgres, with Slipstream

13 August 2026

A libpq driver landed with an asynchronous pipelined executor, and then Slipstream — an adaptive sharded executor — became the default after benchmarks showed it winning.

  • import std/pg with TLS, pooling and prepared statement caching
  • Pipelined dispatch that keeps the socket busy instead of round-tripping per query
  • SQLite gained a thread-local pool, a statement cache and WAL pragmas by default

Numbers and methodology in backend benchmarks.

HTTP at ten thousand connections

13 August 2026

  • An epoll and kqueue event loop with a handler pool
  • Keep-alive, SO_REUSEPORT multi-loop accept, TCP_NODELAY and writev
  • Chunked responses, client IP through proxy headers, and graceful shutdown on SIGTERM

httpServe(server, handler, maxConn) is still one line in your source; the tiers are chosen by the compiler.

The frontend track finished

12 August 2026

  • Per-axis alignment, declarative breakpoints, grids, scroll containers and wrapping
  • Accessibility as language surface: announcements, focus traps and restore, live regions
  • Modal semantics, viewport reflow on resize, and Tailwind class pass-through
  • Region-minimal painting — a changed cell repaints its region, not the page

Live Graph gets incremental views

12 August 2026

Watched queries stopped re-running in full. Joins, filters and aggregates are now maintained by delta against a change log, which is also what makes time travel possible.

  • Keyed join maintenance, including filtered and multi-way joins
  • Incremental aggregates, with ranged and function variants
  • Resume-from-log so a reconnecting client does not miss events
  • Scrubbing backwards and forwards over the log in the browser

Language server, debugger and formatter

12 August 2026

  • luke LSP — hover, completion, definition, document symbols, formatting, diagnostics
  • luke DAP for editor debugging, and luke DEBUG --break file:line driving gdb on your source lines
  • luke DEBUG --inspect dumps reactive cells with their dependency edges
  • luke FMT, with a CI gate proving the round trip is byte-stable across every example