Skip to content

Commit 90d0e54

Browse files
committed
GH-145278: freeze encodings (partially) and linecache
Signed-off-by: Filipe Laíns <lains@riseup.net>
1 parent 4401f23 commit 90d0e54

File tree

6 files changed

+72
-4
lines changed

6 files changed

+72
-4
lines changed

Makefile.pre.in

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1729,6 +1729,9 @@ FROZEN_FILES_IN = \
17291729
Lib/zipimport.py \
17301730
Lib/abc.py \
17311731
Lib/codecs.py \
1732+
Lib/encodings/__init__.py \
1733+
Lib/encodings/aliases.py \
1734+
Lib/encodings/utf_8.py \
17321735
Lib/io.py \
17331736
Lib/_collections_abc.py \
17341737
Lib/_sitebuiltins.py \
@@ -1738,6 +1741,7 @@ FROZEN_FILES_IN = \
17381741
Lib/os.py \
17391742
Lib/site.py \
17401743
Lib/stat.py \
1744+
Lib/linecache.py \
17411745
Lib/importlib/util.py \
17421746
Lib/importlib/machinery.py \
17431747
Lib/runpy.py \
@@ -1754,6 +1758,9 @@ FROZEN_FILES_OUT = \
17541758
Python/frozen_modules/zipimport.h \
17551759
Python/frozen_modules/abc.h \
17561760
Python/frozen_modules/codecs.h \
1761+
Python/frozen_modules/encodings.h \
1762+
Python/frozen_modules/encodings.aliases.h \
1763+
Python/frozen_modules/encodings.utf_8.h \
17571764
Python/frozen_modules/io.h \
17581765
Python/frozen_modules/_collections_abc.h \
17591766
Python/frozen_modules/_sitebuiltins.h \
@@ -1763,6 +1770,7 @@ FROZEN_FILES_OUT = \
17631770
Python/frozen_modules/os.h \
17641771
Python/frozen_modules/site.h \
17651772
Python/frozen_modules/stat.h \
1773+
Python/frozen_modules/linecache.h \
17661774
Python/frozen_modules/importlib.util.h \
17671775
Python/frozen_modules/importlib.machinery.h \
17681776
Python/frozen_modules/runpy.h \
@@ -1802,6 +1810,15 @@ Python/frozen_modules/abc.h: Lib/abc.py $(FREEZE_MODULE_DEPS)
18021810
Python/frozen_modules/codecs.h: Lib/codecs.py $(FREEZE_MODULE_DEPS)
18031811
$(FREEZE_MODULE) codecs $(srcdir)/Lib/codecs.py Python/frozen_modules/codecs.h
18041812

1813+
Python/frozen_modules/encodings.h: Lib/encodings/__init__.py $(FREEZE_MODULE_DEPS)
1814+
$(FREEZE_MODULE) encodings $(srcdir)/Lib/encodings/__init__.py Python/frozen_modules/encodings.h
1815+
1816+
Python/frozen_modules/encodings.aliases.h: Lib/encodings/aliases.py $(FREEZE_MODULE_DEPS)
1817+
$(FREEZE_MODULE) encodings.aliases $(srcdir)/Lib/encodings/aliases.py Python/frozen_modules/encodings.aliases.h
1818+
1819+
Python/frozen_modules/encodings.utf_8.h: Lib/encodings/utf_8.py $(FREEZE_MODULE_DEPS)
1820+
$(FREEZE_MODULE) encodings.utf_8 $(srcdir)/Lib/encodings/utf_8.py Python/frozen_modules/encodings.utf_8.h
1821+
18051822
Python/frozen_modules/io.h: Lib/io.py $(FREEZE_MODULE_DEPS)
18061823
$(FREEZE_MODULE) io $(srcdir)/Lib/io.py Python/frozen_modules/io.h
18071824

@@ -1829,6 +1846,9 @@ Python/frozen_modules/site.h: Lib/site.py $(FREEZE_MODULE_DEPS)
18291846
Python/frozen_modules/stat.h: Lib/stat.py $(FREEZE_MODULE_DEPS)
18301847
$(FREEZE_MODULE) stat $(srcdir)/Lib/stat.py Python/frozen_modules/stat.h
18311848

1849+
Python/frozen_modules/linecache.h: Lib/linecache.py $(FREEZE_MODULE_DEPS)
1850+
$(FREEZE_MODULE) linecache $(srcdir)/Lib/linecache.py Python/frozen_modules/linecache.h
1851+
18321852
Python/frozen_modules/importlib.util.h: Lib/importlib/util.py $(FREEZE_MODULE_DEPS)
18331853
$(FREEZE_MODULE) importlib.util $(srcdir)/Lib/importlib/util.py Python/frozen_modules/importlib.util.h
18341854

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+
:mod:`encodings.aliases` and :mod:`encodings.utf_8`.
3+
4+
The :mod:`linecache` is now frozen.

PCbuild/_freeze_module.vcxproj

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,21 @@
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>
313328
<None Include="..\Lib\io.py">
314329
<ModName>io</ModName>
315330
<IntFile>$(IntDir)io.g.h</IntFile>
@@ -355,6 +370,11 @@
355370
<IntFile>$(IntDir)stat.g.h</IntFile>
356371
<OutFile>$(GeneratedFrozenModulesDir)Python\frozen_modules\stat.h</OutFile>
357372
</None>
373+
<None Include="..\Lib\linecache.py">
374+
<ModName>linecache</ModName>
375+
<IntFile>$(IntDir)linecache.g.h</IntFile>
376+
<OutFile>$(GeneratedFrozenModulesDir)Python\frozen_modules\linecache.h</OutFile>
377+
</None>
358378
<None Include="..\Lib\importlib\util.py">
359379
<ModName>importlib.util</ModName>
360380
<IntFile>$(IntDir)importlib.util.g.h</IntFile>

PCbuild/_freeze_module.vcxproj.filters

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -537,6 +537,15 @@
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>
540549
<None Include="..\Lib\io.py">
541550
<Filter>Python Files</Filter>
542551
</None>
@@ -564,6 +573,9 @@
564573
<None Include="..\Lib\stat.py">
565574
<Filter>Python Files</Filter>
566575
</None>
576+
<None Include="..\Lib\linecache.py">
577+
<Filter>Python Files</Filter>
578+
</None>
567579
<None Include="..\Lib\importlib\util.py">
568580
<Filter>Python Files</Filter>
569581
</None>

Python/frozen.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@
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"
4952
#include "frozen_modules/io.h"
5053
#include "frozen_modules/_collections_abc.h"
5154
#include "frozen_modules/_sitebuiltins.h"
@@ -55,6 +58,7 @@
5558
#include "frozen_modules/os.h"
5659
#include "frozen_modules/site.h"
5760
#include "frozen_modules/stat.h"
61+
#include "frozen_modules/linecache.h"
5862
#include "frozen_modules/importlib.util.h"
5963
#include "frozen_modules/importlib.machinery.h"
6064
#include "frozen_modules/runpy.h"
@@ -76,6 +80,9 @@ static const struct _frozen stdlib_modules[] = {
7680
/* stdlib - startup, without site (python -S) */
7781
{"abc", _Py_M__abc, (int)sizeof(_Py_M__abc), false},
7882
{"codecs", _Py_M__codecs, (int)sizeof(_Py_M__codecs), false},
83+
{"encodings", _Py_M__encodings, (int)sizeof(_Py_M__encodings), true},
84+
{"encodings.aliases", _Py_M__encodings_aliases, (int)sizeof(_Py_M__encodings_aliases), false},
85+
{"encodings.utf_8", _Py_M__encodings_utf_8, (int)sizeof(_Py_M__encodings_utf_8), false},
7986
{"io", _Py_M__io, (int)sizeof(_Py_M__io), false},
8087

8188
/* stdlib - startup, with site */
@@ -88,6 +95,9 @@ static const struct _frozen stdlib_modules[] = {
8895
{"site", _Py_M__site, (int)sizeof(_Py_M__site), false},
8996
{"stat", _Py_M__stat, (int)sizeof(_Py_M__stat), false},
9097

98+
/* pythonrun - interactive */
99+
{"linecache", _Py_M__linecache, (int)sizeof(_Py_M__linecache), false},
100+
91101
/* runpy - run module with -m */
92102
{"importlib.util", _Py_M__importlib_util, (int)sizeof(_Py_M__importlib_util), false},
93103
{"importlib.machinery", _Py_M__importlib_machinery, (int)sizeof(_Py_M__importlib_machinery), false},

Tools/build/freeze_modules.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,9 @@
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',
5756
'io',
5857
]),
5958
('stdlib - startup, with site', [
@@ -66,6 +65,9 @@
6665
'site',
6766
'stat',
6867
]),
68+
('pythonrun - interactive', [
69+
'linecache',
70+
]),
6971
('runpy - run module with -m', [
7072
"importlib.util",
7173
"importlib.machinery",

0 commit comments

Comments
 (0)