-
-
Notifications
You must be signed in to change notification settings - Fork 32k
gh-108740: Fix "make regen-all" race condition #108741
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
Conversation
You can test this fix by adding a new global identifier with this patch: index c66a862341..4534768305 100644
--- a/Modules/_asynciomodule.c
+++ b/Modules/_asynciomodule.c
@@ -780,6 +780,7 @@ _asyncio.Future.__init__
*
loop: object = None
+ new_funky_identifier: object = None
This class is *almost* compatible with concurrent.futures.Future.
Run
Then revert the local patch, and make run that Moreover, |
I removed the misleading messages displayed to the user to ask to run In general, |
Maybe:
|
We are looking at removing deepfreeze altogether. #108722 |
Good to know! Anyway, it's still worth it to fix Python 3.12 build system (which uses And there is still a dependency issue between |
ab72ab2
to
5bb8646
Compare
I updated my PR to better explain the change, and I documented generated files in Doc/using/configure.rst. @erlend-aasland: Would you be available to review my change? |
I'll have a look tomorrow! |
IIUC, it is only partially removed, and the infrastructure remains, so it would make sense to fix the race condition. |
Fix a race condition in "make regen-all". The deepfreeze.c source and files generated by Argument Clinic are now generated or updated before generating "global objects". Previously, some identifiers may miss depending on the order in which these files were generated. * "make regen-global-objects": Make sure that deepfreeze.c is generated and up to date, and always run "make clinic". * "make clinic" no longer runs generate_global_objects.py script anymore. * "make regen-deepfreeze" now only updates deepfreeze.c, it doesn't build deepfreeze.o anymore. * Remove misleading messages in "make regen-global-objects" and "make clinic". They are outdated, these commands are now safe to use. * Document generates files in Doc/using/configure.rst
This reverts commit 4803f4e. We must keep the previous rule because of the Makefile patching (!) that the generate-* scripts does.
2f5eed3
to
66e8d70
Compare
What what the problem?
I tried again your change :-) |
Good :-) |
Thanks @vstinner for the PR 🌮🎉.. I'm working now to backport this PR to: 3.11, 3.12. |
Sorry, @vstinner, I could not cleanly backport this to |
Sorry, @vstinner, I could not cleanly backport this to |
Fix a race condition in "make regen-all". The deepfreeze.c source and files generated by Argument Clinic are now generated or updated before generating "global objects". Previously, some identifiers may miss depending on the order in which these files were generated. * "make regen-global-objects": Make sure that deepfreeze.c is generated and up to date, and always run "make clinic". * "make clinic" no longer runs generate_global_objects.py script. * "make regen-deepfreeze" now only updates deepfreeze.c (C file). It doesn't build deepfreeze.o (object) anymore. * Remove misleading messages in "make regen-global-objects" and "make clinic". They are now outdated, these commands are now safe to use. * Document generates files in Doc/using/configure.rst. Co-authored-by: Erlend E. Aasland <[email protected]> (cherry picked from commit db1ee6a)
GH-109019 is a backport of this pull request to the 3.12 branch. |
Fix a race condition in "make regen-all". The deepfreeze.c source and files generated by Argument Clinic are now generated or updated before generating "global objects". Previously, some identifiers may miss depending on the order in which these files were generated. * "make regen-global-objects": Make sure that deepfreeze.c is generated and up to date, and always run "make clinic". * "make clinic" no longer runs generate_global_objects.py script. * "make regen-deepfreeze" now only updates deepfreeze.c (C file). It doesn't build deepfreeze.o (object) anymore. * Remove misleading messages in "make regen-global-objects" and "make clinic". They are now outdated, these commands are now safe to use. Backport notes: * Omit Doc/using/configure.rst changes. Co-authored-by: Erlend E. Aasland <[email protected]> (cherry picked from commit db1ee6a)
Fix a race condition in "make regen-all". The deepfreeze.c source and files generated by Argument Clinic are now generated or updated before generating "global objects". Previously, some identifiers may miss depending on the order in which these files were generated. * "make regen-global-objects": Make sure that deepfreeze.c is generated and up to date, and always run "make clinic". * "make regen-deepfreeze" now only updates deepfreeze.c (C file). It doesn't build deepfreeze.o (object) anymore. * Remove misleading messages in "make regen-global-objects" and "make clinic". They are now outdated, these commands are now safe to use. Backport notes: * Omit Doc/using/configure.rst changes. * no need to change "make clinic", it didn't run generate_global_objects.py script before. Co-authored-by: Erlend E. Aasland <[email protected]> (cherry picked from commit db1ee6a)
GH-109021 is a backport of this pull request to the 3.11 branch. |
@erlend-aasland: You may want to review backports, I had conflicts. |
Thanks for the review @erlend-aasland, I merged my PR. |
|
) gh-108740: Fix "make regen-all" race condition (#108741) Fix a race condition in "make regen-all". The deepfreeze.c source and files generated by Argument Clinic are now generated or updated before generating "global objects". Previously, some identifiers may miss depending on the order in which these files were generated. * "make regen-global-objects": Make sure that deepfreeze.c is generated and up to date, and always run "make clinic". * "make regen-deepfreeze" now only updates deepfreeze.c (C file). It doesn't build deepfreeze.o (object) anymore. * Remove misleading messages in "make regen-global-objects" and "make clinic". They are now outdated, these commands are now safe to use. Backport notes: * Omit Doc/using/configure.rst changes. * no need to change "make clinic", it didn't run generate_global_objects.py script before. Co-authored-by: Erlend E. Aasland <[email protected]> (cherry picked from commit db1ee6a)
) gh-108740: Fix "make regen-all" race condition (#108741) Fix a race condition in "make regen-all". The deepfreeze.c source and files generated by Argument Clinic are now generated or updated before generating "global objects". Previously, some identifiers may miss depending on the order in which these files were generated. * "make regen-global-objects": Make sure that deepfreeze.c is generated and up to date, and always run "make clinic". * "make clinic" no longer runs generate_global_objects.py script. * "make regen-deepfreeze" now only updates deepfreeze.c (C file). It doesn't build deepfreeze.o (object) anymore. * Remove misleading messages in "make regen-global-objects" and "make clinic". They are now outdated, these commands are now safe to use. * Document generates files in Doc/using/configure.rst. Co-authored-by: Erlend E. Aasland <[email protected]> (cherry picked from commit db1ee6a)
Fix a race condition in "make regen-all". The deepfreeze.c source and files generated by Argument Clinic are now generated or updated before generating "global objects". Previously, some identifiers may miss depending on the order in which these files were generated.