Xo is experimental. The source is now public on GitHub, or try Xo in your browser.

Xo 0.11 release notes

released 2026-10-14 · tag v0.11.0 · all releases

Introduction

Xo 0.11 has no language or spec changes from 0.10: programs build and behave the same. It moves more of the runtime from C into Xo, with every moved piece within 5 percent of the C’s instructions (decision 0180), and makes rebuilds faster.

Runtime

  • About 4,900 lines of runtime C deleted. Standard output and error, exit, environment and arguments, the constant time barrier (decision 0222), the HTTP/1.1 client parser and response writer, the HTTP/2 HPACK coder, string and list objects (decision 0226), the test world, file system operations on Linux and macOS, and the linux/arm64 unwinder for programs with no C library (decision 0221) are Xo.

Compiler

  • arm64 shrink wrapping and tail calls: the compiler’s own build runs 0.985 of the instructions (decision 0224).
  • Constant Int expressions fold to one constant.

Tools

  • Per function back-end and reference counting caches: a one module edit of the compiler rebuilds in about 12 s instead of 31 s on a Mac (decision 0220).
  • Build caches are pruned by age and size (decision 0223).