bpo-45954: Rename PyConfig.no_debug_ranges to code_debug_ranges (GH-29886)

Rename PyConfig.no_debug_ranges to PyConfig.code_debug_ranges and
invert the value.

Document -X no_debug_ranges and PYTHONNODEBUGRANGES env var in
PyConfig.code_debug_ranges documentation.
This commit is contained in:
Victor Stinner 2021-12-02 11:43:37 +01:00 committed by GitHub
parent cb2b3c8d35
commit a6c3b0faa1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 22 additions and 18 deletions

View file

@ -596,13 +596,16 @@ PyConfig
.. versionadded:: 3.10 .. versionadded:: 3.10
.. c:member:: int no_debug_ranges .. c:member:: int code_debug_ranges
If equals to ``1``, disables the inclusion of the end line and column If equals to ``0``, disables the inclusion of the end line and column
mappings in code objects. Also disables traceback printing carets to mappings in code objects. Also disables traceback printing carets to
specific error locations. specific error locations.
Default: ``0``. Set to ``0`` by the :envvar:`PYTHONNODEBUGRANGES` environment variable
and by the :option:`-X no_debug_ranges <-X>` command line option.
Default: ``1``.
.. versionadded:: 3.11 .. versionadded:: 3.11

View file

@ -143,7 +143,7 @@ typedef struct PyConfig {
int faulthandler; int faulthandler;
int tracemalloc; int tracemalloc;
int import_time; int import_time;
int no_debug_ranges; int code_debug_ranges;
int show_ref_count; int show_ref_count;
int dump_refs; int dump_refs;
wchar_t *dump_refs_file; wchar_t *dump_refs_file;

View file

@ -1,7 +1,7 @@
# bpo-42260: Test _PyInterpreterState_GetConfigCopy() # bpo-42260: Test _PyInterpreterState_GetConfigCopy()
# and _PyInterpreterState_SetConfig(). # and _PyInterpreterState_SetConfig().
# #
# Test run in a subinterpreter since set_config(get_config()) # Test run in a subprocess since set_config(get_config())
# does reset sys attributes to their state of the Python startup # does reset sys attributes to their state of the Python startup
# (before the site module is run). # (before the site module is run).
@ -61,7 +61,7 @@ class SetConfigTests(unittest.TestCase):
'faulthandler', 'faulthandler',
'tracemalloc', 'tracemalloc',
'import_time', 'import_time',
'no_debug_ranges', 'code_debug_ranges',
'show_ref_count', 'show_ref_count',
'dump_refs', 'dump_refs',
'malloc_stats', 'malloc_stats',

View file

@ -449,7 +449,7 @@ def has_no_debug_ranges():
except ImportError: except ImportError:
raise unittest.SkipTest("_testinternalcapi required") raise unittest.SkipTest("_testinternalcapi required")
config = _testinternalcapi.get_config() config = _testinternalcapi.get_config()
return bool(config['no_debug_ranges']) return not bool(config['code_debug_ranges'])
def requires_debug_ranges(reason='requires co_positions / debug_ranges'): def requires_debug_ranges(reason='requires co_positions / debug_ranges'):
return unittest.skipIf(has_no_debug_ranges(), reason) return unittest.skipIf(has_no_debug_ranges(), reason)

View file

@ -386,7 +386,7 @@ class InitConfigTests(EmbeddingTestsMixin, unittest.TestCase):
'faulthandler': 0, 'faulthandler': 0,
'tracemalloc': 0, 'tracemalloc': 0,
'import_time': 0, 'import_time': 0,
'no_debug_ranges': 0, 'code_debug_ranges': 1,
'show_ref_count': 0, 'show_ref_count': 0,
'dump_refs': 0, 'dump_refs': 0,
'malloc_stats': 0, 'malloc_stats': 0,
@ -818,7 +818,7 @@ class InitConfigTests(EmbeddingTestsMixin, unittest.TestCase):
'hash_seed': 123, 'hash_seed': 123,
'tracemalloc': 2, 'tracemalloc': 2,
'import_time': 1, 'import_time': 1,
'no_debug_ranges': 1, 'code_debug_ranges': 0,
'show_ref_count': 1, 'show_ref_count': 1,
'malloc_stats': 1, 'malloc_stats': 1,
@ -878,7 +878,7 @@ class InitConfigTests(EmbeddingTestsMixin, unittest.TestCase):
'hash_seed': 42, 'hash_seed': 42,
'tracemalloc': 2, 'tracemalloc': 2,
'import_time': 1, 'import_time': 1,
'no_debug_ranges': 1, 'code_debug_ranges': 0,
'malloc_stats': 1, 'malloc_stats': 1,
'inspect': 1, 'inspect': 1,
'optimization_level': 2, 'optimization_level': 2,
@ -908,7 +908,7 @@ class InitConfigTests(EmbeddingTestsMixin, unittest.TestCase):
'hash_seed': 42, 'hash_seed': 42,
'tracemalloc': 2, 'tracemalloc': 2,
'import_time': 1, 'import_time': 1,
'no_debug_ranges': 1, 'code_debug_ranges': 0,
'malloc_stats': 1, 'malloc_stats': 1,
'inspect': 1, 'inspect': 1,
'optimization_level': 2, 'optimization_level': 2,

View file

@ -381,7 +381,7 @@ _PyCode_New(struct _PyCodeConstructor *con)
// Discard the endlinetable and columntable if we are opted out of debug // Discard the endlinetable and columntable if we are opted out of debug
// ranges. // ranges.
if (_Py_GetConfig()->no_debug_ranges) { if (!_Py_GetConfig()->code_debug_ranges) {
con->endlinetable = Py_None; con->endlinetable = Py_None;
con->columntable = Py_None; con->columntable = Py_None;
} }

View file

@ -531,7 +531,7 @@ static int test_init_from_config(void)
config.import_time = 1; config.import_time = 1;
putenv("PYTHONNODEBUGRANGES=0"); putenv("PYTHONNODEBUGRANGES=0");
config.no_debug_ranges = 1; config.code_debug_ranges = 0;
config.show_ref_count = 1; config.show_ref_count = 1;
/* FIXME: test dump_refs: bpo-34223 */ /* FIXME: test dump_refs: bpo-34223 */

View file

@ -614,7 +614,7 @@ config_check_consistency(const PyConfig *config)
assert(config->faulthandler >= 0); assert(config->faulthandler >= 0);
assert(config->tracemalloc >= 0); assert(config->tracemalloc >= 0);
assert(config->import_time >= 0); assert(config->import_time >= 0);
assert(config->no_debug_ranges >= 0); assert(config->code_debug_ranges >= 0);
assert(config->show_ref_count >= 0); assert(config->show_ref_count >= 0);
assert(config->dump_refs >= 0); assert(config->dump_refs >= 0);
assert(config->malloc_stats >= 0); assert(config->malloc_stats >= 0);
@ -740,6 +740,7 @@ _PyConfig_InitCompatConfig(PyConfig *config)
config->legacy_windows_stdio = -1; config->legacy_windows_stdio = -1;
#endif #endif
config->use_frozen_modules = -1; config->use_frozen_modules = -1;
config->code_debug_ranges = 1;
} }
@ -904,7 +905,7 @@ _PyConfig_Copy(PyConfig *config, const PyConfig *config2)
COPY_ATTR(faulthandler); COPY_ATTR(faulthandler);
COPY_ATTR(tracemalloc); COPY_ATTR(tracemalloc);
COPY_ATTR(import_time); COPY_ATTR(import_time);
COPY_ATTR(no_debug_ranges); COPY_ATTR(code_debug_ranges);
COPY_ATTR(show_ref_count); COPY_ATTR(show_ref_count);
COPY_ATTR(dump_refs); COPY_ATTR(dump_refs);
COPY_ATTR(dump_refs_file); COPY_ATTR(dump_refs_file);
@ -1012,7 +1013,7 @@ _PyConfig_AsDict(const PyConfig *config)
SET_ITEM_INT(faulthandler); SET_ITEM_INT(faulthandler);
SET_ITEM_INT(tracemalloc); SET_ITEM_INT(tracemalloc);
SET_ITEM_INT(import_time); SET_ITEM_INT(import_time);
SET_ITEM_INT(no_debug_ranges); SET_ITEM_INT(code_debug_ranges);
SET_ITEM_INT(show_ref_count); SET_ITEM_INT(show_ref_count);
SET_ITEM_INT(dump_refs); SET_ITEM_INT(dump_refs);
SET_ITEM_INT(malloc_stats); SET_ITEM_INT(malloc_stats);
@ -1291,7 +1292,7 @@ _PyConfig_FromDict(PyConfig *config, PyObject *dict)
GET_UINT(faulthandler); GET_UINT(faulthandler);
GET_UINT(tracemalloc); GET_UINT(tracemalloc);
GET_UINT(import_time); GET_UINT(import_time);
GET_UINT(no_debug_ranges); GET_UINT(code_debug_ranges);
GET_UINT(show_ref_count); GET_UINT(show_ref_count);
GET_UINT(dump_refs); GET_UINT(dump_refs);
GET_UINT(malloc_stats); GET_UINT(malloc_stats);
@ -1853,7 +1854,7 @@ config_read_complex_options(PyConfig *config)
if (config_get_env(config, "PYTHONNODEBUGRANGES") if (config_get_env(config, "PYTHONNODEBUGRANGES")
|| config_get_xoption(config, L"no_debug_ranges")) { || config_get_xoption(config, L"no_debug_ranges")) {
config->no_debug_ranges = 1; config->code_debug_ranges = 0;
} }
PyStatus status; PyStatus status;