From d0c7ac35a310b2c9fb891c0b9525d1755a39fcb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9F=8D=8CShawn?= Date: Thu, 16 Apr 2026 10:00:09 +0800 Subject: [PATCH 1/2] Parse PYTHON_LLTRACE/PYTHON_OPT_DEBUG as integers --- Python/optimizer.c | 6 +++--- Python/optimizer_analysis.c | 2 +- Python/optimizer_symbols.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Python/optimizer.c b/Python/optimizer.c index 5d5aecda4e45e3..98acefceee25ef 100644 --- a/Python/optimizer.c +++ b/Python/optimizer.c @@ -625,7 +625,7 @@ _PyJit_translate_single_bytecode_to_trace( char *python_lltrace = Py_GETENV("PYTHON_LLTRACE"); int lltrace = 0; if (python_lltrace != NULL && *python_lltrace >= '0') { - lltrace = *python_lltrace - '0'; // TODO: Parse an int and all that + lltrace = atoi(python_lltrace); } #endif _PyThreadStateImpl *_tstate = (_PyThreadStateImpl *)tstate; @@ -1033,7 +1033,7 @@ _PyJit_TryInitializeTracing( char *python_lltrace = Py_GETENV("PYTHON_LLTRACE"); int lltrace = 0; if (python_lltrace != NULL && *python_lltrace >= '0') { - lltrace = *python_lltrace - '0'; // TODO: Parse an int and all that + lltrace = atoi(python_lltrace); } DPRINTF(2, "Tracing %s (%s:%d) at byte offset %d at chain depth %d\n", @@ -1433,7 +1433,7 @@ make_executor_from_uops(_PyThreadStateImpl *tstate, _PyUOpInstruction *buffer, i char *python_lltrace = Py_GETENV("PYTHON_LLTRACE"); int lltrace = 0; if (python_lltrace != NULL && *python_lltrace >= '0') { - lltrace = *python_lltrace - '0'; // TODO: Parse an int and all that + lltrace = atoi(python_lltrace); } if (lltrace >= 2) { printf("Optimized trace (length %d):\n", length); diff --git a/Python/optimizer_analysis.c b/Python/optimizer_analysis.c index 095bcfc639bc65..3f2ddfc01b16af 100644 --- a/Python/optimizer_analysis.c +++ b/Python/optimizer_analysis.c @@ -47,7 +47,7 @@ char *uop_debug = Py_GETENV(DEBUG_ENV); int lltrace = 0; if (uop_debug != NULL && *uop_debug >= '0') { - lltrace = *uop_debug - '0'; // TODO: Parse an int and all that + lltrace = atoi(uop_debug); } return lltrace; } diff --git a/Python/optimizer_symbols.c b/Python/optimizer_symbols.c index 79f81482d247e3..4940395f90d03b 100644 --- a/Python/optimizer_symbols.c +++ b/Python/optimizer_symbols.c @@ -65,7 +65,7 @@ static inline int get_lltrace(void) { char *uop_debug = Py_GETENV("PYTHON_OPT_DEBUG"); int lltrace = 0; if (uop_debug != NULL && *uop_debug >= '0') { - lltrace = *uop_debug - '0'; // TODO: Parse an int and all that + lltrace = atoi(uop_debug); } return lltrace; } From 663659ed35026a5e11029c2353cd188db2042941 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9F=8D=8CShawn?= Date: Thu, 16 Apr 2026 10:14:01 +0800 Subject: [PATCH 2/2] Parse PYTHON_LLTRACE as an integer --- Python/ceval.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Python/ceval.h b/Python/ceval.h index bb5f7ddb857246..593fdd853acfbf 100644 --- a/Python/ceval.h +++ b/Python/ceval.h @@ -298,7 +298,7 @@ maybe_lltrace_resume_frame(_PyInterpreterFrame *frame, PyObject *globals) // Can also be controlled by environment variable char *python_lltrace = Py_GETENV("PYTHON_LLTRACE"); if (python_lltrace != NULL && *python_lltrace >= '0') { - lltrace = *python_lltrace - '0'; // TODO: Parse an int and all that + lltrace = atoi(python_lltrace); } } if (lltrace >= 5) {