On Mon, Sep 27, 2021 at 3:31 PM Victor Stinner <vstinner@python.org> wrote:
Which stdlib modules are currently frozen? If I really want to hack site.py or os.py for whatever reason, I just have to use "python3 -X frozen_modules=off"?
The single-source-of-truth is Tools/scripts/freeze_modules.py. After running "make regen-frozen" you'll find a cleaner list in Python/frozen_modules/MANIFEST. You can also look at the generated code in Makefile.pre.in or Python/frozen.c. Finally, you can run "./python -X frozen_modules=on -c 'import _imp; print(_imp._frozen_module_names())'"
1. always default to "on" (the annoyance for contributors isn't big enough?)
What is the annoyance?
The annoyance of changes to the .py files not getting used (at least not until after running "make all"
What is different between frozen and not frozen?
They have a different loader and repr. Also, frozen modules do not have __file__ set (and __path__ is always []). -eric