Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GH-109190: Copyedit 3.12 What's New: PEP 709 #109656

Merged
merged 3 commits into from
Sep 21, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 5 additions & 7 deletions Doc/whatsnew/3.12.rst
Original file line number Diff line number Diff line change
Expand Up @@ -246,14 +246,12 @@ 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.
See :pep:`709` for further details.

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.
Expand All @@ -270,7 +268,7 @@ 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:

Expand Down
Loading