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-101517: fix line number propagation in code generated for except* by iritkatriel · Pull Request #103550 · python/cpython

Conversation

@iritkatriel

@iritkatriel iritkatriel commented Apr 14, 2023 •
edited by bedevere-bot
Loading

Uh oh!

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

Copy link
Copy Markdown
Member

We had some virtual instructions with no line number because the whole block is virtual and it has two predecessors.
This PR changes the control flow graph a little to avoid that.

We need to think about how to make the compiler do this automatically, but for now this fixes the bug that was reported.

  • Issue: Bug in linecache when raising exceptiongroup that contains ZeroDivisionError + other exception. #101517

Sorry, something went wrong.

Uh oh!

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

All reactions
@iritkatriel
pythongh-101517: fix line number propagation in code generated for ex…
eb2b5a5
…cept*
@iritkatriel
iritkatriel requested a review from markshannon as a code owner April 14, 2023 22:30
@bedevere-bot bedevere-bot mentioned this pull request Apr 14, 2023
Bug in linecache when raising exceptiongroup that contains ZeroDivisionError + other exception. #101517
Closed
@bedevere-bot bedevere-bot added the awaiting core review label Apr 14, 2023
@iritkatriel iritkatriel added type-bug An unexpected behavior, bug, or error interpreter-core (Objects, Python, Grammar, and Parser dirs) needs backport to 3.11 only security fixes labels Apr 14, 2023
gaogaotiantian
gaogaotiantian reviewed Apr 14, 2023
View reviewed changes
Comment thread Lib/bdb.py Resolved

Uh oh!

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

blurb-it Bot and others added 2 commits April 14, 2023 22:35
@blurb-it
📜🤖 Added by blurb_it.
58c883e
@iritkatriel
add warning to s
073c860
gaogaotiantian
gaogaotiantian reviewed Apr 14, 2023
View reviewed changes
Comment thread Lib/bdb.py Resolved

Uh oh!

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

iritkatriel added 2 commits April 15, 2023 00:02
@iritkatriel
Add prefix
6f4c26c
@iritkatriel
Merge branch 'main' into propagate_linenos
293cefe
@iritkatriel
iritkatriel requested a review from carljm April 23, 2023 21:23
carljm
carljm approved these changes Apr 24, 2023
View reviewed changes

@carljm carljm left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good as a backportable fix for the immediate issue.

As a longer-term follow-up, we should at the very least add asserts in the compiler to guarantee the line-number invariants we are supposed to provide (per PEP 626) rather than only catching issues downstream as in this case. (And possibly also adjust the compiler to automatically apply the restructuring done by this diff in cases where it's necessary to meet those invariants.)

Do you already have an issue for those follow-ups? If not, let's create one?

Sorry, something went wrong.

Uh oh!

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

All reactions
@bedevere-bot bedevere-bot added awaiting merge and removed awaiting core review labels Apr 24, 2023
@iritkatriel

iritkatriel commented Apr 24, 2023

Copy link
Copy Markdown
Member Author

Thanks. I agree, and I don't have an issue for the followup yet.

All reactions

Sorry, something went wrong.

Uh oh!

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

@iritkatriel
iritkatriel merged commit 1c01f8d into python:main Apr 24, 2023
@miss-islington

miss-islington commented Apr 24, 2023

Copy link
Copy Markdown
Contributor

Thanks @iritkatriel for the PR 🌮🎉.. I'm working now to backport this PR to: 3.11.
🐍🍒⛏🤖

All reactions

Sorry, something went wrong.

Uh oh!

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

@bedevere-bot bedevere-bot removed the awaiting merge label Apr 24, 2023
@miss-islington

miss-islington commented Apr 24, 2023

Copy link
Copy Markdown
Contributor

Sorry @iritkatriel, I had trouble checking out the 3.11 backport branch.
Please retry by removing and re-adding the "needs backport to 3.11" label.
Alternatively, you can backport using cherry_picker on the command line.
cherry_picker 1c01f8d79760ca74f6d35b839d23ac408b3bb44e 3.11

All reactions

Sorry, something went wrong.

Uh oh!

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

@miss-islington miss-islington assigned iritkatriel Apr 24, 2023
@iritkatriel iritkatriel added needs backport to 3.11 only security fixes and removed needs backport to 3.11 only security fixes labels Apr 24, 2023
@miss-islington

miss-islington commented Apr 24, 2023

Copy link
Copy Markdown
Contributor

Thanks @iritkatriel for the PR 🌮🎉.. I'm working now to backport this PR to: 3.11.
🐍🍒⛏🤖

All reactions

Sorry, something went wrong.

Uh oh!

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

@miss-islington

miss-islington commented Apr 24, 2023

Copy link
Copy Markdown
Contributor

Sorry, @iritkatriel, I could not cleanly backport this to 3.11 due to a conflict.
Please backport using cherry_picker on command line.
cherry_picker 1c01f8d79760ca74f6d35b839d23ac408b3bb44e 3.11

All reactions

Sorry, something went wrong.

Uh oh!

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

@iritkatriel iritkatriel mentioned this pull request Apr 24, 2023
compiler's line number propagation algorithm could be more robust #103795
Closed
carljm added a commit to carljm/cpython that referenced this pull request Apr 24, 2023
@carljm
Merge branch 'main' into superopt
0de5bc6
* main:
  pythongh-101517: fix line number propagation in code generated for except* (python#103550)
  pythongh-103780: Use patch instead of mock in asyncio unix events test (python#103782)
carljm added a commit to carljm/cpython that referenced this pull request Apr 24, 2023
@carljm
Merge branch 'superopt' into superopt_spec
1972ca4
* superopt: (82 commits)
  pythongh-101517: fix line number propagation in code generated for except* (python#103550)
  pythongh-103780: Use patch instead of mock in asyncio unix events test (python#103782)
  pythongh-102498 Clean up unused variables and imports in the email module  (python#102482)
  pythongh-99184: Bypass instance attribute access in `repr` of `weakref.ref` (python#99244)
  pythongh-99032: datetime docs: Encoding is no longer relevant (python#93365)
  pythongh-94300: Update datetime.strptime documentation (python#95318)
  pythongh-103776: Remove explicit uses of $(SHELL) from Makefile (pythonGH-103778)
  pythongh-87092: fix a few cases of incorrect error handling in compiler (python#103456)
  pythonGH-103727: Avoid advancing tokenizer too far in f-string mode (pythonGH-103775)
  Revert "Add tests for empty range equality (python#103751)" (python#103770)
  pythongh-94518: Port 23-argument `_posixsubprocess.fork_exec` to Argument Clinic (python#94519)
  pythonGH-65022: Fix description of copyreg.pickle function (python#102656)
  pythongh-103323: Get the "Current" Thread State from a Thread-Local Variable (pythongh-103324)
  pythongh-91687: modernize dataclass example typing (python#103773)
  pythongh-103746: Test `types.UnionType` and `Literal` types together (python#103747)
  pythongh-103765: Fix 'Warning: py:class reference target not found: ModuleSpec' (pythonGH-103769)
  pythongh-87452: Improve the Popen.returncode docs
  Removed unnecessary escaping of asterisks (python#103714)
  pythonGH-102973: Slim down Fedora packages in the dev container (python#103283)
  pythongh-103091: Add PyUnstable_Type_AssignVersionTag (python#103095)
  ...
@iritkatriel iritkatriel mentioned this pull request Apr 25, 2023
[3.11] gh-101517: fix line number propagation in code generated for except* (#103550) #103816
Merged
@bedevere-bot

bedevere-bot commented Apr 25, 2023

Copy link
Copy Markdown

GH-103816 is a backport of this pull request to the 3.11 branch.

All reactions

Sorry, something went wrong.

Uh oh!

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

@bedevere-bot bedevere-bot removed the needs backport to 3.11 only security fixes label Apr 25, 2023
iritkatriel added a commit to iritkatriel/cpython that referenced this pull request Apr 25, 2023
@iritkatriel
pythongh-101517: fix line number propagation in code generated for ex…
e62d5d9
…cept* (python#103550)
iritkatriel added a commit that referenced this pull request Apr 25, 2023
@iritkatriel @ambv
[3.11] gh-101517: fix line number propagation in code generated for e…
93a9535
…xcept* (#103550) (#103816)

Manual backport of #103550.



<!-- gh-issue-number: gh-101517 -->
* Issue: gh-101517
<!-- /gh-issue-number -->

---------

Co-authored-by: Łukasz Langa <[email protected]>
@iritkatriel
iritkatriel deleted the propagate_linenos branch July 25, 2023 18:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@gaogaotiantian gaogaotiantian gaogaotiantian left review comments
@carljm carljm carljm approved these changes
@markshannon markshannon Awaiting requested review from markshannon markshannon is a code owner

Uh oh!

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

Assignees

@iritkatriel iritkatriel

Labels

interpreter-core (Objects, Python, Grammar, and Parser dirs) type-bug An unexpected behavior, bug, or error

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

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

5 participants

@iritkatriel @miss-islington @bedevere-bot @carljm @gaogaotiantian
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.