]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Add advice how to freeze fewer modules (#101298)
authorGuido van Rossum <guido@python.org>
Wed, 25 Jan 2023 17:28:14 +0000 (09:28 -0800)
committerGitHub <noreply@github.com>
Wed, 25 Jan 2023 17:28:14 +0000 (09:28 -0800)
(And fix a bug that only occurs when you follow the advice.)

Tools/build/freeze_modules.py

index 810224b28f2faad52e663831681876020a0cccbf..ee4dd2f8682ba41e1650758d45f4a8d7f1d005c4 100644 (file)
@@ -32,6 +32,9 @@ PCBUILD_PYTHONCORE = os.path.join(ROOT_DIR, 'PCbuild', 'pythoncore.vcxproj')
 OS_PATH = 'ntpath' if os.name == 'nt' else 'posixpath'
 
 # These are modules that get frozen.
+# If you're debugging new bytecode instructions,
+# you can delete all sections except 'import system'.
+# This also speeds up building somewhat.
 TESTS_SECTION = 'Test module'
 FROZEN = [
     # See parse_frozen_spec() for the format.
@@ -45,6 +48,7 @@ FROZEN = [
         # on a builtin zip file instead of a filesystem.
         'zipimport',
         ]),
+    # (You can delete entries from here down to the end of the list.)
     ('stdlib - startup, without site (python -S)', [
         'abc',
         'codecs',
@@ -80,6 +84,7 @@ FROZEN = [
         '<__phello__.**.*>',
         f'frozen_only : __hello_only__ = {FROZEN_ONLY}',
         ]),
+    # (End of stuff you could delete.)
 ]
 BOOTSTRAP = {
     'importlib._bootstrap',
@@ -520,7 +525,7 @@ def regen_frozen(modules, frozen_modules: bool):
 
     for lines in (bootstraplines, stdliblines, testlines):
         # TODO: Is this necessary any more?
-        if not lines[0]:
+        if lines and not lines[0]:
             del lines[0]
         for i, line in enumerate(lines):
             if line: