Supported CPython versions

pyscriptc supports Python versions still supported upstream; CPython 3.14 is the primary reference. The parser is CPython 3.14’s ast, and pyproject.toml requires >=3.14 to run the compiler.

Two different version axes matter:

  • Compiler host: the CPython that runs pyscriptc itself (>=3.14, enforced in pyproject.toml). This is also the reference interpreter the behavior is checked against.
  • Emitted binaries: native executables with no Python version dependency at all. The cpython IR stamp is a consistency check, not a runtime requirement.

Why 3.14 is the minimum

  • The front end parses with the running interpreter’s ast module, and the reference interpreter compares behavior against that same interpreter, so supporting older hosts means maintaining a second set of parser and semantics expectations for no user benefit.
  • Binaries compiled by pyscriptc do not embed Python, so users running compiled programs are unaffected by the host floor.
  • The version axis only affects which interpreter runs the compiler and which CPython the compiler matches; it never affects the produced binaries.

The detailed assessment behind the window (lifecycle table, IR stamping, oracle installs, and the host-versus-target split) is in docs/python-version-window.md.