mirror of https://github.com/python/cpython
bpo-43372: Use _freeze_importlib for regen-frozen. (GH-24759)
This approach ensures the code matches the interpreter version.
Previously, PYTHON_FOR_REGEN was used to generate the code, which might
be wrong. The marshal format for code objects has changed with
bpo-42246, commit 877df851
. Update the code and the expected code sizes
in ctypes test_frozentable.
This commit is contained in:
parent
5eb7796b7f
commit
87ec26b812
|
@ -80,9 +80,9 @@ class PythonValuesTestCase(unittest.TestCase):
|
||||||
continue
|
continue
|
||||||
items.append((entry.name.decode("ascii"), entry.size))
|
items.append((entry.name.decode("ascii"), entry.size))
|
||||||
|
|
||||||
expected = [("__hello__", 125),
|
expected = [("__hello__", 139),
|
||||||
("__phello__", -125),
|
("__phello__", -139),
|
||||||
("__phello__.spam", 125),
|
("__phello__.spam", 139),
|
||||||
]
|
]
|
||||||
self.assertEqual(items, expected, "PyImport_FrozenModules example "
|
self.assertEqual(items, expected, "PyImport_FrozenModules example "
|
||||||
"in Doc/library/ctypes.rst may be out of date")
|
"in Doc/library/ctypes.rst may be out of date")
|
||||||
|
|
|
@ -871,9 +871,13 @@ regen-opcode:
|
||||||
$(UPDATE_FILE) $(srcdir)/Include/opcode.h $(srcdir)/Include/opcode.h.new
|
$(UPDATE_FILE) $(srcdir)/Include/opcode.h $(srcdir)/Include/opcode.h.new
|
||||||
|
|
||||||
.PHONY: regen-frozen
|
.PHONY: regen-frozen
|
||||||
regen-frozen:
|
regen-frozen: Programs/_freeze_importlib
|
||||||
# Regenerate code for frozen module "__hello__".
|
# Regenerate code for frozen module "__hello__".
|
||||||
$(PYTHON_FOR_REGEN) $(srcdir)/Tools/freeze/regen_frozen.py $(srcdir)/Python/frozen_hello.h
|
./Programs/_freeze_importlib hello \
|
||||||
|
$(srcdir)/Tools/freeze/flag.py \
|
||||||
|
$(srcdir)/Python/frozen_hello.h.new
|
||||||
|
$(UPDATE_FILE) $(srcdir)/Python/frozen_hello.h \
|
||||||
|
$(srcdir)/Python/frozen_hello.h.new
|
||||||
|
|
||||||
.PHONY: regen-token
|
.PHONY: regen-token
|
||||||
regen-token:
|
regen-token:
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
Use ``_freeze_importlib`` to generate code for the ``__hello__`` module.
|
||||||
|
This approach ensures the code matches the interpreter version. Previously,
|
||||||
|
PYTHON_FOR_REGEN was used to generate the code, which might be wrong. The
|
||||||
|
marshal format for code objects has changed with bpo-42246, commit 877df851.
|
||||||
|
Update the code and the expected code sizes in ctypes test_frozentable.
|
|
@ -11,12 +11,11 @@
|
||||||
some famous words... */
|
some famous words... */
|
||||||
|
|
||||||
/* Run "make regen-frozen" to regen the file below (e.g. after a bytecode
|
/* Run "make regen-frozen" to regen the file below (e.g. after a bytecode
|
||||||
* format change). The file is created by Tools/frozen/regen_frozen.py. The
|
* format change). The include file defines _Py_M__hello as an array of bytes.
|
||||||
* include file defines M___hello__ as an array of bytes.
|
|
||||||
*/
|
*/
|
||||||
#include "frozen_hello.h"
|
#include "frozen_hello.h"
|
||||||
|
|
||||||
#define SIZE (int)sizeof(M___hello__)
|
#define SIZE (int)sizeof(_Py_M__hello)
|
||||||
|
|
||||||
static const struct _frozen _PyImport_FrozenModules[] = {
|
static const struct _frozen _PyImport_FrozenModules[] = {
|
||||||
/* importlib */
|
/* importlib */
|
||||||
|
@ -27,10 +26,10 @@ static const struct _frozen _PyImport_FrozenModules[] = {
|
||||||
{"zipimport", _Py_M__zipimport,
|
{"zipimport", _Py_M__zipimport,
|
||||||
(int)sizeof(_Py_M__zipimport)},
|
(int)sizeof(_Py_M__zipimport)},
|
||||||
/* Test module */
|
/* Test module */
|
||||||
{"__hello__", M___hello__, SIZE},
|
{"__hello__", _Py_M__hello, SIZE},
|
||||||
/* Test package (negative size indicates package-ness) */
|
/* Test package (negative size indicates package-ness) */
|
||||||
{"__phello__", M___hello__, -SIZE},
|
{"__phello__", _Py_M__hello, -SIZE},
|
||||||
{"__phello__.spam", M___hello__, SIZE},
|
{"__phello__.spam", _Py_M__hello, SIZE},
|
||||||
{0, 0, 0} /* sentinel */
|
{0, 0, 0} /* sentinel */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,12 @@
|
||||||
/* Generated with Tools/freeze/regen_frozen.py */
|
/* Auto-generated by Programs/_freeze_importlib.c */
|
||||||
static unsigned char M___hello__[] = {
|
const unsigned char _Py_M__hello[] = {
|
||||||
227,0,0,0,0,0,0,0,0,0,0,0,0,
|
99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,2,0,0,0,64,0,0,0,115,
|
0,2,0,0,0,64,0,0,0,115,16,0,0,0,100,0,
|
||||||
16,0,0,0,100,0,90,0,101,1,100,1,131,
|
90,0,101,1,100,1,131,1,1,0,100,2,83,0,41,3,
|
||||||
1,1,0,100,2,83,0,41,3,84,122,12,72,
|
84,122,12,72,101,108,108,111,32,119,111,114,108,100,33,78,
|
||||||
101,108,108,111,32,119,111,114,108,100,33,78,41,
|
41,2,90,11,105,110,105,116,105,97,108,105,122,101,100,218,
|
||||||
2,90,11,105,110,105,116,105,97,108,105,122,101,
|
5,112,114,105,110,116,169,0,114,1,0,0,0,114,1,0,
|
||||||
100,218,5,112,114,105,110,116,169,0,114,2,0,
|
0,0,122,14,60,102,114,111,122,101,110,32,104,101,108,108,
|
||||||
0,0,114,2,0,0,0,218,4,110,111,110,101,
|
111,62,218,8,60,109,111,100,117,108,101,62,1,0,0,0,
|
||||||
218,8,60,109,111,100,117,108,101,62,1,0,0,
|
115,6,0,0,0,4,0,12,1,255,128,
|
||||||
0,115,2,0,0,0,4,1,
|
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue