Xo 0.15 release notes
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.