]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-133143: Use _Py_ID for the other literals in sys (GH-138698)
authorPetr Viktorin <encukou@gmail.com>
Tue, 9 Sep 2025 12:57:07 +0000 (14:57 +0200)
committerGitHub <noreply@github.com>
Tue, 9 Sep 2025 12:57:07 +0000 (14:57 +0200)
Follow-up refactoring after GH-133143, where we use `_Py_ID` for "big" and "little"
in `abi_info.byteorder`.
This uses `_Py_ID` for `sys.byteorder`, but also `float_repr_style` and a module name.

Include/internal/pycore_global_objects_fini_generated.h
Include/internal/pycore_global_strings.h
Include/internal/pycore_runtime_init_generated.h
Include/internal/pycore_unicodeobject_generated.h
Python/sysmodule.c

index ad65d1fda18e3bc3e765401c3b9e2896e907c70d..63888eab7b44815220879fc98cc8ff080a1fc7f5 100644 (file)
@@ -1080,6 +1080,7 @@ _PyStaticObjects_CheckRefcnt(PyInterpreterState *interp) {
     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(last_value));
     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(latin1));
     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(leaf_size));
+    _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(legacy));
     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(len));
     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(length));
     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(level));
@@ -1253,6 +1254,7 @@ _PyStaticObjects_CheckRefcnt(PyInterpreterState *interp) {
     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(setstate));
     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(shape));
     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(shared));
+    _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(short));
     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(show_cmd));
     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(signed));
     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(signum));
index 88283fa625706f3fe6c5c774010c9f238f22a463..b863a7c970e3d4ac655121204c789f8d7329ea4d 100644 (file)
@@ -571,6 +571,7 @@ struct _Py_global_strings {
         STRUCT_FOR_ID(last_value)
         STRUCT_FOR_ID(latin1)
         STRUCT_FOR_ID(leaf_size)
+        STRUCT_FOR_ID(legacy)
         STRUCT_FOR_ID(len)
         STRUCT_FOR_ID(length)
         STRUCT_FOR_ID(level)
@@ -744,6 +745,7 @@ struct _Py_global_strings {
         STRUCT_FOR_ID(setstate)
         STRUCT_FOR_ID(shape)
         STRUCT_FOR_ID(shared)
+        STRUCT_FOR_ID(short)
         STRUCT_FOR_ID(show_cmd)
         STRUCT_FOR_ID(signed)
         STRUCT_FOR_ID(signum)
index a08d77ab0a06b9b693a06ed9be0feadb72a72deb..3ce7200ffeb6a40a7db00626b83b97fa19dea83c 100644 (file)
@@ -1078,6 +1078,7 @@ extern "C" {
     INIT_ID(last_value), \
     INIT_ID(latin1), \
     INIT_ID(leaf_size), \
+    INIT_ID(legacy), \
     INIT_ID(len), \
     INIT_ID(length), \
     INIT_ID(level), \
@@ -1251,6 +1252,7 @@ extern "C" {
     INIT_ID(setstate), \
     INIT_ID(shape), \
     INIT_ID(shared), \
+    INIT_ID(short), \
     INIT_ID(show_cmd), \
     INIT_ID(signed), \
     INIT_ID(signum), \
index 57c0a7d51f89f3a0cb4f384a3dd411cc8f9d3ab2..e76e603230a5db9a8d69ca7902e5597b0a5979e6 100644 (file)
@@ -2072,6 +2072,10 @@ _PyUnicode_InitStaticStrings(PyInterpreterState *interp) {
     _PyUnicode_InternStatic(interp, &string);
     assert(_PyUnicode_CheckConsistency(string, 1));
     assert(PyUnicode_GET_LENGTH(string) != 1);
+    string = &_Py_ID(legacy);
+    _PyUnicode_InternStatic(interp, &string);
+    assert(_PyUnicode_CheckConsistency(string, 1));
+    assert(PyUnicode_GET_LENGTH(string) != 1);
     string = &_Py_ID(len);
     _PyUnicode_InternStatic(interp, &string);
     assert(_PyUnicode_CheckConsistency(string, 1));
@@ -2764,6 +2768,10 @@ _PyUnicode_InitStaticStrings(PyInterpreterState *interp) {
     _PyUnicode_InternStatic(interp, &string);
     assert(_PyUnicode_CheckConsistency(string, 1));
     assert(PyUnicode_GET_LENGTH(string) != 1);
+    string = &_Py_ID(short);
+    _PyUnicode_InternStatic(interp, &string);
+    assert(_PyUnicode_CheckConsistency(string, 1));
+    assert(PyUnicode_GET_LENGTH(string) != 1);
     string = &_Py_ID(show_cmd);
     _PyUnicode_InternStatic(interp, &string);
     assert(_PyUnicode_CheckConsistency(string, 1));
index a5b42d48e432d7ea3d0394d2f7f7a9447cb0f1a7..832d2afff806ab2b313a0f4db6c4bc8b7f325adb 100644 (file)
@@ -610,7 +610,7 @@ sys_breakpointhook(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyOb
 
     if (last_dot == NULL) {
         /* The breakpoint is a built-in, e.g. PYTHONBREAKPOINT=int */
-        modulepath = PyUnicode_FromString("builtins");
+        modulepath = &_Py_ID(builtins);
         attrname = envar;
     }
     else if (last_dot != envar) {
@@ -3873,9 +3873,9 @@ _PySys_InitCore(PyThreadState *tstate, PyObject *sysdict)
     SET_SYS("builtin_module_names", list_builtin_module_names());
     SET_SYS("stdlib_module_names", list_stdlib_module_names());
 #if PY_BIG_ENDIAN
-    SET_SYS_FROM_STRING("byteorder", "big");
+    SET_SYS("byteorder", &_Py_ID(big));
 #else
-    SET_SYS_FROM_STRING("byteorder", "little");
+    SET_SYS("byteorder", &_Py_ID(little));
 #endif
 
 #ifdef MS_COREDLL
@@ -3917,9 +3917,9 @@ _PySys_InitCore(PyThreadState *tstate, PyObject *sysdict)
 
     /* float repr style: 0.03 (short) vs 0.029999999999999999 (legacy) */
 #if _PY_SHORT_FLOAT_REPR == 1
-    SET_SYS_FROM_STRING("float_repr_style", "short");
+    SET_SYS("float_repr_style", &_Py_ID(short));
 #else
-    SET_SYS_FROM_STRING("float_repr_style", "legacy");
+    SET_SYS("float_repr_style", &_Py_ID(legacy));
 #endif
 
     SET_SYS("thread_info", PyThread_GetInfo());