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

Xo 0.15 release notes

released 2026-10-15 · tag v0.15.0 · all releases

Introduction

Xo 0.15 moves a program’s entry toward Xo: the runtime’s C went from 476 lines to 343.

Runtime

  • Xo functions can be exported under exact C names, and the backends define the data symbols a program with no C library needs (environ, stdin, stdout, stderr) (decision 0234).
  • With no C library, the process entry (_start, the thread pointer, the stack switch) is emitted by the arm64 and LLVM backends, and the runtime’s own printf is gone.

Compiler

  • LLVM builds of a single module use no LTO at -O0 (the compiler built in 129 s instead of 1,871 s) and full LTO at -O2 (XO_LLVM_LTO).
  • arm64: Int constants fold after inlining; ML-KEM and SHA-3 run about 2.8 times faster.