Skip to content

Commit 0012686

Browse files
authored
GH-145278: freeze encodings (partially) and linecache (#148347)
1 parent 95cbd4a commit 0012686

File tree

6 files changed

+88
-4
lines changed

6 files changed

+88
-4
lines changed

Makefile.pre.in

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1731,6 +1731,10 @@ FROZEN_FILES_IN = \
17311731
Lib/zipimport.py \
17321732
Lib/abc.py \
17331733
Lib/codecs.py \
1734+
Lib/encodings/__init__.py \
1735+
Lib/encodings/aliases.py \
1736+
Lib/encodings/utf_8.py \
1737+
Lib/encodings/_win_cp_codecs.py \
17341738
Lib/io.py \
17351739
Lib/_collections_abc.py \
17361740
Lib/_sitebuiltins.py \
@@ -1740,6 +1744,7 @@ FROZEN_FILES_IN = \
17401744
Lib/os.py \
17411745
Lib/site.py \
17421746
Lib/stat.py \
1747+
Lib/linecache.py \
17431748
Lib/importlib/util.py \
17441749
Lib/importlib/machinery.py \
17451750
Lib/runpy.py \
@@ -1756,6 +1761,10 @@ FROZEN_FILES_OUT = \
17561761
Python/frozen_modules/zipimport.h \
17571762
Python/frozen_modules/abc.h \
17581763
Python/frozen_modules/codecs.h \
1764+
Python/frozen_modules/encodings.h \
1765+
Python/frozen_modules/encodings.aliases.h \
1766+
Python/frozen_modules/encodings.utf_8.h \
1767+
Python/frozen_modules/encodings._win_cp_codecs.h \
17591768
Python/frozen_modules/io.h \
17601769
Python/frozen_modules/_collections_abc.h \
17611770
Python/frozen_modules/_sitebuiltins.h \
@@ -1765,6 +1774,7 @@ FROZEN_FILES_OUT = \
17651774
Python/frozen_modules/os.h \
17661775
Python/frozen_modules/site.h \
17671776
Python/frozen_modules/stat.h \
1777+
Python/frozen_modules/linecache.h \
17681778
Python/frozen_modules/importlib.util.h \
17691779
Python/frozen_modules/importlib.machinery.h \
17701780
Python/frozen_modules/runpy.h \
@@ -1804,6 +1814,18 @@ Python/frozen_modules/abc.h: Lib/abc.py $(FREEZE_MODULE_DEPS)
18041814
Python/frozen_modules/codecs.h: Lib/codecs.py $(FREEZE_MODULE_DEPS)
18051815
$(FREEZE_MODULE) codecs $(srcdir)/Lib/codecs.py Python/frozen_modules/codecs.h
18061816

1817+
Python/frozen_modules/encodings.h: Lib/encodings/__init__.py $(FREEZE_MODULE_DEPS)
1818+
$(FREEZE_MODULE) encodings $(srcdir)/Lib/encodings/__init__.py Python/frozen_modules/encodings.h
1819+
1820+
Python/frozen_modules/encodings.aliases.h: Lib/encodings/aliases.py $(FREEZE_MODULE_DEPS)
1821+
$(FREEZE_MODULE) encodings.aliases $(srcdir)/Lib/encodings/aliases.py Python/frozen_modules/encodings.aliases.h
1822+
1823+
Python/frozen_modules/encodings.utf_8.h: Lib/encodings/utf_8.py $(FREEZE_MODULE_DEPS)
1824+
$(FREEZE_MODULE) encodings.utf_8 $(srcdir)/Lib/encodings/utf_8.py Python/frozen_modules/encodings.utf_8.h
1825+
1826+
Python/frozen_modules/encodings._win_cp_codecs.h: Lib/encodings/_win_cp_codecs.py $(FREEZE_MODULE_DEPS)
1827+
$(FREEZE_MODULE) encodings._win_cp_codecs $(srcdir)/Lib/encodings/_win_cp_codecs.py Python/frozen_modules/encodings._win_cp_codecs.h
1828+
18071829
Python/frozen_modules/io.h: Lib/io.py $(FREEZE_MODULE_DEPS)
18081830
$(FREEZE_MODULE) io $(srcdir)/Lib/io.py Python/frozen_modules/io.h
18091831

@@ -1831,6 +1853,9 @@ Python/frozen_modules/site.h: Lib/site.py $(FREEZE_MODULE_DEPS)
18311853
Python/frozen_modules/stat.h: Lib/stat.py $(FREEZE_MODULE_DEPS)
18321854
$(FREEZE_MODULE) stat $(srcdir)/Lib/stat.py Python/frozen_modules/stat.h
18331855

1856+
Python/frozen_modules/linecache.h: Lib/linecache.py $(FREEZE_MODULE_DEPS)
1857+
$(FREEZE_MODULE) linecache $(srcdir)/Lib/linecache.py Python/frozen_modules/linecache.h
1858+
18341859
Python/frozen_modules/importlib.util.h: Lib/importlib/util.py $(FREEZE_MODULE_DEPS)
18351860
$(FREEZE_MODULE) importlib.util $(srcdir)/Lib/importlib/util.py Python/frozen_modules/importlib.util.h
18361861

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
The :mod:`encodings` is now partially frozen, including
2+
the ``aliases`` and ``utf_8`` submodules.
3+
4+
The :mod:`linecache` is now frozen.

PCbuild/_freeze_module.vcxproj

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,26 @@
310310
<IntFile>$(IntDir)codecs.g.h</IntFile>
311311
<OutFile>$(GeneratedFrozenModulesDir)Python\frozen_modules\codecs.h</OutFile>
312312
</None>
313+
<None Include="..\Lib\encodings\__init__.py">
314+
<ModName>encodings</ModName>
315+
<IntFile>$(IntDir)encodings.g.h</IntFile>
316+
<OutFile>$(GeneratedFrozenModulesDir)Python\frozen_modules\encodings.h</OutFile>
317+
</None>
318+
<None Include="..\Lib\encodings\aliases.py">
319+
<ModName>encodings.aliases</ModName>
320+
<IntFile>$(IntDir)encodings.aliases.g.h</IntFile>
321+
<OutFile>$(GeneratedFrozenModulesDir)Python\frozen_modules\encodings.aliases.h</OutFile>
322+
</None>
323+
<None Include="..\Lib\encodings\utf_8.py">
324+
<ModName>encodings.utf_8</ModName>
325+
<IntFile>$(IntDir)encodings.utf_8.g.h</IntFile>
326+
<OutFile>$(GeneratedFrozenModulesDir)Python\frozen_modules\encodings.utf_8.h</OutFile>
327+
</None>
328+
<None Include="..\Lib\encodings\_win_cp_codecs.py">
329+
<ModName>encodings._win_cp_codecs</ModName>
330+
<IntFile>$(IntDir)encodings._win_cp_codecs.g.h</IntFile>
331+
<OutFile>$(GeneratedFrozenModulesDir)Python\frozen_modules\encodings._win_cp_codecs.h</OutFile>
332+
</None>
313333
<None Include="..\Lib\io.py">
314334
<ModName>io</ModName>
315335
<IntFile>$(IntDir)io.g.h</IntFile>
@@ -355,6 +375,11 @@
355375
<IntFile>$(IntDir)stat.g.h</IntFile>
356376
<OutFile>$(GeneratedFrozenModulesDir)Python\frozen_modules\stat.h</OutFile>
357377
</None>
378+
<None Include="..\Lib\linecache.py">
379+
<ModName>linecache</ModName>
380+
<IntFile>$(IntDir)linecache.g.h</IntFile>
381+
<OutFile>$(GeneratedFrozenModulesDir)Python\frozen_modules\linecache.h</OutFile>
382+
</None>
358383
<None Include="..\Lib\importlib\util.py">
359384
<ModName>importlib.util</ModName>
360385
<IntFile>$(IntDir)importlib.util.g.h</IntFile>

PCbuild/_freeze_module.vcxproj.filters

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -537,6 +537,18 @@
537537
<None Include="..\Lib\codecs.py">
538538
<Filter>Python Files</Filter>
539539
</None>
540+
<None Include="..\Lib\encodings\__init__.py">
541+
<Filter>Python Files</Filter>
542+
</None>
543+
<None Include="..\Lib\encodings\aliases.py">
544+
<Filter>Python Files</Filter>
545+
</None>
546+
<None Include="..\Lib\encodings\utf_8.py">
547+
<Filter>Python Files</Filter>
548+
</None>
549+
<None Include="..\Lib\encodings\_win_cp_codecs.py">
550+
<Filter>Python Files</Filter>
551+
</None>
540552
<None Include="..\Lib\io.py">
541553
<Filter>Python Files</Filter>
542554
</None>
@@ -564,6 +576,9 @@
564576
<None Include="..\Lib\stat.py">
565577
<Filter>Python Files</Filter>
566578
</None>
579+
<None Include="..\Lib\linecache.py">
580+
<Filter>Python Files</Filter>
581+
</None>
567582
<None Include="..\Lib\importlib\util.py">
568583
<Filter>Python Files</Filter>
569584
</None>

Python/frozen.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@
4646
#include "frozen_modules/zipimport.h"
4747
#include "frozen_modules/abc.h"
4848
#include "frozen_modules/codecs.h"
49+
#include "frozen_modules/encodings.h"
50+
#include "frozen_modules/encodings.aliases.h"
51+
#include "frozen_modules/encodings.utf_8.h"
52+
#include "frozen_modules/encodings._win_cp_codecs.h"
4953
#include "frozen_modules/io.h"
5054
#include "frozen_modules/_collections_abc.h"
5155
#include "frozen_modules/_sitebuiltins.h"
@@ -55,6 +59,7 @@
5559
#include "frozen_modules/os.h"
5660
#include "frozen_modules/site.h"
5761
#include "frozen_modules/stat.h"
62+
#include "frozen_modules/linecache.h"
5863
#include "frozen_modules/importlib.util.h"
5964
#include "frozen_modules/importlib.machinery.h"
6065
#include "frozen_modules/runpy.h"
@@ -76,6 +81,10 @@ static const struct _frozen stdlib_modules[] = {
7681
/* stdlib - startup, without site (python -S) */
7782
{"abc", _Py_M__abc, (int)sizeof(_Py_M__abc), false},
7883
{"codecs", _Py_M__codecs, (int)sizeof(_Py_M__codecs), false},
84+
{"encodings", _Py_M__encodings, (int)sizeof(_Py_M__encodings), true},
85+
{"encodings.aliases", _Py_M__encodings_aliases, (int)sizeof(_Py_M__encodings_aliases), false},
86+
{"encodings.utf_8", _Py_M__encodings_utf_8, (int)sizeof(_Py_M__encodings_utf_8), false},
87+
{"encodings._win_cp_codecs", _Py_M__encodings__win_cp_codecs, (int)sizeof(_Py_M__encodings__win_cp_codecs), false},
7988
{"io", _Py_M__io, (int)sizeof(_Py_M__io), false},
8089

8190
/* stdlib - startup, with site */
@@ -88,6 +97,9 @@ static const struct _frozen stdlib_modules[] = {
8897
{"site", _Py_M__site, (int)sizeof(_Py_M__site), false},
8998
{"stat", _Py_M__stat, (int)sizeof(_Py_M__stat), false},
9099

100+
/* pythonrun - interactive */
101+
{"linecache", _Py_M__linecache, (int)sizeof(_Py_M__linecache), false},
102+
91103
/* runpy - run module with -m */
92104
{"importlib.util", _Py_M__importlib_util, (int)sizeof(_Py_M__importlib_util), false},
93105
{"importlib.machinery", _Py_M__importlib_machinery, (int)sizeof(_Py_M__importlib_machinery), false},

Tools/build/freeze_modules.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,10 @@
5050
('stdlib - startup, without site (python -S)', [
5151
'abc',
5252
'codecs',
53-
# For now we do not freeze the encodings, due # to the noise all
54-
# those extra modules add to the text printed during the build.
55-
# (See https://github.com/python/cpython/pull/28398#pullrequestreview-756856469.)
56-
#'<encodings.*>',
53+
'<encodings>',
54+
'encodings.aliases',
55+
'encodings.utf_8',
56+
'encodings._win_cp_codecs',
5757
'io',
5858
]),
5959
('stdlib - startup, with site', [
@@ -66,6 +66,9 @@
6666
'site',
6767
'stat',
6868
]),
69+
('pythonrun - interactive', [
70+
'linecache',
71+
]),
6972
('runpy - run module with -m', [
7073
"importlib.util",
7174
"importlib.machinery",

0 commit comments

Comments
 (0)