Skip to content

roadmap: GraalPy verified — compatible, but perf is workload-dependent - #6

Merged
simontreanor merged 1 commit into
mainfrom
graalpy-verification
Jul 18, 2026
Merged

roadmap: GraalPy verified — compatible, but perf is workload-dependent#6
simontreanor merged 1 commit into
mainfrom
graalpy-verification

Conversation

@simontreanor

Copy link
Copy Markdown
Owner

Records the GraalPy verification result in the "Performance beyond CPython" entry.

Compatibility: verified. Emitted output runs unchanged on GraalPy 3.12.8 — PEP 701 nested-quote f-strings, class-pattern match, dataclass ADTs/records, full bench suite with byte-identical outputs.

Performance: workload-dependent, not a blanket win. vs CPython 3.14: collatz 1.7x faster, map_build ~1.6x slower, expr_eval ~4x slower. In-process warmup probes show GraalPy JIT-warming the hand-written tuple-based baseline to 2x faster than CPython while never warming any ADT-as-classes variant (match or isinstance, dataclass or __slots__) — allocation-heavy trees of small class instances are the slow path, and that is Pyfun's core data shape.

Docs line updated: runs unchanged, measure with bench/run.py --python graalpy, don't assume; CPython 3.14 is the best all-round host measured; the result does not auto-transfer to PyPy (different GC), pending --target 3.11. Artifacts in local/graalpy-verification/ (untracked by design).

https://claude.ai/code/session_011PBhfjrzsUtwupYtJtzAWu

Verification run 2026-07-18 (GraalPy 3.12.8 / GraalVM CE 25.1.3, container):
emitted output runs unchanged, including PEP 701 nested-quote f-strings and
class-pattern match. Bench numbers vs CPython 3.14: collatz 1.7x faster,
map_build ~1.6x slower, expr_eval ~4x slower. Warmup probes localize the slow
path to the ADT-as-classes representation (never JIT-warms in any styling),
while tuple-shaped data warms to 2x faster than CPython. Docs guidance and
the PyPy caveat updated accordingly.

Claude-Session: https://claude.ai/code/session_011PBhfjrzsUtwupYtJtzAWu
@simontreanor
simontreanor merged commit 17ad123 into main Jul 18, 2026
11 checks passed
@simontreanor
simontreanor deleted the graalpy-verification branch July 18, 2026 21:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant