diff options
| author | Jim Mussared <jim.mussared@gmail.com> | 2021-12-11 22:40:21 +1100 |
|---|---|---|
| committer | Damien George <damien@micropython.org> | 2021-12-18 00:01:59 +1100 |
| commit | e0bf4611c3a8b23b3c52e6a7804aac341ac3a87d (patch) | |
| tree | be1d16834d97297a87768a9e41b0a682b1b33f47 /tools/mpy-tool.py | |
| parent | f853e3e106b151ec2819df729fd68815dce693fb (diff) | |
py: Only search frozen modules when '.frozen' is found in sys.path.
This changes makemanifest.py & mpy-tool.py to merge string and mpy names
into the same list (now mp_frozen_names).
The various paths for loading a frozen module (mp_find_frozen_module) and
checking existence of a frozen module (mp_frozen_stat) use a common
function that searches this list.
In addition, the frozen lookup will now only take place if the path starts
with ".frozen", which needs to be added to sys.path.
This fixes issues #1804, #2322, #3509, #6419.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
Diffstat (limited to 'tools/mpy-tool.py')
| -rwxr-xr-x | tools/mpy-tool.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/tools/mpy-tool.py b/tools/mpy-tool.py index 6868ed5d4..aa0272111 100755 --- a/tools/mpy-tool.py +++ b/tools/mpy-tool.py @@ -886,7 +886,11 @@ def freeze_mpy(base_qstrs, raw_codes): rc.freeze(rc.source_file.str.replace("/", "_")[:-3] + "_") print() - print("const char mp_frozen_mpy_names[] = {") + print("const char mp_frozen_names[] = {") + print("#ifdef MP_FROZEN_STR_NAMES") + # makemanifest.py might also include some frozen string content. + print("MP_FROZEN_STR_NAMES") + print("#endif") for rc in raw_codes: module_name = rc.source_file.str print('"%s\\0"' % module_name) |
