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