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.
| macOS | Linux | Windows | |
|---|---|---|---|
| compile, JIT, render a WAV | verified | verified | not built |
| WebAssembly output | verified | verified | not built |
--play keyboard | verified | needs POSIX termios; not run | no |
| live audio out | verified | no backend | no backend |
| MIDI in | verified | no backend | no 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-msvcThat 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.