]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.11] gh-110429: Fix race condition in "make regen-all" (GH-110433) (#110439)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Thu, 5 Oct 2023 20:49:32 +0000 (13:49 -0700)
committerGitHub <noreply@github.com>
Thu, 5 Oct 2023 20:49:32 +0000 (20:49 +0000)
gh-110429: Fix race condition in "make regen-all" (GH-110433)

"make regen-pegen" now creates a temporary file called "parser.c.new"
instead of "parser.new.c". Previously, if "make clinic" was run in
parallel with "make regen-all", clinic may try but fail to open
"parser.new.c" if the temporay file was removed in the meanwhile.
(cherry picked from commit fb6c4ed2bbb2a867d5f0b9a94656e4714be5d9c2)

Co-authored-by: Victor Stinner <vstinner@python.org>
Makefile.pre.in

index ba8e6349e815decf19f4ae1a6123ca56fdb91ddb..f84ab130ddbd2e9fb2323627d3a7bf34683f3b75 100644 (file)
@@ -1301,8 +1301,8 @@ regen-pegen:
        PYTHONPATH=$(srcdir)/Tools/peg_generator $(PYTHON_FOR_REGEN) -m pegen -q c \
                $(srcdir)/Grammar/python.gram \
                $(srcdir)/Grammar/Tokens \
-               -o $(srcdir)/Parser/parser.new.c
-       $(UPDATE_FILE) $(srcdir)/Parser/parser.c $(srcdir)/Parser/parser.new.c
+               -o $(srcdir)/Parser/parser.c.new
+       $(UPDATE_FILE) $(srcdir)/Parser/parser.c $(srcdir)/Parser/parser.c.new
 
 .PHONY=regen-ast
 regen-ast: