From fd65f630f42d96a321da9aa6b36a7cb1af12b160 Mon Sep 17 00:00:00 2001 From: hippi345 <13539685+hippi345@users.noreply.github.com> Date: Sat, 17 Oct 2026 01:07:53 +0000 Subject: [PATCH] Set sys.flags.debug to 0 by default CPython reports sys.flags.debug as 0 unless -d is given. GraalPy was setting it from the inverse of PythonOptimizeFlag, so the default value was 1. Fixes #1213 Signed-off-by: hippi345 <13539685+hippi345@users.noreply.github.com> --- .../com.oracle.graal.python.test/src/tests/test_sys.py | 6 ++++++ .../graal/python/builtins/modules/SysModuleBuiltins.java | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/graalpython/com.oracle.graal.python.test/src/tests/test_sys.py b/graalpython/com.oracle.graal.python.test/src/tests/test_sys.py index 31f9e974aa..3ecd5e9d16 100644 --- a/graalpython/com.oracle.graal.python.test/src/tests/test_sys.py +++ b/graalpython/com.oracle.graal.python.test/src/tests/test_sys.py @@ -133,3 +133,9 @@ def test_getwindowsversion_java_backend(self): capture_output=True, text=True, check=True, ) self.assertEqual(result.stdout.splitlines(), [str(expected), str(expected)]) + + +class SysFlagsTests(unittest.TestCase): + def test_debug_is_zero_by_default(self): + # CPython sets sys.flags.debug only when -d is given, not from -O. + self.assertEqual(sys.flags.debug, 0) diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/SysModuleBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/SysModuleBuiltins.java index e76f46c806..ba1465c999 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/SysModuleBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/SysModuleBuiltins.java @@ -694,7 +694,7 @@ public void postInitialize0(Python3Core core) { PList sysPaths = PFactory.createList(language, path); sys.setAttribute(tsInternedLiteral("path"), sysPaths); sys.setAttribute(tsInternedLiteral("flags"), PFactory.createStructSeq(language, SysModuleBuiltins.FLAGS_DESC, - PInt.intValue(!language.getEngineOption(PythonOptions.PythonOptimizeFlag)), // debug + 0, // debug PInt.intValue(context.getOption(PythonOptions.InspectFlag)), // inspect PInt.intValue(context.getOption(PythonOptions.TerminalIsInteractive)), // interactive PInt.intValue(language.getEngineOption(PythonOptions.PythonOptimizeFlag)), // optimize