POLYTONE
The AI-native programming language
polýs + tónos — why the name?One canonical form for every construct. Errors that teach instead of scold. Tests built into the language. POLYTONE is designed for the way code is written now — by humans and machines, together.
fn main() -> Void:
let name = "world"
print("Hello, {name}!")
print("2 + 2 = {2 + 2}")New in this release
Sprint 496 — M96 OPENS: POLY-OS as an app you install- POLY-OS can now be packaged for installation with a single command. On a Mac it builds POLY-OS.app in a disk image. Linux gets an archive with a launcher entry and a .deb, and Windows a zip. The app icon is itself drawn in POLYTONE and rendered by the toolchain: a rail and two tiles, the new design in miniature. Before a package counts as finished, its own program starts POLY-OS without a window and checks that the OS appears. Each package comes with checksums. Nothing has been published yet: releasing it is the owner's decision.
Fewer tokens, same work
POLYTONE is designed for LLM generation. The effect is measurable: same task, equivalent runnable programs, counted with the cl100k tokenizer.
- Repair in one lineA teaching error names the canonical form: 86 tokens of error text instead of 268 for the equivalent Python traceback.
- One canonical formNo style negotiation in the prompt, no post-generation format diffs — ptc fmt is local and costs zero tokens.
- Frozen surfaceSpec §27 freezes the language and stdlib API: one stable system prefix that providers can cache forever.
Measured 2026-07: equivalent, verified-runnable programs (byte-identical output) and the reproducible context benchmark (benchmarks/context, CI-gated); tokenizer cl100k_base. Honestly: on a two-file project the slice is a wash — it wins as soon as real modules are imported.
Code that proves itself
Tests live next to the function, not in a foreign framework. And when one fails, the message already explains what to do:
fn double(x: Int) -> Int = x + x
test "doubling four":
assert double(4) == 8
test "this expectation is wrong":
let xs = [1, 2].map(fn(x: Int) -> Int = double(x))
assert xs == [2, 5]