Pre-alpha · Updated 2026-09-05

Python language support, with evidence.

pycc is a pre-alpha AOT compiler for typed Python. Inspect one PEP 526 fixture, its CPython 3.14.7 comparison, and the limits of current language support.

language-support-v1 · language-conformance · all-Tier-1

One passing fixture does not establish full Python 3.14 compatibility. all-Tier-1 means platform coverage for this fixture, not whole-language acceptance. The displayed pycc run uses debug, not release.

Execution transcript

source

def compute(base: int) -> int:
    doubled: int = base * 2
    total: int
    total = doubled + base
    return total


print(compute(5))

pycc command

pycc run tests/fixtures/pep_0526_var_annotations.py

pycc stdout

15

pycc stderr (empty)

pycc exit

0

cpython command

python3.14 tests/fixtures/pep_0526_var_annotations.py

cpython stdout

15

cpython stderr (empty)

cpython exit

0

Immutable execution provenance

Working directory: repository-root. Rust 1.97.1; LLVM 22; CPython 3.14.7; debug build; no extra compiler flags. Windows uses the established python3.14.exe alias. Only CPython's CR-before-LF translation is normalized.

Source commit 0d94ad8f30b27131a5da381a034d55165558e56a, tree 26bf9fe465c50d8065b1e0260e6100dc3e68f193. CI run 33969157527 checked out merge commit 321e66ff71f1eb4dedcd34d606f98994ad198758, whose complete tree equals the source tree; base 4eca5e24e09d6972b5717f35652e5201dde2a02f. These are historical execution facts, not a claim that the publication commit was already tested.

Registered production test: language_commands_match_cpython_3_14_7_and_canonical_stdout.

fixture · test · commit · run · stdout

A curated, non-exhaustive support map

This is a map of named tested subsets, not a promise that every program in a feature family works. Current Python standards and the current breadth declaration own the full evolving scope.

Implemented: named tested subsets

The displayed PEP 526 fixture proves annotated assignment with an initializer (doubled: int = ...) and a bare annotation without an initializer (total: int). Its separate registered conformance test checks debug and release builds; those builds are not the displayed debug run.

Current-tree update, separate from the historical hero: In the module prologue, from __future__ import annotations is accepted as a compile-time no-op and binds no feature name. The PEP 563 subset proves that this directive leaves supported own-class method annotations and already-defined-class function annotations working. Later-defined forward references, string annotations, and runtime __annotations__ introspection remain unsupported. This is partial evidence, not whole-PEP acceptance. See the directive contract and divergences, production CLI tests, and three proven categories and three core gaps. The separate PEP 563 fixture was observed green across all five Tier-1 targets in debug and release on main CI run 33972731538. This update does not extend the PEP 526 transcript's evidence.

Partial: core gaps remain

PEP 526 remains a subset row (◐), not whole-PEP acceptance (D-177). The fixture does not prove parenthesized annotated targets, module- and class-level __annotations__ recording, or annotated attribute and subscript targets. The current declaration classifies all three as core gaps. Its explanatory reasons are not a second frozen implementation claim here.

Experimental

No separately accepted experimental language hero is established by this evidence.

Not yet supported

General union annotations and arbitrary container representations are outside the current implemented subset. Native container support is restricted to list[int], dict[str, int], set[int], and scalar tuples; Optional is limited to int, float, and bool. A green subset fixture does not remove these boundaries. Broader compatibility, CPython interop, and incremental compilation remain roadmap work.

Permanent non-goals are different from missing implementation: dynamic eval/exec, monkey-patching, and runtime class creation are rejected by design. Consult the rejected-by-design list. Planned syntax is not a runnable quick start.

Keep the evidence in context

Read language support and its limits, exact compiler diagnostics, current implementation status, and the compiler architecture. The current roadmap describes evolving scope; links labeled current may advance beyond this historical run.