From b48ea4a1a69ffe2d23e78c44c4a2f4067370f449 Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Fri, 8 Sep 2023 13:00:41 +0100 Subject: [PATCH 1/3] 709 - Write out 2x in words - Merge two sentences - Remove implemenetation detail from What's New --- Doc/whatsnew/3.12.rst | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst index 6b4ec99b43dea6..517ad6b95757dc 100644 --- a/Doc/whatsnew/3.12.rst +++ b/Doc/whatsnew/3.12.rst @@ -246,14 +246,11 @@ PEP 709: Comprehension inlining Dictionary, list, and set comprehensions are now inlined, rather than creating a new single-use function object for each execution of the comprehension. This -speeds up execution of a comprehension by up to 2x. +speeds up execution of a comprehension by up to two times. -Comprehension iteration variables remain isolated; they don't overwrite a +Comprehension iteration variables remain isolated and don't overwrite a variable of the same name in the outer scope, nor are they visible after the -comprehension. This isolation is now maintained via stack/locals manipulation, -not via separate function scope. - -Inlining does result in a few visible behavior changes: +comprehension. Inlining does result in a few visible behavior changes: * There is no longer a separate frame for the comprehension in tracebacks, and tracing/profiling no longer shows the comprehension as a function call. From b66458f00aa45ed5d901d0730da40a19659d7248 Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Fri, 8 Sep 2023 13:08:30 +0100 Subject: [PATCH 2/3] 709: Standardise contribution parentheses --- Doc/whatsnew/3.12.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst index 517ad6b95757dc..0a074b03063f2b 100644 --- a/Doc/whatsnew/3.12.rst +++ b/Doc/whatsnew/3.12.rst @@ -267,7 +267,7 @@ comprehension. Inlining does result in a few visible behavior changes: create a list of keys to iterate over: ``keys = list(locals()); [k for k in keys]``. -Contributed by Carl Meyer and Vladimir Matveev in :pep:`709`. +(Contributed by Carl Meyer and Vladimir Matveev in :pep:`709`.) .. _whatsnew312-pep688: From c19e271f1d6c51cddb1863c23eb112a0114b0595 Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Fri, 8 Sep 2023 13:13:39 +0100 Subject: [PATCH 3/3] 709: Add link to PEP --- Doc/whatsnew/3.12.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst index 0a074b03063f2b..9caf9c18856503 100644 --- a/Doc/whatsnew/3.12.rst +++ b/Doc/whatsnew/3.12.rst @@ -247,6 +247,7 @@ PEP 709: Comprehension inlining Dictionary, list, and set comprehensions are now inlined, rather than creating a new single-use function object for each execution of the comprehension. This speeds up execution of a comprehension by up to two times. +See :pep:`709` for further details. Comprehension iteration variables remain isolated and don't overwrite a variable of the same name in the outer scope, nor are they visible after the