Shipping

Platforms

Where Pole has actually been built and run — and where it has not.

Anyone deciding whether it will work on their machine.

The compiler, the JIT and WAV rendering are portable: LLVM plus standard C++, with no platform headers anywhere in the compiler core. Audio output and MIDI input are not — they are CoreAudio and CoreMIDI behind #if defined(__APPLE__), with stubs elsewhere that report the fact rather than failing to build.

That is the design. What follows is what has actually been run, which is a different claim and the more useful one.

macOSLinuxWindows
compile, JIT, render a WAVverifiedverifiednot built
WebAssembly outputverifiedverifiednot built
--play keyboardverifiedneeds POSIX termios; not runno
live audio outverifiedno backendno backend
MIDI inverifiedno backendno backend

macOS#

The development platform. Everything on this site was compiled and played on it.

Linux#

The compiler builds and its test suite passes. Getting there took five fixes — Player.cpp's non-Apple path did not compile at all, and gcc's -Wformat-truncation caught a note-name buffer that can need 14 bytes and had 8 — and they are committed.

Two things to be honest about: this was done under a container by hand rather than in CI, so nothing re-checks it on every change; and there is no audio or MIDI backend, so Linux renders and exports but does not play live.

Windows#

Not compiled. There are _WIN32 guards in the sources and the compiler core has no reason not to build, but nobody has built it, so this table says "not built" rather than "should work".

Cross-emitting for Windows is a different thing and does work — a macOS or Linux machine can produce a Windows object:

./build/polec fx.pole --emit=export --out=fx --target=x86_64-pc-windows-msvc

That is the compiler targeting Windows, not the compiler running on it.

What the language reference says#

tools/pole/LANGUAGE.md carries a platform table that marks Windows "yes" for compiling, JIT and rendering. That is a statement about the design rather than about a build anyone has done, and this page is the one to trust when they disagree.