From 682055e821da1155e122cf733f0d28d319a19c7b Mon Sep 17 00:00:00 2001 From: Chris Eibl <138194463+chris-eibl@users.noreply.github.com> Date: Tue, 24 Mar 2026 21:00:55 +0100 Subject: [PATCH 1/8] update 3.15 whatsnew: Windows 64-bit binaries now use the tail-calling interpreter --- Doc/whatsnew/3.15.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Doc/whatsnew/3.15.rst b/Doc/whatsnew/3.15.rst index 0973c387a1e595..f60a8a0a558ea9 100644 --- a/Doc/whatsnew/3.15.rst +++ b/Doc/whatsnew/3.15.rst @@ -1943,6 +1943,15 @@ Build changes and :option:`-X dev <-X>` is passed to the Python or Python is built in :ref:`debug mode `. (Contributed by Donghee Na in :gh:`141770`.) +* The official Windows 64-bit binaries on python.org__ are now using the + tail-calling interpreter since Python 3.15.0a8. + (Contributed by Ken Jin, Brandt Bucher and Chris Eibl in :gh:`143068`. + Special thanks go to Steve Dower for his assistance with the integration in the + Windows release build process and to the MSVC team including Hulon Jenkins + for ``msvc::musttail``.) + + __ https://www.python.org/downloads/windows/ + Porting to Python 3.15 ====================== From 22277d9172141911e81dc2cee82ef564161f3c0c Mon Sep 17 00:00:00 2001 From: Chris Eibl <138194463+chris-eibl@users.noreply.github.com> Date: Tue, 24 Mar 2026 21:19:56 +0100 Subject: [PATCH 2/8] ref link the new tail-calling interpreter --- Doc/whatsnew/3.15.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Doc/whatsnew/3.15.rst b/Doc/whatsnew/3.15.rst index f60a8a0a558ea9..0df537f6039196 100644 --- a/Doc/whatsnew/3.15.rst +++ b/Doc/whatsnew/3.15.rst @@ -1943,8 +1943,8 @@ Build changes and :option:`-X dev <-X>` is passed to the Python or Python is built in :ref:`debug mode `. (Contributed by Donghee Na in :gh:`141770`.) -* The official Windows 64-bit binaries on python.org__ are now using the - tail-calling interpreter since Python 3.15.0a8. +* The official Windows 64-bit binaries on python.org__ are now using the new + :ref:`tail-calling interpreter ` since Python 3.15.0a8. (Contributed by Ken Jin, Brandt Bucher and Chris Eibl in :gh:`143068`. Special thanks go to Steve Dower for his assistance with the integration in the Windows release build process and to the MSVC team including Hulon Jenkins From 66ad26da6ba8b5ef4cb496d90a6e974e267259c2 Mon Sep 17 00:00:00 2001 From: Chris Eibl <138194463+chris-eibl@users.noreply.github.com> Date: Tue, 24 Mar 2026 22:06:01 +0100 Subject: [PATCH 3/8] use issue instead of PR --- Doc/whatsnew/3.15.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Doc/whatsnew/3.15.rst b/Doc/whatsnew/3.15.rst index 0df537f6039196..7ea0528da178b1 100644 --- a/Doc/whatsnew/3.15.rst +++ b/Doc/whatsnew/3.15.rst @@ -1945,7 +1945,7 @@ Build changes * The official Windows 64-bit binaries on python.org__ are now using the new :ref:`tail-calling interpreter ` since Python 3.15.0a8. - (Contributed by Ken Jin, Brandt Bucher and Chris Eibl in :gh:`143068`. + (Contributed by Ken Jin, Brandt Bucher and Chris Eibl in :gh:`139922`. Special thanks go to Steve Dower for his assistance with the integration in the Windows release build process and to the MSVC team including Hulon Jenkins for ``msvc::musttail``.) From f1415a723a0dad34dee141fba4ac6aead4ba2c25 Mon Sep 17 00:00:00 2001 From: Chris Eibl <138194463+chris-eibl@users.noreply.github.com> Date: Wed, 25 Mar 2026 16:44:36 +0100 Subject: [PATCH 4/8] Update Doc/whatsnew/3.15.rst Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> --- Doc/whatsnew/3.15.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Doc/whatsnew/3.15.rst b/Doc/whatsnew/3.15.rst index 7ea0528da178b1..f55f8efa950336 100644 --- a/Doc/whatsnew/3.15.rst +++ b/Doc/whatsnew/3.15.rst @@ -1944,7 +1944,7 @@ Build changes (Contributed by Donghee Na in :gh:`141770`.) * The official Windows 64-bit binaries on python.org__ are now using the new - :ref:`tail-calling interpreter ` since Python 3.15.0a8. + :ref:`tail-calling interpreter `. (Contributed by Ken Jin, Brandt Bucher and Chris Eibl in :gh:`139922`. Special thanks go to Steve Dower for his assistance with the integration in the Windows release build process and to the MSVC team including Hulon Jenkins From 84fb11504b492cf97e7385d3a383aa29fc33b860 Mon Sep 17 00:00:00 2001 From: Chris Eibl <138194463+chris-eibl@users.noreply.github.com> Date: Wed, 25 Mar 2026 16:44:45 +0100 Subject: [PATCH 5/8] Update Doc/whatsnew/3.15.rst Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> --- Doc/whatsnew/3.15.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Doc/whatsnew/3.15.rst b/Doc/whatsnew/3.15.rst index f55f8efa950336..b9f3f839f5ce90 100644 --- a/Doc/whatsnew/3.15.rst +++ b/Doc/whatsnew/3.15.rst @@ -1943,7 +1943,7 @@ Build changes and :option:`-X dev <-X>` is passed to the Python or Python is built in :ref:`debug mode `. (Contributed by Donghee Na in :gh:`141770`.) -* The official Windows 64-bit binaries on python.org__ are now using the new +* The official Windows 64-bit binaries on python.org__ now use the new :ref:`tail-calling interpreter `. (Contributed by Ken Jin, Brandt Bucher and Chris Eibl in :gh:`139922`. Special thanks go to Steve Dower for his assistance with the integration in the From b3c2f08fe20ee0f06bc3e7ec104db4b72201fd4c Mon Sep 17 00:00:00 2001 From: Chris Eibl <138194463+chris-eibl@users.noreply.github.com> Date: Thu, 26 Mar 2026 18:19:38 +0100 Subject: [PATCH 6/8] add to release highlights --- Doc/whatsnew/3.15.rst | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Doc/whatsnew/3.15.rst b/Doc/whatsnew/3.15.rst index b9f3f839f5ce90..a4a97b4aa28694 100644 --- a/Doc/whatsnew/3.15.rst +++ b/Doc/whatsnew/3.15.rst @@ -84,7 +84,8 @@ Summary -- Release highlights ` * :ref:`The JIT compiler has been significantly upgraded ` * :ref:`Improved error messages ` - +* :ref:`The official Windows 64-bit binaries now use the tail-calling interpreter + ` New features ============ @@ -1943,6 +1944,8 @@ Build changes and :option:`-X dev <-X>` is passed to the Python or Python is built in :ref:`debug mode `. (Contributed by Donghee Na in :gh:`141770`.) +.. _whatsnew315-windows-tail-calling-interpreter: + * The official Windows 64-bit binaries on python.org__ now use the new :ref:`tail-calling interpreter `. (Contributed by Ken Jin, Brandt Bucher and Chris Eibl in :gh:`139922`. From ebe2ad983bbf5e89f19ddd4bc3600322da5a869d Mon Sep 17 00:00:00 2001 From: Chris Eibl <138194463+chris-eibl@users.noreply.github.com> Date: Thu, 26 Mar 2026 18:34:01 +0100 Subject: [PATCH 7/8] Merge the two news entries --- Doc/whatsnew/3.15.rst | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/Doc/whatsnew/3.15.rst b/Doc/whatsnew/3.15.rst index a4a97b4aa28694..820ec7ee4f020d 100644 --- a/Doc/whatsnew/3.15.rst +++ b/Doc/whatsnew/3.15.rst @@ -1276,18 +1276,6 @@ zlib Optimizations ============= -* Builds using Visual Studio 2026 (MSVC 18) may now use the new - :ref:`tail-calling interpreter `. - Results on Visual Studio 18.1.1 report between - `15-20% `__ - speedup on the geometric mean of pyperformance on Windows x86-64 over - the switch-case interpreter on an AMD Ryzen 7 5800X. We have - observed speedups ranging from 14% for large pure-Python libraries - to 40% for long-running small pure-Python scripts on Windows. - This was made possible by a new feature introduced in MSVC 18. - (Contributed by Chris Eibl, Ken Jin, and Brandt Bucher in :gh:`143068`. - Special thanks to the MSVC team including Hulon Jenkins.) - * ``mimalloc`` is now used as the default allocator for for raw memory allocations such as via :c:func:`PyMem_RawMalloc` for better performance on :term:`free-threaded builds `. @@ -1946,12 +1934,18 @@ Build changes .. _whatsnew315-windows-tail-calling-interpreter: -* The official Windows 64-bit binaries on python.org__ now use the new +* 64-bit builds using Visual Studio 2026 (MSVC 18) may now use the new :ref:`tail-calling interpreter `. - (Contributed by Ken Jin, Brandt Bucher and Chris Eibl in :gh:`139922`. - Special thanks go to Steve Dower for his assistance with the integration in the - Windows release build process and to the MSVC team including Hulon Jenkins - for ``msvc::musttail``.) + Results on Visual Studio 18.1.1 report between + `15-20% `__ + speedup on the geometric mean of pyperformance on Windows x86-64 over + the switch-case interpreter on an AMD Ryzen 7 5800X. We have + observed speedups ranging from 14% for large pure-Python libraries + to 40% for long-running small pure-Python scripts on Windows. + This was made possible by a new feature introduced in MSVC 18, + which the official Windows 64-bit binaries on python.org__ now use. + (Contributed by Chris Eibl, Ken Jin, and Brandt Bucher in :gh:`143068`. + Special thanks to the MSVC team including Hulon Jenkins.) __ https://www.python.org/downloads/windows/ From cc4302dd5cea4d1a3ea4a9d3babcb0052e8e78fc Mon Sep 17 00:00:00 2001 From: Chris Eibl <138194463+chris-eibl@users.noreply.github.com> Date: Thu, 26 Mar 2026 18:46:32 +0100 Subject: [PATCH 8/8] add Steve again. yes yes yes! --- Doc/whatsnew/3.15.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Doc/whatsnew/3.15.rst b/Doc/whatsnew/3.15.rst index 820ec7ee4f020d..dac727751a3c81 100644 --- a/Doc/whatsnew/3.15.rst +++ b/Doc/whatsnew/3.15.rst @@ -1945,7 +1945,7 @@ Build changes This was made possible by a new feature introduced in MSVC 18, which the official Windows 64-bit binaries on python.org__ now use. (Contributed by Chris Eibl, Ken Jin, and Brandt Bucher in :gh:`143068`. - Special thanks to the MSVC team including Hulon Jenkins.) + Special thanks to Steve Dower, and the MSVC team including Hulon Jenkins.) __ https://www.python.org/downloads/windows/