Uh oh!
There was an error while loading. Please reload this page.
bpo-43950: Specialize tracebacks for subscripts/binary ops - #27037
Conversation
isidentical
commented
Jul 5, 2021
For the |
cc31c2d to
413d601CompareThere was a problem hiding this comment.
I thought from the title of the PR that it's related to Mark's bytecode specializations. Are you settled on using this word? Seems a bit overloaded now.
There was a problem hiding this comment.
They are not relevant at all, but I can see the confusion. Any suggestions on alternative renaming?
There was a problem hiding this comment.
Here's how clang's documentation talks about their carets: https://clang.llvm.org/diagnostics.html
So following from there maybe something like Precision traceback or Pointing traceback because we're pointing to a specific part in the expression or trying to make it more precise?
pablogsal
commented
Jul 7, 2021
@isidentical this may need rebasing now that the other PR is merged |
pablogsal
commented
Jul 7, 2021
Let's focus on land this one next @ammaraskar@isidentical |
isidentical
commented
Jul 7, 2021
@ammaraskar after your +def_extract_anchors_from_segment(segment):
+importast++tree=ast.parse(segment)
+iflen(tree.body) ==1:
+statement=tree.body[0]
+matchstatement:
+caseast.Expr(expr):
+matchexpr:
+caseast.BinOp():
+operator_str=segment[expr.left.end_col_offset:expr.right.col_offset]
+operator_offset=len(operator_str) -len(operator_str.lstrip())
+returnoperator_offset, operator_offset+1+caseast.Subscript():
+returnexpr.value.end_col_offset, expr.slice.col_offset+return-1, -1 |
Uh oh!
There was an error while loading. Please reload this page.
94801f4 to
26e900eCompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Co-authored-by: Batuhan Taskaya <batuhanosmantaskaya@gmail.com>
d77011d to
d79d365Compare
ammaraskar
left a comment
There was a problem hiding this comment.
Just some basic stylistic suggestions mostly, looks good to me.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
4a9a967 to
26430d4Comparebedevere-bot
commented
Jul 10, 2021
🤖 New build scheduled with the buildbot fleet by @isidentical for commit 26430d4 🤖 If you want to schedule another build, you need to add the ":hammer: test-with-buildbots" label again. |
ammaraskar
commented
Jul 11, 2021
Ping @pablogsal |
isidentical
commented
Jul 11, 2021
Apparently ASAN is failing, though not sure if it is relevant. |
| err = PyFile_WriteString(" ", f); | ||
| if (err < 0) { | ||
| goto done; | ||
| if (source_line) { |
There was a problem hiding this comment.
Why is this guarded by source_line? How we can correctly calculate the offsets if we cannot get the line to calculate the characters? How can tHe code path when this is false and we continue with the bytes be corrent?
There was a problem hiding this comment.
@isidentical This still applies, could you please check out what's going on here?
pablogsal
commented
Jul 12, 2021
@isidentical I have pushed 081738d to greatly simplify the code structure. I think it reads better now. Please, check it out |
isidentical
commented
Jul 12, 2021
Thanks @pablogsal, it LGTM. Feel free to merge! |
pablogsal
commented
Jul 12, 2021
@isidentical Please, check out #27037 (comment) |
isidentical
commented
Jul 12, 2021
Ah, I think that is not relevant. I just checked again, and it seems like |
isidentical
commented
Jul 12, 2021
Also I am not really sure if we get any cases where primary/secondary will be different, but if so I think it would be nicer to make amendments to the traceback.py logic to do the same. |
pablogsal
commented
Jul 12, 2021
In this PR or in a different one? |
pablogsal
commented
Jul 12, 2021
We should also add some tests where we fail to parse the source. Is this covered currently? |
isidentical
commented
Jul 12, 2021
This PR. |
pablogsal
commented
Jul 12, 2021
Also, I am not very sure what you refer to with "will be different". Can you elaborate?
I don't see this covered. Could you add a test for this? |
isidentical
commented
Jul 12, 2021
via email
Also, I am not very sure what you refer to with "will be different". Can you elaborate?
With the latest commit you pass primary/secondary (^/~) characters to the
AST visitors. But for both of the cases they get assigned the same values
so that is what I meant by 'will be different' (are there any other
specializations that you plan would change the values for these 2
variables).
I am currently unavailable to add a test, but can try to write something
off tonight. …On Mon, Jul 12, 2021, 3:38 PM Pablo Galindo Salgado < ***@***.***> wrote:
Also I am not really sure if we get any cases where primary/secondary will
be different, but if so I think it would be nicer to make amendments to the
traceback.py logic to do the same.
Also, I am not very sure what you refer to with "will be different". Can
you elaborate?
We should also add some tests where we fail to parse the source. Is this
covered currently?
I don't see this covered. Could you add a test for this?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#27037 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/ALJKHQJO6MPLFWJU5R75MZ3TXLO37ANCNFSM473CEDAA>
.
|
Uh oh!
There was an error while loading. Please reload this page.
5d2036a to
a67c8aaComparea67c8aa to
045c491CompareUh oh!
There was an error while loading. Please reload this page.
ammaraskar
commented
Jul 12, 2021
We now have a test for when parsing fails and the |
pablogsal
commented
Jul 12, 2021
Yes, the most important step: celebrate 🎉 (also pray for the buildbots to not fail 😉 ) |
Since python/cpython#27037, they can include tildes in addition to the carets.
Since python/cpython#27037, they can include tildes in addition to the carets.
Examples;
https://bugs.python.org/issue43950