https://github.com/python/cpython/commit/a2bb8ad14409c7ecb8dea437b0e281eb1f65b5d8
commit: a2bb8ad14409c7ecb8dea437b0e281eb1f65b5d8
branch: main
author: Kirill Podoprigora <[email protected]>
committer: Fidget-Spinner <[email protected]>
date: 2024-02-20T19:10:47+08:00
summary:
gh-115700: Add target `_RegenCases` in Windows build for cases regeneration.
(GH-115708)
files:
A Misc/NEWS.d/next/Core and
Builtins/2024-02-20-12-46-20.gh-issue-115700.KLJ5r4.rst
M PCbuild/regen.targets
diff --git a/Misc/NEWS.d/next/Core and
Builtins/2024-02-20-12-46-20.gh-issue-115700.KLJ5r4.rst b/Misc/NEWS.d/next/Core
and Builtins/2024-02-20-12-46-20.gh-issue-115700.KLJ5r4.rst
new file mode 100644
index 00000000000000..5b7b8e410b5063
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and
Builtins/2024-02-20-12-46-20.gh-issue-115700.KLJ5r4.rst
@@ -0,0 +1 @@
+The regen-cases build stage now works on Windows.
diff --git a/PCbuild/regen.targets b/PCbuild/regen.targets
index a90620d6ca8b7d..8f31803dbb752a 100644
--- a/PCbuild/regen.targets
+++ b/PCbuild/regen.targets
@@ -31,11 +31,13 @@
<!-- Taken from _Target._compute_digest in Tools\jit\_targets.py: -->
<_JITSources
Include="$(PySourcePath)Python\executor_cases.c.h;$(GeneratedPyConfigDir)pyconfig.h;$(PySourcePath)Tools\jit\**"/>
<_JITOutputs Include="$(GeneratedPyConfigDir)jit_stencils.h"/>
+ <_CasesSources
Include="$(PySourcePath)Python\bytecodes.c;$(PySourcePath)Python\tier2_redundancy_eliminator_bytecodes.c;"/>
+ <_CasesOutputs
Include="$(PySourcePath)Python\generated_cases.c.h;$(PySourcePath)Include\opcode_ids.h;$(PySourcePath)Include\internal\pycore_uop_ids.h;$(PySourcePath)Python\opcode_targets.h;$(PySourcePath)Include\internal\pycore_opcode_metadata.h;$(PySourcePath)Include\internal\pycore_uop_metadata.h;$(PySourcePath)Python\tier2_redundancy_eliminator_cases.c.h;$(PySourcePath)Lib\_opcode_metadata.py"/>
</ItemGroup>
<Target Name="_TouchRegenSources" Condition="$(ForceRegen) == 'true'">
<Message Text="Touching source files to force regeneration"
Importance="high" />
- <Touch
Files="@(_PegenSources);@(_ASTSources);@(_TokenSources);@(_KeywordOutputs)"
+ <Touch
Files="@(_PegenSources);@(_ASTSources);@(_TokenSources);@(_KeywordOutputs);@(_CasesSources)"
AlwaysCreate="False" />
</Target>
@@ -79,7 +81,31 @@
<Exec Command="$(PythonForBuild) Tools\build\generate_global_objects.py"
WorkingDirectory="$(PySourcePath)" />
</Target>
-
+
+ <Target Name="_RegenCases"
+ Inputs="@(_CasesSources)" Outputs="@(_CasesOutputs)"
+ DependsOnTargets="FindPythonForBuild">
+ <Message Text="Regenerate cases" Importance="high" />
+ <Exec Command="$(PythonForBuild)
$(PySourcePath)Tools\cases_generator\opcode_id_generator.py
$(PySourcePath)Python\bytecodes.c"
+ WorkingDirectory="$(PySourcePath)" />
+ <Exec Command="$(PythonForBuild)
$(PySourcePath)Tools\cases_generator\target_generator.py
$(PySourcePath)Python\bytecodes.c"
+ WorkingDirectory="$(PySourcePath)" />
+ <Exec Command="$(PythonForBuild)
$(PySourcePath)Tools\cases_generator\uop_id_generator.py
$(PySourcePath)Python\bytecodes.c"
+ WorkingDirectory="$(PySourcePath)" />
+ <Exec Command="$(PythonForBuild)
$(PySourcePath)Tools\cases_generator\py_metadata_generator.py
$(PySourcePath)Python\bytecodes.c"
+ WorkingDirectory="$(PySourcePath)" />
+ <Exec Command="$(PythonForBuild)
$(PySourcePath)Tools\cases_generator\tier1_generator.py
$(PySourcePath)Python\bytecodes.c"
+ WorkingDirectory="$(PySourcePath)" />
+ <Exec Command="$(PythonForBuild)
$(PySourcePath)Tools\cases_generator\tier2_generator.py
$(PySourcePath)Python\bytecodes.c"
+ WorkingDirectory="$(PySourcePath)" />
+ <Exec Command="$(PythonForBuild)
$(PySourcePath)Tools\cases_generator\tier2_abstract_generator.py
$(PySourcePath)Python\tier2_redundancy_eliminator_bytecodes.c
$(PySourcePath)Python\bytecodes.c"
+ WorkingDirectory="$(PySourcePath)" />
+ <Exec Command="$(PythonForBuild)
$(PySourcePath)Tools\cases_generator\opcode_metadata_generator.py
$(PySourcePath)Python\bytecodes.c"
+ WorkingDirectory="$(PySourcePath)" />
+ <Exec Command="$(PythonForBuild)
$(PySourcePath)Tools\cases_generator\uop_metadata_generator.py
$(PySourcePath)Python\bytecodes.c"
+ WorkingDirectory="$(PySourcePath)" />
+ </Target>
+
<Target Name="_RegenJIT"
Condition="'$(UseJIT)' == 'true'"
DependsOnTargets="_UpdatePyconfig;FindPythonForBuild"
@@ -100,7 +126,7 @@
DependsOnTargets="_TouchRegenSources;_RegenPegen;_RegenAST_H;_RegenTokens;_RegenKeywords;_RegenGlobalObjects">
</Target>
- <Target Name="Regen" DependsOnTargets="_RegenNoPGUpdate;_RegenJIT">
+ <Target Name="Regen"
DependsOnTargets="_RegenNoPGUpdate;_RegenJIT;_RegenCases">
<Message Text="Generated sources are up to date" Importance="high" />
</Target>
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]