-
-
Notifications
You must be signed in to change notification settings - Fork 31.5k
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-126835: Rename AST optimization related stuff after moving const folding to the peephole optimizier #131830
base: main
Are you sure you want to change the base?
Conversation
WolframAlph
commented
Mar 28, 2025
•
edited by bedevere-app
bot
Loading
edited by bedevere-app
bot
- Issue: Move const folding to the peephole optimizer #126835
@@ -0,0 +1,2 @@ | |||
Move constant folding to the peephole optimizer. Rename AST optimization |
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.
Can you say which files were renamed? we have a 3.13 news entry that mentions ast_opt
so maybe it's a good idea to say that Python/ast_opt.c
is renamed Python/ast_process.c
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.
Sure, I will.
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.
While I think it's good to mention the files I don't know if we ever mentioned those structs and functions publicly. If not, no need to mention their renames. Strictly speaking, Python/*
files are also all internals so maybe it's not needed to mention them in the end but I found a 3.13 NEWS entry that mentioned it (which is why I suggested this)
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.
Struct maybe yes because it's private, but _PyAST_Optimize
and _PyCompile_AstOptimize
are in internal API, aren't they?
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.
We actually made the structs private in 3.13:
Make ``_PyASTOptimizeState`` internal to ast_opt.c. Make ``_PyAST_Optimize``
take two integers instead of a pointer to this struct. This avoids the need
to include pycore_compile.h in ast_opt.c.
But we also mentioned _PyAST_Optimize
, so we might want to mention the change even if no one should use them.
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.
You can include it in the news item. No need for what's new.
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.
Im a bit confused. This is news entry, not what's new. Am I missing something?
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.
No, I think Irit just wanted to say "keep what you wrote but no need for a What's New entry" (maybe I wasn't clear but the changelog I mentioned also was a simple blurb, not a full-fledged What's New entry)
I'm not sure about the name ast_process. Seems to nonspecific. I don't have a better idea at the moment though. |
It does all kind of things. Optimizes format, removes docstrings, implements PEP 765, etc. I don't think there is good name for it to make it more specific. |
@picnixz Maybe you have better suggestion how to name it? |
I think "ast_process" is fine but otherwise, something with |
Maybe |
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.
Yes, I think preprocess
is better as it's before we compile (and compilers would call it a pre-processing step (e.g., C compilers would pre-process macros here and comments elimination; well optimization is not part of pre-processing and usually happens after but still before compilation I think?).