| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Include/internal/pycore_ast.h generated | ||
| Include/internal/pycore_ast_state.h generated | ||
| Include/internal/pycore_opcode.h generated | ||
| Include/internal/pycore_opcode_metadata.h generated |
There was a problem hiding this comment.
I removed this from the list a couple of weeks ago to make it show up in the diff, to make sure people are aware when the instruction flags change.
Sorry, something went wrong.
There was a problem hiding this comment.
Agreed, let’s keep it out of the list for. This can catch accidental mistakes, or remind people of the consequences of intentional changes.
Sorry, something went wrong.
There was a problem hiding this comment.
Maybe we should leave it there commented out with an explanation so this won't come up again.
Sorry, something went wrong.
There was a problem hiding this comment.
Hm, really? I'm not sure I agree. This was prompted by the diff view of my recent PR, where it just adds noise.
We already hide other files with lists of tokens, keywords, and standard library module names that are arguably more important and more human-readable than this one. And people can still view them, GitHub just collapses them by default.
If we're this concerned about setting the correct flags, maybe we should just write some sort of test instead?
Sorry, something went wrong.
There was a problem hiding this comment.
What test would you write?
Sorry, something went wrong.
There was a problem hiding this comment.
Well, I'm not really sure what we're trying to protect against here. My understanding is that the flags are now generated automatically by analyzing the DSL's C code. If there's a bug somewhere, it's probably in the static analysis of the code, not the code itself (if I add a GETLOCAL to something, then I definitely want it to set the has "local" flag, ditto for JUMPBY and the "jump" flag).
So maybe tests for InstructionFlags.fromInstruction with some expected inputs and outputs? Or some error-checking in the generator that incompatible flag combinations (like "local" and "jump", or "const" without "oparg") don't happen?
Sorry, something went wrong.
There was a problem hiding this comment.
We could have a few of those. They would protect us from regressions when we change the static analysis code, or when we change the implementation of a bytecode that happens to be tested. But when you add a new bytecode, don't you want to look at that flags and see that they make sense?
Sorry, something went wrong.
There was a problem hiding this comment.
(I edited my comment above, adding that maybe the flags class could do some sanity checks on the flag combination.)
Sorry, something went wrong.
There was a problem hiding this comment.
But honestly I thought this would be uncontroversial. If you're getting value from the status quo, I can let it go. I just got kind of tired of scrolling past this file in PRs.
Sorry, something went wrong.
There was a problem hiding this comment.
Thinking more about this I think this PR is actually fine and we're just being overly paranoid. When changing the code generator I review all generated output anyways, and ditto when editing or adding bytecodes. But I'll leave the last word to @iritkatriel
Sorry, something went wrong.
|
Ok, we can try it this way. |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Uh oh!
There was an error while loading. Please reload this page.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.