Issue 32043: Add a new -X dev option: "developer mode"

Created on 2017-11-16 02:43 by vstinner, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Messages (7) msg306330 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2017-11-16 02:43
I propose to add a new "developer mode": a new "-X dev" command line option.

In short:
   python3 -X dev script.py
behaves as:
   PYTHONMALLOC=debug python3 -W default -X faulthandler script.py

For the rationale, please see:
https://mail.python.org/pipermail/python-dev/2017-November/150514.html
msg306331 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2017-11-16 02:48
I rewrote Py_Main() in bpo-32030 to make it very easy to implement this new feature.

I wrote PR 4413 to implement -X dev.
msg306351 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2017-11-16 11:20
New changeset ccb0442a338066bf40fe417455e5a374e5238afb by Victor Stinner in branch 'master':
bpo-32043: New "developer mode": "-X dev" option (#4413)
https://github.com/python/cpython/commit/ccb0442a338066bf40fe417455e5a374e5238afb
msg306357 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2017-11-16 13:04
Antoine Pitrou asked me to document the performance and memory overhead of -X dev:

https://mail.python.org/pipermail/python-dev/2017-November/150578.html

For example, I measured an increase of +50% on the peak memory usage (measured by tracemalloc) when running test_os.

Antoine proposed:

"""Currently, developer mode adds negligible CPU time overhead, but can
increase memory consumption significantly if many small objects are
allocated.  This is subject to change in the future."""

https://mail.python.org/pipermail/python-dev/2017-November/150579.html
msg306619 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2017-11-21 02:59
I created bpo-32101: Add PYTHONDEVMODE=1 to enable the developer mode.
msg306620 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2017-11-21 02:59
New changeset bc9b6e29cb52f8da15613f9174af2f603131b56d by Victor Stinner in branch 'master':
bpo-32043: Rephrase -X dev documentation (#4478)
https://github.com/python/cpython/commit/bc9b6e29cb52f8da15613f9174af2f603131b56d
msg306621 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2017-11-21 03:03
While the discussion is not done, I close this issue to focus on other more specific issues.

I completed the documentation and fixed warnings filters (bpo-32089). The option now also enables asyncio debug mode (bpo-32047).

It was proposed to add an environment variable to enable the developer mode: see bpo-32101 ("Add PYTHONDEVMODE=1 to enable the developer mode").

Note: I also fixed subprocess._args_from_interpreter_flags: bpo-32094.