Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

PCBuild needs an analog ofmake regen-cases #104055

Open
Labels
3.13bugs and security fixesOS-windowsbuildThe build process and cross-buildtype-featureA feature request or enhancement
@arhadthedev

Description

@arhadthedev

Feature or enhancement

Windows developers need a way to invokeTools/cases_generator/generate_cases.py with all necessary flags (and, probably, environment variables) skipping the challenge of manual typing.

On non-Windows platforms it's achieved withmake regen-all that depends on theregen-cases target:

cpython/Makefile.pre.in

Lines 1490 to 1503 ina679c3d

regen-cases:
# Regenerate Python/generated_cases.c.h
# and Python/opcode_metadata.h
# from Python/bytecodes.c
# using Tools/cases_generator/generate_cases.py
PYTHONPATH=$(srcdir)/Tools/cases_generator \
$(PYTHON_FOR_REGEN) \
$(srcdir)/Tools/cases_generator/generate_cases.py \
--emit-line-directives \
-o $(srcdir)/Python/generated_cases.c.h.new \
-m $(srcdir)/Python/opcode_metadata.h.new \
$(srcdir)/Python/bytecodes.c
$(UPDATE_FILE) $(srcdir)/Python/generated_cases.c.h $(srcdir)/Python/generated_cases.c.h.new
$(UPDATE_FILE) $(srcdir)/Python/opcode_metadata.h $(srcdir)/Python/opcode_metadata.h.new

By analogy,PCBuild\regen.targets could do the same for MSBuild.

Pitch

When I tried to resolve aPython/generated_cases.c.h conflict ingh-103976, I found out that I cannot do it easily. An attempt to port theregen-cases target was unsuccessfull:

D:\Oleg\cpython>set PYTHONPATH=D:\Oleg\cpython\Tools\cases_generatorD:\Oleg\cpython>python Tools/cases_generator/generate_cases.py --emit-line-directives Python/generated_cases.c.h.new Python/opcode_metadata.h.newRunning Release|x64 interpreter...Traceback (most recent call last):  File "D:\Oleg\cpython\Tools\cases_generator\generate_cases.py", line 1259, in     main()  File "D:\Oleg\cpython\Tools\cases_generator\generate_cases.py", line 1250, in main    a.parse()  # Raises SyntaxError on failure    ^^^^^^^^^  File "D:\Oleg\cpython\Tools\cases_generator\generate_cases.py", line 557, in parse    self.parse_file(filename, instrs_idx)  File "D:\Oleg\cpython\Tools\cases_generator\generate_cases.py", line 568, in parse_file    with open(filename) as file:         ^^^^^^^^^^^^^^FileNotFoundError: [Errno 2] No such file or directory: 'Python/generated_cases.c.h.new'D:\Oleg\cpython>python Tools/cases_generator/generate_cases.py --emit-line-directives Python/generated_cases.c.h Python/opcode_metadata.hRunning Release|x64 interpreter...Traceback (most recent call last):  File "D:\Oleg\cpython\Tools\cases_generator\generate_cases.py", line 1259, in     main()  File "D:\Oleg\cpython\Tools\cases_generator\generate_cases.py", line 1250, in main    a.parse()  # Raises SyntaxError on failure    ^^^^^^^^^  File "D:\Oleg\cpython\Tools\cases_generator\generate_cases.py", line 557, in parse    self.parse_file(filename, instrs_idx)  File "D:\Oleg\cpython\Tools\cases_generator\generate_cases.py", line 583, in parse_file    raise psr.make_syntax_error(  File "Python/generated_cases.c.h", line 4658    }    ^SyntaxError: Couldn't find '// BEGIN BYTECODES //' in Python/generated_cases.c.h

Autogenegeration would lift off a need to write a private batch-file, debug it, and use it each timePython/bytecodes.c is touched.

Your environment

  • CPython versions tested on:Python 3.12.0a7+ (heads/main:5078eedc5b, May 1 2023, 23:20:56) [MSC v.1929 64 bit (AMD64)] on win32

Metadata

Metadata

Assignees

No one assigned

    Labels

    3.13bugs and security fixesOS-windowsbuildThe build process and cross-buildtype-featureA feature request or enhancement

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions


      [8]ページ先頭

      ©2009-2025 Movatter.jp