summaryrefslogtreecommitdiffstats
path: root/Tools/build/freeze_modules.py
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2024-03-18 18:13:11 (GMT)
committerGitHub <noreply@github.com>2024-03-18 18:13:11 (GMT)
commit9c7b3688e6ff071456e0ee623b82870755ea7808 (patch)
treebc8bcc609716fb210e9ada3e514b7bd505d13d61 /Tools/build/freeze_modules.py
parent7e1f38f2de8f93de362433203faa5605a0c47f0e (diff)
downloadcpython-9c7b3688e6ff071456e0ee623b82870755ea7808.zip
cpython-9c7b3688e6ff071456e0ee623b82870755ea7808.tar.gz
cpython-9c7b3688e6ff071456e0ee623b82870755ea7808.tar.bz2
gh-108716: Cleanup remaining deepfreeze infrastructure (#116919)
Keep Tools/build/deepfreeze.py around (we may repurpose it for deepfreezing non-code objects), and keep basic "clean" targets that remove the output of former deep-freeze activities, to keep the build directories of current devs clean.
Diffstat (limited to 'Tools/build/freeze_modules.py')
-rw-r--r--Tools/build/freeze_modules.py79
1 files changed, 2 insertions, 77 deletions
diff --git a/Tools/build/freeze_modules.py b/Tools/build/freeze_modules.py
index a541b4b..eef2d0a 100644
--- a/Tools/build/freeze_modules.py
+++ b/Tools/build/freeze_modules.py
@@ -20,8 +20,6 @@ STDLIB_DIR = os.path.join(ROOT_DIR, 'Lib')
# If FROZEN_MODULES_DIR or DEEPFROZEN_MODULES_DIR is changed then the
# .gitattributes and .gitignore files needs to be updated.
FROZEN_MODULES_DIR = os.path.join(ROOT_DIR, 'Python', 'frozen_modules')
-DEEPFROZEN_MODULES_DIR = os.path.join(ROOT_DIR, 'Python', 'deepfreeze')
-DEEPFREEZE_MAPPING_FNAME = 'deepfreeze_mappings.txt'
FROZEN_FILE = os.path.join(ROOT_DIR, 'Python', 'frozen.c')
MAKEFILE = os.path.join(ROOT_DIR, 'Makefile.pre.in')
@@ -233,7 +231,7 @@ def _parse_spec(spec, knownids=None, section=None):
#######################################
# frozen source files
-class FrozenSource(namedtuple('FrozenSource', 'id pyfile frozenfile deepfreezefile')):
+class FrozenSource(namedtuple('FrozenSource', 'id pyfile frozenfile')):
@classmethod
def from_id(cls, frozenid, pyfile=None):
@@ -241,8 +239,7 @@ class FrozenSource(namedtuple('FrozenSource', 'id pyfile frozenfile deepfreezefi
pyfile = os.path.join(STDLIB_DIR, *frozenid.split('.')) + '.py'
#assert os.path.exists(pyfile), (frozenid, pyfile)
frozenfile = resolve_frozen_file(frozenid, FROZEN_MODULES_DIR)
- deepfreezefile = resolve_frozen_file(frozenid, DEEPFROZEN_MODULES_DIR)
- return cls(frozenid, pyfile, frozenfile, deepfreezefile)
+ return cls(frozenid, pyfile, frozenfile)
@property
def frozenid(self):
@@ -508,13 +505,6 @@ def regen_frozen(modules):
lines.append(f'/* {mod.section} */')
lastsection = mod.section
- # Also add a extern declaration for the corresponding
- # deepfreeze-generated function.
- orig_name = mod.source.id
- code_name = orig_name.replace(".", "_")
- get_code_name = "_Py_get_%s_toplevel" % code_name
- externlines.append("extern PyObject *%s(void);" % get_code_name)
-
pkg = 'true' if mod.ispkg else 'false'
size = f"(int)sizeof({mod.symbol})"
line = f'{{"{mod.name}", {mod.symbol}, {size}, {pkg}}},'
@@ -551,13 +541,6 @@ def regen_frozen(modules):
)
lines = replace_block(
lines,
- "/* Start extern declarations */",
- "/* End extern declarations */",
- externlines,
- FROZEN_FILE,
- )
- lines = replace_block(
- lines,
"static const struct _frozen bootstrap_modules[] =",
"/* bootstrap sentinel */",
bootstraplines,
@@ -591,8 +574,6 @@ def regen_makefile(modules):
pyfiles = []
frozenfiles = []
rules = ['']
- deepfreezerules = ["$(DEEPFREEZE_C): $(DEEPFREEZE_DEPS)",
- "\t$(PYTHON_FOR_FREEZE) $(srcdir)/Tools/build/deepfreeze.py \\"]
for src in _iter_sources(modules):
frozen_header = relpath_for_posix_display(src.frozenfile, ROOT_DIR)
frozenfiles.append(f'\t\t{frozen_header} \\')
@@ -614,8 +595,6 @@ def regen_makefile(modules):
f'\t{freeze}',
'',
])
- deepfreezerules.append(f"\t{frozen_header}:{src.frozenid} \\")
- deepfreezerules.append('\t-o Python/deepfreeze/deepfreeze.c')
pyfiles[-1] = pyfiles[-1].rstrip(" \\")
frozenfiles[-1] = frozenfiles[-1].rstrip(" \\")
@@ -643,13 +622,6 @@ def regen_makefile(modules):
rules,
MAKEFILE,
)
- lines = replace_block(
- lines,
- "# BEGIN: deepfreeze modules",
- "# END: deepfreeze modules",
- deepfreezerules,
- MAKEFILE,
- )
outfile.writelines(lines)
@@ -657,9 +629,6 @@ def regen_pcbuild(modules):
projlines = []
filterlines = []
corelines = []
- deepfreezemappingsfile = f'$(IntDir)\\{DEEPFREEZE_MAPPING_FNAME}'
- deepfreezerules = [f' <Exec Command=\'$(PythonForBuild) "$(PySourcePath)Tools\\build\\deepfreeze.py" -f "{deepfreezemappingsfile}" -o "$(GeneratedFrozenModulesDir)deepfreeze.c"\' />']
- deepfreezemappings = []
for src in _iter_sources(modules):
pyfile = relpath_for_windows_display(src.pyfile, ROOT_DIR)
header = relpath_for_windows_display(src.frozenfile, ROOT_DIR)
@@ -673,9 +642,6 @@ def regen_pcbuild(modules):
filterlines.append(f' <None Include="..\\{pyfile}">')
filterlines.append(' <Filter>Python Files</Filter>')
filterlines.append(' </None>')
- deepfreezemappings.append(f' <FrozenModule Include="$(GeneratedFrozenModulesDir){header}" FrozenId="{src.frozenid}" />\n')
-
- corelines.append(f' <ClCompile Include="$(GeneratedFrozenModulesDir)deepfreeze.c" />')
print(f'# Updating {os.path.relpath(PCBUILD_PROJECT)}')
with updating_file_with_tmpfile(PCBUILD_PROJECT) as (infile, outfile):
@@ -688,36 +654,6 @@ def regen_pcbuild(modules):
PCBUILD_PROJECT,
)
outfile.writelines(lines)
- with updating_file_with_tmpfile(PCBUILD_PROJECT) as (infile, outfile):
- lines = infile.readlines()
- lines = replace_block(
- lines,
- '<!-- BEGIN freeze mappings -->',
- '<!-- END freeze mappings -->',
- deepfreezemappings,
- PCBUILD_PROJECT,
- )
- outfile.writelines(lines)
- with updating_file_with_tmpfile(PCBUILD_PROJECT) as (infile, outfile):
- lines = infile.readlines()
- lines = replace_block(
- lines,
- '<!-- BEGIN freeze mapping file -->',
- '<!-- END freeze mapping file -->',
- [deepfreezemappingsfile, ],
- PCBUILD_PROJECT,
- )
- outfile.writelines(lines)
- with updating_file_with_tmpfile(PCBUILD_PROJECT) as (infile, outfile):
- lines = infile.readlines()
- lines = replace_block(
- lines,
- '<!-- BEGIN deepfreeze rule -->',
- '<!-- END deepfreeze rule -->',
- deepfreezerules,
- PCBUILD_PROJECT,
- )
- outfile.writelines(lines)
print(f'# Updating {os.path.relpath(PCBUILD_FILTERS)}')
with updating_file_with_tmpfile(PCBUILD_FILTERS) as (infile, outfile):
lines = infile.readlines()
@@ -729,17 +665,6 @@ def regen_pcbuild(modules):
PCBUILD_FILTERS,
)
outfile.writelines(lines)
- print(f'# Updating {os.path.relpath(PCBUILD_PYTHONCORE)}')
- with updating_file_with_tmpfile(PCBUILD_PYTHONCORE) as (infile, outfile):
- lines = infile.readlines()
- lines = replace_block(
- lines,
- '<!-- BEGIN deepfreeze -->',
- '<!-- END deepfreeze -->',
- corelines,
- PCBUILD_FILTERS,
- )
- outfile.writelines(lines)
#######################################