GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — gh-104619: never leak comprehension locals to outer locals() by carljm · Pull Request #104637 · python/cpython

Conversation

@carljm

@carljm carljm commented May 19, 2023 •
edited by bedevere-bot
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

The initial implementation of PEP 709 didn't bother to clear comprehension locals after an inlined comprehension, if the name was a global outside the comprehension. This was purely an optimization to save a couple extra instructions in this case; it didn't seem necessary to clear the comprehension value, since outer references to the name would use LOAD_GLOBAL anyway and not see the value in fastlocals.

But it is necessary to clear the comprehension local even in this case, because otherwise it will still show up in locals(), or in debugger usage, outside of the comprehension.

  • Issue: PEP 709: Comprehension iteration variable leaks into outer locals() #104619

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@carljm
pythongh-104619: never leak comprehension locals to outer locals()
58b7d96
@bedevere-bot bedevere-bot mentioned this pull request May 19, 2023
PEP 709: Comprehension iteration variable leaks into outer locals() #104619
Closed
@carljm
carljm requested a review from JelleZijlstra May 19, 2023 01:23
@carljm carljm added the skip news label May 19, 2023
@carljm
carljm marked this pull request as ready for review May 19, 2023 01:25
@carljm
carljm requested review from iritkatriel and markshannon as code owners May 19, 2023 01:25
@bedevere-bot bedevere-bot added the awaiting core review label May 19, 2023
@carljm carljm linked an issue May 19, 2023 that may be closed by this pull request
PEP 709: Comprehension iteration variable leaks into outer locals() #104619
Closed
JelleZijlstra
JelleZijlstra approved these changes May 19, 2023
View reviewed changes
@bedevere-bot bedevere-bot added awaiting merge and removed awaiting core review labels May 19, 2023
@JelleZijlstra
JelleZijlstra merged commit 70c7796 into python:main May 19, 2023
@bedevere-bot bedevere-bot removed the awaiting merge label May 19, 2023
carljm added a commit to gsallam/cpython_with_perfmap_apii that referenced this pull request May 20, 2023
@carljm
Merge branch 'main' into gsallam/main
ea5965a
* main: (30 commits)
  pythongh-103987: fix several crashes in mmap module (python#103990)
  docs: fix wrong indentation causing rendering error in dis page (python#104661)
  pythongh-94906: Support multiple steps in math.nextafter (python#103881)
  pythongh-104472: Skip `test_subprocess.ProcessTestCase.test_empty_env` if ASAN is enabled (python#104667)
  pythongh-103839: Allow building Tkinter against Tcl 8.7 without external libtommath (pythonGH-103842)
  pythongh-85984: New additions and improvements to the tty library. (python#101832)
  pythongh-104659: Consolidate python examples in enum documentation (python#104665)
  pythongh-92248: Deprecate `type`, `choices`, `metavar` parameters of `argparse.BooleanOptionalAction` (python#103678)
  pythongh-104645: fix error handling in marshal tests (python#104646)
  pythongh-104600: Make type.__type_params__ writable (python#104634)
  pythongh-104602: Add additional test for listcomp with lambda (python#104639)
  pythongh-104640: Disallow walrus in comprehension within type scopes (python#104641)
  pythongh-103921: Rename "type" header in argparse docs (python#104654)
  Improve readability of `typing._ProtocolMeta.__instancecheck__` (python#104649)
  pythongh-96522: Fix deadlock in pty.spawn (python#96639)
  pythonGH-102818: Do not call `PyTraceBack_Here` in sys.settrace trampoline.  (pythonGH-104579)
  pythonGH-103545: Add macOS specific constants for ``os.setpriority`` to ``os`` (python#104606)
  pythongh-104623: Update macOS installer to SQLite 3.42.0 (pythonGH-104624)
  pythongh-104619: never leak comprehension locals to outer locals() (python#104637)
  pythongh-104602: ensure all cellvars are known up front (python#104603)
  ...
@carljm
carljm deleted the 709locals branch June 16, 2023 17:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@JelleZijlstra JelleZijlstra JelleZijlstra approved these changes
@markshannon markshannon Awaiting requested review from markshannon markshannon is a code owner
@iritkatriel iritkatriel Awaiting requested review from iritkatriel iritkatriel is a code owner

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

skip news

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

PEP 709: Comprehension iteration variable leaks into outer locals()

Uh oh!

There was an error while loading. Please reload this page.

3 participants

@carljm @JelleZijlstra @bedevere-bot
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.