Skip to content
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

Open
wants to merge 7 commits into
base: main
Choose a base branch
from

Conversation

WolframAlph
Copy link
Contributor

@WolframAlph WolframAlph commented Mar 28, 2025

@WolframAlph WolframAlph changed the title gh-126835: Rename ast_opt.c -> ast_process.c gh-126835: Rename AST optimization related stuff after moving const folding to the peephole optimizier Mar 28, 2025
@@ -0,0 +1,2 @@
Move constant folding to the peephole optimizer. Rename AST optimization
Copy link
Member

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

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sure, I will.

Copy link
Member

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)

Copy link
Contributor Author

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?

Copy link
Member

@picnixz picnixz Mar 28, 2025

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.

Copy link
Member

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.

Copy link
Contributor Author

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?

Copy link
Member

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)

@WolframAlph WolframAlph marked this pull request as ready for review March 28, 2025 14:35
@WolframAlph WolframAlph requested a review from picnixz March 28, 2025 14:46
@iritkatriel
Copy link
Member

I'm not sure about the name ast_process. Seems to nonspecific. I don't have a better idea at the moment though.

@WolframAlph
Copy link
Contributor Author

WolframAlph commented Mar 28, 2025

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.

@WolframAlph
Copy link
Contributor Author

@picnixz Maybe you have better suggestion how to name it?

@picnixz
Copy link
Member

picnixz commented Mar 28, 2025

I think "ast_process" is fine but otherwise, something with AST_Transform as we're doing a transformation/checks on the AST. I feel there is a mix of AST optimization (real opts + docstrings eradication), a bit of AST processing/post-processing (PEP 765) and more. So process is fine IMO.

@iritkatriel
Copy link
Member

Maybe ast_preprocess. Preprocessing is a term you hear in compilers.

Copy link
Member

@picnixz picnixz left a 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?).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants