Python, compiled

Skip the interpreter

Write the numeric core in Python. zlow turns it into a native binary — no interpreter, no mypyc, no Cython. If we can't compile it correctly, we refuse it.

Skip the interpreter

44.3 ms to run the kernel. CPython took 1,133 ms on the same source.

A real binary

The compile path is Python source to native. CPython, mypyc, and Cython are not on it.

Checked against CPython

Every accepted kernel matches pinned CPython 3.14 on IEEE bits, not printed decimals.

Small on purpose

v0 is floats, bools, and control flow. Keep the rest of the app in Python.

Refuse, don’t guess

32 out-of-profile constructs are a named error. Nothing that merely looks right is written.

44.3 ms

to run the kernel

25.6×

faster than CPython

Lightning fast

Same kernel. The interpreter walks the loop; the binary just runs it.

zlow
44.3 msentry()
cpython
1,133 msentry()
Runtimeentry()
zlow native44.3 ms
CPython 3.141,133 ms

44.3 ms vs 1,133 ms for a five-million-iteration recurrence (median of five interleaved rounds; range 40.1–51.1 ms vs 1,072–1,169 ms). Compile once; this is the run of entry(). 39/39 fixtures still match CPython on bits.

What's in v0

A kernel, not a rewrite of CPython. Keep the rest of the app in Python; compile the hot path.

You can write

  • float and bool functions
  • locals, if / elif / while
  • arithmetic, comparisons, and boolean ops
  • calls between functions in the same project

Not this

  • classes, lists, strings, or None
  • for, imports, or the stdlib
  • async, exceptions, or decorators
  • CPython, mypyc, and Cython on the compile path

Fully featured

Compile the hot path to native. Keep writing Python.

Try it

Add a project file, then compile.

Terminal
npm install @zlow/cli
zlow native .

Put zlow.json next to your entry and run zlow native . { "language": "python", "entry": "src/main.py" }

More Python commands