[New-bugs-announce] [issue31733] [2.7] Add PYTHONSHOWREFCOUNT environment variable to Python 2.7

STINNER Victor report at bugs.python.org
Mon Oct 9 09:44:19 EDT 2017

New submission from STINNER Victor <victor.stinner at gmail.com>:

When Python 2.7 is built in debug mode, it displays the total number of references  when the program finishes or after each statement in the interactive interpreter.


haypo at selma$ ./python
Python 2.7.14+ (heads/2.7:cc4b6f1c62, Oct  9 2017, 15:30:11) 
[GCC 7.2.1 20170915 (Red Hat 7.2.1-2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 1+1
[45025 refs]
>>> 2+2
[45025 refs]
[45025 refs]
[21655 refs]

While I'm Python core developer working on reference leaks for years, I *never* used this value. I only use "python -m test -R 3:3 test_xxx" to track reference leaks.

I really liked Python 3.4 which made this option an opt-in, python3 -X showrefcount: bpo-17323 (commit 1f8898a5916b942c86ee8716c37d2db388e7bf2f).

I propose to change Python 2.7 behaviour to not print this value by default, but add a new PYTHONSHOWREFCOUNT environment variable to display it. The value is displayed if PYTHONSHOWREFCOUNT is set. Other similar existing variables:



I prefer to add a new environment style rather than adding a new -X command line option. IMHO an environment variable is less intrusive. For example, older Python 2.7 versions completely ignore unknown environment variables, whereas "python2.7 -X showrefcount ..." currently logs the "-X is reserved for implementation-specific arguments" message into stderr.


messages: 303952
nosy: haypo
priority: normal
severity: normal
status: open
title: [2.7] Add PYTHONSHOWREFCOUNT environment variable to Python 2.7
versions: Python 2.7

Python tracker <report at bugs.python.org>

More information about the New-bugs-announce mailing list