diff --git a/Doc/data/python3.14.abi b/Doc/data/python3.14.abi
index f180757e352053..c5630fd8dd1bd8 100644
--- a/Doc/data/python3.14.abi
+++ b/Doc/data/python3.14.abi
@@ -1565,6 +1565,7 @@
+
@@ -1816,7 +1817,7 @@
-
+
@@ -1903,7 +1904,7 @@
-
+
@@ -4340,7 +4341,7 @@
-
+
@@ -4418,12 +4419,12 @@
-
+
-
+
@@ -5284,7 +5285,7 @@
-
+
@@ -5751,7 +5752,7 @@
-
+
@@ -5767,7 +5768,14 @@
-
+
+
+
+
+
+
+
+
@@ -5817,7 +5825,7 @@
-
+
@@ -5895,24 +5903,24 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
+
@@ -5925,7 +5933,7 @@
-
+
@@ -5944,7 +5952,7 @@
-
+
@@ -5962,7 +5970,7 @@
-
+
@@ -5972,8 +5980,8 @@
-
-
+
+
@@ -5981,7 +5989,7 @@
-
+
@@ -6020,6 +6028,15 @@
+
+
+
+
+
+
+
+
+
@@ -6050,39 +6067,39 @@
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
@@ -6093,42 +6110,42 @@
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6148,7 +6165,7 @@
-
+
@@ -6159,7 +6176,7 @@
-
+
@@ -6170,12 +6187,12 @@
-
+
-
+
@@ -6184,7 +6201,7 @@
-
+
@@ -6198,23 +6215,23 @@
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
@@ -6231,34 +6248,34 @@
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
@@ -6267,47 +6284,47 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
+
@@ -6320,25 +6337,25 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6346,7 +6363,7 @@
-
+
@@ -6365,7 +6382,7 @@
-
+
@@ -6410,7 +6427,7 @@
-
+
@@ -6418,7 +6435,7 @@
-
+
@@ -6442,7 +6459,7 @@
-
+
@@ -6462,26 +6479,26 @@
-
+
-
+
-
+
-
+
-
+
@@ -6502,26 +6519,26 @@
-
+
-
+
-
+
-
-
+
+
-
-
+
+
@@ -6529,59 +6546,59 @@
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
-
-
-
+
+
+
+
-
+
-
+
-
+
-
+
@@ -6593,11 +6610,11 @@
-
+
-
-
+
+
@@ -6644,7 +6661,7 @@
-
+
@@ -6668,16 +6685,16 @@
-
+
-
+
-
+
-
+
@@ -6689,12 +6706,12 @@
-
+
-
-
-
+
+
+
@@ -6702,15 +6719,15 @@
-
+
-
-
+
+
-
+
@@ -6742,9 +6759,9 @@
-
-
-
+
+
+
@@ -6752,19 +6769,19 @@
-
+
-
+
-
+
-
+
@@ -6777,7 +6794,7 @@
-
+
@@ -6825,66 +6842,66 @@
-
-
-
+
+
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
-
+
+
-
-
-
+
+
+
-
+
@@ -6900,7 +6917,7 @@
-
+
@@ -6908,7 +6925,7 @@
-
+
@@ -6926,12 +6943,12 @@
-
+
-
+
@@ -6961,7 +6978,7 @@
-
+
@@ -6998,17 +7015,17 @@
-
+
-
+
-
+
@@ -7027,11 +7044,11 @@
-
-
-
+
+
+
-
+
@@ -7040,59 +7057,59 @@
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
@@ -7120,7 +7137,7 @@
-
+
@@ -7145,190 +7162,190 @@
-
-
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
@@ -7344,7 +7361,7 @@
-
+
@@ -7542,125 +7559,125 @@
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -7811,7 +7828,7 @@
-
+
@@ -7915,41 +7932,41 @@
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -8015,23 +8032,23 @@
-
+
-
+
-
-
+
+
-
+
-
+
@@ -8066,64 +8083,64 @@
-
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -8162,7 +8179,7 @@
-
+
@@ -8193,7 +8210,7 @@
-
+
@@ -8228,12 +8245,12 @@
-
-
+
+
-
-
+
+
@@ -8291,7 +8308,7 @@
-
+
@@ -8326,7 +8343,7 @@
-
+
@@ -8389,7 +8406,7 @@
-
+
@@ -8429,7 +8446,7 @@
-
+
@@ -8439,7 +8456,7 @@
-
+
@@ -8503,13 +8520,13 @@
-
+
-
+
-
+
@@ -8524,7 +8541,7 @@
-
+
@@ -8554,7 +8571,7 @@
-
+
@@ -8599,14 +8616,14 @@
-
+
-
+
@@ -8656,9 +8673,9 @@
-
-
-
+
+
+
@@ -8701,7 +8718,7 @@
-
+
@@ -8713,24 +8730,24 @@
-
+
-
+
-
+
-
+
@@ -8957,7 +8974,7 @@
-
+
@@ -9073,7 +9090,7 @@
-
+
@@ -9114,10 +9131,10 @@
-
+
-
+
@@ -9136,7 +9153,7 @@
-
+
@@ -9279,8 +9296,8 @@
-
-
+
+
@@ -9293,7 +9310,7 @@
-
+
@@ -9336,7 +9353,13 @@
-
+
+
+
+
+
+
+
@@ -9344,7 +9367,7 @@
-
+
@@ -9352,6 +9375,14 @@
+
+
+
+
+
+
+
+
@@ -9386,18 +9417,18 @@
-
+
-
+
-
-
-
-
+
+
+
+
@@ -9442,8 +9473,8 @@
-
-
+
+
@@ -9477,203 +9508,203 @@
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -9687,13 +9718,13 @@
-
+
-
-
+
+
-
+
@@ -9727,10 +9758,10 @@
-
+
-
+
@@ -9748,10 +9779,10 @@
-
+
-
+
@@ -9766,10 +9797,10 @@
-
+
-
+
@@ -9812,7 +9843,7 @@
-
+
@@ -9833,7 +9864,7 @@
-
+
@@ -9854,7 +9885,7 @@
-
+
@@ -9863,7 +9894,7 @@
-
+
@@ -10021,7 +10052,7 @@
-
+
@@ -10275,7 +10306,7 @@
-
+
@@ -10299,10 +10330,10 @@
-
+
-
+
@@ -10470,7 +10501,7 @@
-
+
@@ -10502,29 +10533,29 @@
-
+
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
@@ -10546,7 +10577,7 @@
-
+
@@ -10580,7 +10611,7 @@
-
+
@@ -10593,7 +10624,7 @@
-
+
@@ -10662,7 +10693,7 @@
-
+
@@ -10734,23 +10765,23 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
@@ -10774,9 +10805,9 @@
-
+
-
+
@@ -10798,7 +10829,7 @@
-
+
@@ -10851,7 +10882,7 @@
-
+
@@ -10889,47 +10920,47 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -10951,7 +10982,7 @@
-
+
@@ -11038,7 +11069,7 @@
-
+
@@ -11128,35 +11159,35 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
+
@@ -11340,7 +11371,7 @@
-
+
@@ -11404,7 +11435,7 @@
-
+
@@ -11430,452 +11461,452 @@
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
@@ -11902,7 +11933,7 @@
-
+
@@ -11920,7 +11951,7 @@
-
+
@@ -11961,32 +11992,32 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -12009,7 +12040,7 @@
-
+
@@ -13091,7 +13122,7 @@
-
+
@@ -14480,55 +14511,55 @@
-
+
-
-
+
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
@@ -14559,14 +14590,14 @@
-
+
-
-
-
+
+
+
@@ -14587,7 +14618,7 @@
-
+
@@ -14595,21 +14626,21 @@
-
+
-
+
-
+
-
+
-
+
@@ -14621,7 +14652,7 @@
-
+
@@ -14642,7 +14673,7 @@
-
+
@@ -14672,22 +14703,22 @@
-
+
-
+
-
+
-
+
@@ -14702,7 +14733,7 @@
-
+
@@ -14711,7 +14742,7 @@
-
+
@@ -14734,13 +14765,13 @@
-
+
-
-
+
+
@@ -14773,7 +14804,7 @@
-
+
@@ -14824,13 +14855,13 @@
-
+
-
-
+
+
@@ -14851,7 +14882,7 @@
-
+
@@ -14870,7 +14901,7 @@
-
+
@@ -14878,11 +14909,11 @@
-
+
-
-
+
+
@@ -14929,7 +14960,7 @@
-
+
@@ -14953,16 +14984,16 @@
-
+
-
+
-
+
-
+
@@ -14974,7 +15005,7 @@
-
+
@@ -14983,8 +15014,8 @@
-
-
+
+
@@ -14992,7 +15023,7 @@
-
+
@@ -15000,7 +15031,7 @@
-
+
@@ -15037,7 +15068,7 @@
-
+
@@ -15085,10 +15116,10 @@
-
+
-
+
@@ -15368,10 +15399,10 @@
-
+
-
+
@@ -15380,7 +15411,7 @@
-
+
@@ -15456,7 +15487,7 @@
-
+
@@ -15673,10 +15704,10 @@
-
+
-
+
@@ -15694,10 +15725,10 @@
-
+
-
+
@@ -15727,7 +15758,7 @@
-
+
@@ -15754,13 +15785,13 @@
-
+
-
+
@@ -15785,7 +15816,7 @@
-
+
@@ -15859,7 +15890,7 @@
-
+
@@ -15874,7 +15905,7 @@
-
+
@@ -15943,7 +15974,7 @@
-
+
@@ -16038,13 +16069,13 @@
-
+
-
+
@@ -17405,7 +17436,7 @@
-
+
@@ -17894,7 +17925,7 @@
-
+
@@ -18111,10 +18142,10 @@
-
+
-
+
@@ -20679,7 +20710,7 @@
-
+
@@ -20687,7 +20718,7 @@
-
+
@@ -20919,7 +20950,7 @@
-
+
@@ -20968,10 +20999,10 @@
-
+
-
+
@@ -21130,13 +21161,13 @@
-
+
-
+
-
+
@@ -21218,7 +21249,7 @@
-
+
@@ -21428,7 +21459,7 @@
-
+
@@ -21483,7 +21514,7 @@
-
+
@@ -21515,7 +21546,7 @@
-
+
@@ -21604,127 +21635,127 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -21771,13 +21802,13 @@
-
+
-
+
-
+
@@ -21817,7 +21848,7 @@
-
+
@@ -21881,7 +21912,7 @@
-
+
@@ -22031,10 +22062,10 @@
-
+
-
+
@@ -22048,7 +22079,7 @@
-
+
@@ -22059,13 +22090,16 @@
-
+
-
+
-
+
+
+
+
@@ -22211,7 +22245,7 @@
-
+
@@ -22416,21 +22450,21 @@
-
+
-
+
-
-
+
+
-
+
-
+
@@ -22441,16 +22475,16 @@
-
+
-
+
-
+
@@ -22468,16 +22502,16 @@
-
+
-
+
-
+
@@ -22511,10 +22545,10 @@
-
+
-
+
@@ -22577,13 +22611,13 @@
-
+
-
+
-
+
@@ -22601,13 +22635,13 @@
-
+
-
+
-
+
@@ -22651,18 +22685,18 @@
-
+
-
+
-
+
-
+
@@ -22672,16 +22706,16 @@
-
+
-
+
-
+
@@ -22696,7 +22730,7 @@
-
+
@@ -22750,16 +22784,16 @@
-
+
-
+
-
+
-
+
@@ -22836,8 +22870,8 @@
-
-
+
+
@@ -23138,7 +23172,7 @@
-
+
@@ -23593,17 +23627,17 @@
-
+
-
+
-
+
-
+
@@ -23635,22 +23669,22 @@
-
+
-
+
-
-
+
+
-
+
-
+
@@ -23728,7 +23762,7 @@
-
+
@@ -23775,7 +23809,7 @@
-
+
@@ -24215,7 +24249,7 @@
-
+
@@ -24296,7 +24330,7 @@
-
+
@@ -24494,7 +24528,7 @@
-
+
@@ -24680,7 +24714,7 @@
-
+
@@ -24895,7 +24929,7 @@
-
+
@@ -24948,7 +24982,7 @@
-
+
@@ -25097,7 +25131,7 @@
-
+
@@ -25289,7 +25323,7 @@
-
+
@@ -25297,7 +25331,7 @@
-
+
@@ -25343,91 +25377,91 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -25440,36 +25474,36 @@
-
+
-
-
+
+
-
+
-
+
-
-
-
+
+
+
-
+
@@ -25477,7 +25511,7 @@
-
+
@@ -25486,7 +25520,7 @@
-
+
@@ -25625,206 +25659,213 @@
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
@@ -26100,7 +26141,7 @@
-
+
@@ -26118,7 +26159,7 @@
-
+
@@ -26231,7 +26272,7 @@
-
+
@@ -26321,7 +26362,7 @@
-
+
@@ -26548,7 +26589,7 @@
-
+
@@ -26602,7 +26643,7 @@
-
+
@@ -26740,7 +26781,7 @@
-
+
@@ -26772,7 +26813,7 @@
-
+
@@ -26810,7 +26851,7 @@
-
+
@@ -26876,7 +26917,7 @@
-
+
@@ -27582,109 +27623,109 @@
-
-
-
+
+
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
+
-
-
-
+
+
+
@@ -27927,7 +27968,7 @@
-
+
@@ -27952,7 +27993,7 @@
-
+
@@ -28083,34 +28124,34 @@
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
@@ -28584,24 +28625,24 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -28846,173 +28887,173 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
+
-
-
-
+
+
+
@@ -29030,12 +29071,12 @@
-
-
+
+
-
+
@@ -29291,7 +29332,7 @@
-
+
@@ -29305,13 +29346,13 @@
-
+
-
+
@@ -29323,7 +29364,7 @@
-
+
@@ -29449,11 +29490,11 @@
-
+
-
+
@@ -29612,12 +29653,12 @@
-
+
-
+
@@ -29632,7 +29673,7 @@
-
+
@@ -29753,7 +29794,7 @@
-
+
@@ -30185,7 +30226,7 @@
-
+
@@ -30430,7 +30471,7 @@
-
+
@@ -30646,7 +30687,7 @@
-
+
@@ -30680,7 +30721,7 @@
-
+
@@ -31292,7 +31333,7 @@
-
+
@@ -31316,16 +31357,16 @@
-
+
-
+
-
+
-
+
@@ -31347,26 +31388,26 @@
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -31376,7 +31417,7 @@
-
+
@@ -31401,7 +31442,7 @@
-
+
@@ -31617,7 +31658,7 @@
-
+
@@ -31660,18 +31701,18 @@
-
+
-
+
-
+
diff --git a/Include/internal/pycore_qsbr.h b/Include/internal/pycore_qsbr.h
index 1f9b3fcf777493..eeca6fc472be37 100644
--- a/Include/internal/pycore_qsbr.h
+++ b/Include/internal/pycore_qsbr.h
@@ -83,8 +83,9 @@ struct _qsbr_shared {
// Minimum observed read sequence of all QSBR thread states
uint64_t rd_seq;
- // Array of QSBR thread states.
+ // Array of QSBR thread states (aligned to 64 bytes).
struct _qsbr_pad *array;
+ void *array_raw; // raw allocation pointer (for free)
Py_ssize_t size;
// Freelist of unused _qsbr_thread_states (protected by mutex)
diff --git a/Include/internal/pycore_tstate.h b/Include/internal/pycore_tstate.h
index c3ac52bd76613e..87f59c274ac747 100644
--- a/Include/internal/pycore_tstate.h
+++ b/Include/internal/pycore_tstate.h
@@ -80,6 +80,11 @@ typedef struct _PyThreadStateImpl {
uintptr_t c_stack_init_base;
uintptr_t c_stack_init_top;
+#ifdef Py_GIL_DISABLED
+ // gh-144438: Add padding to ensure that the fields above don't share a
+ // cache line with other allocations.
+ char __padding[64];
+#endif
} _PyThreadStateImpl;
#ifdef __cplusplus
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-02-06-21-45-52.gh-issue-144438.GI_uB1LR.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-02-06-21-45-52.gh-issue-144438.GI_uB1LR.rst
new file mode 100644
index 00000000000000..3e33e461ae8b5a
--- /dev/null
+++ b/Misc/NEWS.d/next/Core_and_Builtins/2026-02-06-21-45-52.gh-issue-144438.GI_uB1LR.rst
@@ -0,0 +1,2 @@
+Align the QSBR thread state array to a 64-byte cache line boundary to
+avoid false sharing in the :term:`free-threaded build`.
diff --git a/Python/qsbr.c b/Python/qsbr.c
index c9fad5c05ef108..203daa0d307172 100644
--- a/Python/qsbr.c
+++ b/Python/qsbr.c
@@ -84,22 +84,29 @@ grow_thread_array(struct _qsbr_shared *shared)
new_size = MIN_ARRAY_SIZE;
}
- struct _qsbr_pad *array = PyMem_RawCalloc(new_size, sizeof(*array));
- if (array == NULL) {
+ // Overallocate by 63 bytes so we can align to a 64-byte boundary.
+ // This avoids potential false sharing between the first entry and other
+ // allocations.
+ size_t alignment = 64;
+ size_t alloc_size = (size_t)new_size * sizeof(struct _qsbr_pad) + alignment - 1;
+ void *raw = PyMem_RawCalloc(1, alloc_size);
+ if (raw == NULL) {
return -1;
}
+ struct _qsbr_pad *array = _Py_ALIGN_UP(raw, alignment);
- struct _qsbr_pad *old = shared->array;
- if (old != NULL) {
+ void *old_raw = shared->array_raw;
+ if (shared->array != NULL) {
memcpy(array, shared->array, shared->size * sizeof(*array));
}
shared->array = array;
+ shared->array_raw = raw;
shared->size = new_size;
shared->freelist = NULL;
initialize_new_array(shared);
- PyMem_RawFree(old);
+ PyMem_RawFree(old_raw);
return 0;
}
@@ -256,8 +263,9 @@ void
_Py_qsbr_fini(PyInterpreterState *interp)
{
struct _qsbr_shared *shared = &interp->qsbr;
- PyMem_RawFree(shared->array);
+ PyMem_RawFree(shared->array_raw);
shared->array = NULL;
+ shared->array_raw = NULL;
shared->size = 0;
shared->freelist = NULL;
}