From 6b328d1f49ed0d032bcc8fa0462540364c93f584 Mon Sep 17 00:00:00 2001 From: Savannah Ostrowski Date: Mon, 19 Oct 2026 13:35:30 -0700 Subject: [PATCH 1/5] PEP 836: Mark as withdrawn --- peps/pep-0836.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/peps/pep-0836.rst b/peps/pep-0836.rst index 4a6957369d7..263e20922c6 100644 --- a/peps/pep-0836.rst +++ b/peps/pep-0836.rst @@ -4,7 +4,7 @@ Author: Savannah Ostrowski , Ken Jin , Brandt Bucher Discussions-To: https://discuss.python.org/t/pep-836-jit-go-brrr-the-path-to-a-supported-jit-compiler-for-cpython/108010 -Status: Draft +Status: Withdrawn Type: Standards Track Created: 02-Jul-2026 Python-Version: 3.16 From f7f7d565c4b5499fc479f61fe7e9e333bf8f2268 Mon Sep 17 00:00:00 2001 From: Savannah Ostrowski Date: Mon, 19 Oct 2026 13:36:26 -0700 Subject: [PATCH 2/5] PEP 836: Link withdrawal announcement --- peps/pep-0836.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/peps/pep-0836.rst b/peps/pep-0836.rst index 263e20922c6..9de0c9385a3 100644 --- a/peps/pep-0836.rst +++ b/peps/pep-0836.rst @@ -9,6 +9,7 @@ Type: Standards Track Created: 02-Jul-2026 Python-Version: 3.16 Post-History: `03-Jul-2026 `__ +Resolution: `19-Oct-2026 `__ Abstract From 7ae58964df9e7cbad046047cf323a972d0c96dc3 Mon Sep 17 00:00:00 2001 From: Brandt Bucher Date: Mon, 19 Oct 2026 14:07:25 -0700 Subject: [PATCH 3/5] Add reference implementation --- peps/pep-0836.rst | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/peps/pep-0836.rst b/peps/pep-0836.rst index 9de0c9385a3..aa86f8e1497 100644 --- a/peps/pep-0836.rst +++ b/peps/pep-0836.rst @@ -835,15 +835,15 @@ largely in: While this PEP does propose and outline an evolution for the JIT (transitioning from tracing to method-based, with heavy reuse of existing code), it does not prescribe a particular implementation of that design. With that said, a working -proof-of-concept implementation against ``main`` exists, and will be shared soon. +proof-of-concept implementation against ``main`` `exists `__. Despite the fact that it is currently under development and incomplete (it does not yet handle generators and coroutines, for example, and has no support for polymorphism, both of which are supported partially by the existing tracing -frontend), it is still 4-5% faster on the pyperformance and Pyston +frontend), it is still 5–6% faster on the pyperformance and Pyston macrobenchmark suites vs. JIT off, on a GIL-enabled build. This demonstrates that the new design developed in just a couple of months can be competitive with the -existing tracing design (which is 7-8% faster on the same x86-64 Linux +existing tracing design (which is 7–8% faster on the same x86-64 Linux configuration after 3 years of work evolving it). Excluding tests, the size of the current method-JIT implementation vs. ``main`` is @@ -852,11 +852,11 @@ approximately as follows: +---------------+---------------+-------------+---------------+ | File Type | Files Changed | Lines Added | Lines Removed | +===============+===============+=============+===============+ -| Generated | 13 | 4200 | 5300 | +| Generated | 10 | 1,300 | 3,100 | +---------------+---------------+-------------+---------------+ -| Non-Generated | 38 | 5800 | 2700 | +| Non-Generated | 40 | 3,000 | 4,300 | +---------------+---------------+-------------+---------------+ -| Total | 51 | 10000 | 8000 | +| Total | 50 | 4,300 | 7,400 | +---------------+---------------+-------------+---------------+ Broken down by file extension: @@ -864,15 +864,15 @@ Broken down by file extension: +-----------+---------------+-------------+---------------+ | Extension | Files Changed | Lines Added | Lines Removed | +===========+===============+=============+===============+ -| .c | 20 | 5400 | 2300 | +| .c | 16 | 2,800 | 3,400 | +-----------+---------------+-------------+---------------+ -| .c.h | 6 | 2400 | 3300 | +| .c.h | 4 | 900 | 2,000 | +-----------+---------------+-------------+---------------+ -| .h | 20 | 2100 | 2300 | +| .h | 18 | 500 | 1,500 | +-----------+---------------+-------------+---------------+ -| .py | 5 | 100 | 100 | +| .py | 12 | 100 | 500 | +-----------+---------------+-------------+---------------+ -| Total | 51 | 10000 | 8000 | +| Total | 50 | 4,300 | 7,400 | +-----------+---------------+-------------+---------------+ From aed8f0900c254a6668a67e98a8c375c732928ac6 Mon Sep 17 00:00:00 2001 From: Brandt Bucher Date: Mon, 19 Oct 2026 14:09:20 -0700 Subject: [PATCH 4/5] - --- peps/pep-0836.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/peps/pep-0836.rst b/peps/pep-0836.rst index aa86f8e1497..e32a3ff7284 100644 --- a/peps/pep-0836.rst +++ b/peps/pep-0836.rst @@ -840,10 +840,10 @@ proof-of-concept implementation against ``main`` `exists Date: Mon, 19 Oct 2026 15:36:19 -0700 Subject: [PATCH 5/5] Update peps/pep-0836.rst Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> --- peps/pep-0836.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/peps/pep-0836.rst b/peps/pep-0836.rst index e32a3ff7284..bb56fd07eb5 100644 --- a/peps/pep-0836.rst +++ b/peps/pep-0836.rst @@ -835,7 +835,8 @@ largely in: While this PEP does propose and outline an evolution for the JIT (transitioning from tracing to method-based, with heavy reuse of existing code), it does not prescribe a particular implementation of that design. With that said, a working -proof-of-concept implementation against ``main`` `exists `__. +proof-of-concept implementation against ``main`` `exists +`__. Despite the fact that it is currently under development and incomplete (it does not yet handle generators and coroutines, for example, and has no support for