Title: Let clang on Linux and clang-cl on Windows "see" more optimizing macros · Issue #131033 · python/cpython · GitHub
Open Graph Title: Let clang on Linux and clang-cl on Windows "see" more optimizing macros · Issue #131033 · python/cpython
X Title: Let clang on Linux and clang-cl on Windows "see" more optimizing macros · Issue #131033 · python/cpython
Description: Feature or enhancement Proposal: Here are a few optimizing macros, some of which clang under Linux does not "see", because https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-fgnuc-version Sets various macros to cl...
Open Graph Description: Feature or enhancement Proposal: Here are a few optimizing macros, some of which clang under Linux does not "see", because https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang...
X Description: Feature or enhancement Proposal: Here are a few optimizing macros, some of which clang under Linux does not "see", because https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdop...
Opengraph URL: https://github.com/python/cpython/issues/131033
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Let clang on Linux and clang-cl on Windows \"see\" more optimizing macros","articleBody":"# Feature or enhancement\n\n### Proposal:\n\nHere are a few optimizing macros, some of which clang under Linux does not \"see\", because\n- https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-fgnuc-version\n \u003eSets various macros to claim compatibility with the given GCC version (default is 4.2.1)\n- verified on https://godbolt.org/z/Gah6sh8EE\n\nNone of these are seen by clang-cl on Windows, because there \n- clang-cl does not set `__GNUC__` (most probably because too much code out there would then assume \"ah - I am on Linux\")\n- but clang-cl does set `__clang__`\n\n**IMHO, \"syncing\" them between GCC/clang on Linux and clang-cl on Windows is preferable.**\n\n\nNeither seen on Linux nor on Windows: https://github.com/python/cpython/pull/130891 would fix:\nhttps://github.com/python/cpython/blob/98fa4a49fecbac3c990a25ce5d300592dad31be0/Include/pyport.h#L323-L325\n\n\nSeen on Linux, not seen on Windows: https://github.com/python/cpython/pull/131019 would fix:\nhttps://github.com/python/cpython/blob/98fa4a49fecbac3c990a25ce5d300592dad31be0/Objects/obmalloc.c#L1460-L1462\n\n\nSeen on Linux, not seen on Windows:\nhttps://github.com/python/cpython/blob/98fa4a49fecbac3c990a25ce5d300592dad31be0/Modules/expat/expat_external.h#L115-L117\n\nNeither seen on Linux nor on Windows:\nhttps://github.com/python/cpython/blob/98fa4a49fecbac3c990a25ce5d300592dad31be0/Modules/expat/expat_external.h#L122-L124\n\nThe last two are in vendored code, but I've temporarily modified it (https://github.com/python/cpython/pull/131019/commits/01183d746dec877aac6caf204b7beac2c67ee26c) and then reverted again (https://github.com/python/cpython/pull/131019/commits/1c4a55d9a75fcea3c88ea489f50c1527a30d996a)\n\n\nEnabling them all for clang-cl on Windows is performance neutral wrt to the pyperformance benchmark.\n\n| Benchmark | clang.release.19.1.1.92e5f826ac | clang.release.19.1.1.16a7f4607e.pyHot |\n|---------------------------------|:-------------------------------:|:-------------------------------------:|\n| Geometric mean | (ref) | 1.01x faster |\n\n| Benchmark | clang.pgo.19.1.1.92e5f826ac | clang.pgo.19.1.1.16a7f4607e.pyHot |\n|---------------------------|:---------------------------:|:---------------------------------:|\n| Geometric mean | (ref) | 1.01x slower |\n\n| Benchmark | clang.release.20.1.0-rc2.92e5f826ac | clang.release.20.1.0-rc2.16a7f4607e.pyHot |\n|-------------------------------|:-----------------------------------:|:-----------------------------------------:|\n| Geometric mean | (ref) | 1.01x faster |\n\n| Benchmark | clang.pgo.20.1.0-rc2.92e5f826ac | clang.pgo.20.1.0-rc2.16a7f4607e.pyHot |\n|--------------------------|:-------------------------------:|:-------------------------------------:|\n| Geometric mean | (ref) | 1.00x slower |\n\n\u003cdetails\u003e\u003csummary\u003eDetails\u003c/summary\u003e\n\u003cp\u003e\n\n| Benchmark | clang.release.19.1.1.92e5f826ac | clang.release.19.1.1.16a7f4607e.pyHot |\n|---------------------------------|:-------------------------------:|:-------------------------------------:|\n| telco | 11.9 ms | 10.9 ms: 1.10x faster |\n| xml_etree_parse | 236 ms | 217 ms: 1.09x faster |\n| logging_format | 15.8 us | 15.0 us: 1.05x faster |\n| async_tree_eager | 145 ms | 138 ms: 1.05x faster |\n| async_tree_none_tg | 375 ms | 358 ms: 1.05x faster |\n| unpickle_list | 5.83 us | 5.57 us: 1.05x faster |\n| xml_etree_iterparse | 157 ms | 150 ms: 1.05x faster |\n| unpickle | 23.0 us | 22.0 us: 1.05x faster |\n| async_tree_memoization_tg | 460 ms | 442 ms: 1.04x faster |\n| xml_etree_generate | 142 ms | 137 ms: 1.04x faster |\n| nqueens | 125 ms | 120 ms: 1.04x faster |\n| async_tree_memoization | 490 ms | 472 ms: 1.04x faster |\n| async_tree_io | 876 ms | 844 ms: 1.04x faster |\n| logging_simple | 14.3 us | 13.8 us: 1.04x faster |\n| deepcopy_reduce | 3.92 us | 3.78 us: 1.04x faster |\n| crypto_pyaes | 104 ms | 101 ms: 1.04x faster |\n| pprint_pformat | 2.18 sec | 2.10 sec: 1.04x faster |\n| async_tree_none | 391 ms | 378 ms: 1.03x faster |\n| pprint_safe_repr | 1.06 sec | 1.02 sec: 1.03x faster |\n| async_tree_eager_memoization | 290 ms | 281 ms: 1.03x faster |\n| json_dumps | 16.5 ms | 16.0 ms: 1.03x faster |\n| fannkuch | 580 ms | 562 ms: 1.03x faster |\n| scimark_sparse_mat_mult | 5.76 ms | 5.59 ms: 1.03x faster |\n| async_tree_eager_io | 822 ms | 798 ms: 1.03x faster |\n| xml_etree_process | 96.4 ms | 93.7 ms: 1.03x faster |\n| async_tree_eager_tg | 307 ms | 299 ms: 1.03x faster |\n| scimark_fft | 481 ms | 470 ms: 1.03x faster |\n| coroutines | 31.9 ms | 31.2 ms: 1.02x faster |\n| async_tree_io_tg | 853 ms | 834 ms: 1.02x faster |\n| pathlib | 255 ms | 250 ms: 1.02x faster |\n| typing_runtime_protocols | 224 us | 220 us: 1.02x faster |\n| django_template | 53.7 ms | 52.8 ms: 1.02x faster |\n| sympy_expand | 650 ms | 640 ms: 1.02x faster |\n| unpickle_pure_python | 305 us | 300 us: 1.02x faster |\n| async_tree_eager_memoization_tg | 411 ms | 405 ms: 1.02x faster |\n| async_tree_cpu_io_mixed_tg | 752 ms | 741 ms: 1.02x faster |\n| chaos | 88.2 ms | 86.9 ms: 1.02x faster |\n| sqlite_synth | 3.57 us | 3.52 us: 1.01x faster |\n| tomli_loads | 2.70 sec | 2.66 sec: 1.01x faster |\n| pickle_pure_python | 444 us | 438 us: 1.01x faster |\n| sqlglot_normalize | 150 ms | 148 ms: 1.01x faster |\n| regex_compile | 171 ms | 169 ms: 1.01x faster |\n| mako | 17.3 ms | 17.1 ms: 1.01x faster |\n| sqlglot_parse | 1.67 ms | 1.65 ms: 1.01x faster |\n| sympy_sum | 211 ms | 208 ms: 1.01x faster |\n| hexiom | 8.26 ms | 8.19 ms: 1.01x faster |\n| sqlglot_transpile | 2.06 ms | 2.04 ms: 1.01x faster |\n| sqlglot_optimize | 74.0 ms | 73.4 ms: 1.01x faster |\n| python_startup | 43.2 ms | 42.9 ms: 1.01x faster |\n| async_generators | 540 ms | 536 ms: 1.01x faster |\n| gc_traversal | 4.82 ms | 4.79 ms: 1.01x faster |\n| comprehensions | 23.2 us | 23.1 us: 1.01x faster |\n| generators | 38.1 ms | 37.8 ms: 1.01x faster |\n| richards_super | 73.9 ms | 73.4 ms: 1.01x faster |\n| deepcopy | 376 us | 373 us: 1.01x faster |\n| genshi_text | 29.8 ms | 29.6 ms: 1.01x faster |\n| pickle_dict | 32.3 us | 32.2 us: 1.00x faster |\n| scimark_sor | 168 ms | 169 ms: 1.01x slower |\n| go | 145 ms | 146 ms: 1.01x slower |\n| pyflate | 596 ms | 602 ms: 1.01x slower |\n| logging_silent | 133 ns | 135 ns: 1.01x slower |\n| dulwich_log | 130 ms | 132 ms: 1.01x slower |\n| regex_v8 | 35.2 ms | 35.6 ms: 1.01x slower |\n| spectral_norm | 128 ms | 130 ms: 1.02x slower |\n| docutils | 3.60 sec | 3.66 sec: 1.02x slower |\n| sympy_integrate | 26.4 ms | 26.8 ms: 1.02x slower |\n| scimark_monte_carlo | 90.7 ms | 92.6 ms: 1.02x slower |\n| float | 102 ms | 105 ms: 1.02x slower |\n| 2to3 | 429 ms | 439 ms: 1.02x slower |\n| nbody | 151 ms | 155 ms: 1.03x slower |\n| genshi_xml | 71.7 ms | 74.2 ms: 1.04x slower |\n| Geometric mean | (ref) | 1.01x faster |\n\n| Benchmark | clang.pgo.19.1.1.92e5f826ac | clang.pgo.19.1.1.16a7f4607e.pyHot |\n|---------------------------|:---------------------------:|:---------------------------------:|\n| 2to3 | 465 ms | 380 ms: 1.22x faster |\n| async_generators | 506 ms | 490 ms: 1.03x faster |\n| coroutines | 27.1 ms | 26.4 ms: 1.03x faster |\n| pidigits | 233 ms | 228 ms: 1.02x faster |\n| pickle_dict | 27.8 us | 27.3 us: 1.02x faster |\n| sympy_sum | 187 ms | 184 ms: 1.02x faster |\n| typing_runtime_protocols | 186 us | 183 us: 1.02x faster |\n| raytrace | 309 ms | 305 ms: 1.02x faster |\n| unpickle | 16.6 us | 16.4 us: 1.01x faster |\n| genshi_xml | 60.4 ms | 59.5 ms: 1.01x faster |\n| regex_compile | 151 ms | 149 ms: 1.01x faster |\n| scimark_sparse_mat_mult | 4.82 ms | 4.77 ms: 1.01x faster |\n| unpack_sequence | 55.7 ns | 55.1 ns: 1.01x faster |\n| sqlglot_parse | 1.42 ms | 1.41 ms: 1.01x faster |\n| sqlglot_transpile | 1.75 ms | 1.73 ms: 1.01x faster |\n| telco | 9.01 ms | 8.91 ms: 1.01x faster |\n| logging_format | 12.9 us | 12.8 us: 1.01x faster |\n| unpickle_list | 5.04 us | 4.99 us: 1.01x faster |\n| nqueens | 95.3 ms | 94.4 ms: 1.01x faster |\n| async_tree_eager_io | 720 ms | 714 ms: 1.01x faster |\n| sympy_expand | 556 ms | 551 ms: 1.01x faster |\n| scimark_lu | 124 ms | 123 ms: 1.01x faster |\n| docutils | 3.09 sec | 3.07 sec: 1.01x faster |\n| chaos | 69.1 ms | 68.7 ms: 1.01x faster |\n| sqlglot_optimize | 63.5 ms | 63.1 ms: 1.01x faster |\n| sympy_integrate | 22.9 ms | 22.7 ms: 1.01x faster |\n| spectral_norm | 106 ms | 105 ms: 1.00x faster |\n| scimark_fft | 352 ms | 351 ms: 1.00x faster |\n| deepcopy | 298 us | 300 us: 1.00x slower |\n| generators | 34.0 ms | 34.2 ms: 1.01x slower |\n| meteor_contest | 119 ms | 119 ms: 1.01x slower |\n| logging_silent | 106 ns | 106 ns: 1.01x slower |\n| tomli_loads | 2.21 sec | 2.22 sec: 1.01x slower |\n| pickle_pure_python | 367 us | 369 us: 1.01x slower |\n| regex_effbot | 3.21 ms | 3.24 ms: 1.01x slower |\n| pyflate | 514 ms | 518 ms: 1.01x slower |\n| sqlite_synth | 3.41 us | 3.44 us: 1.01x slower |\n| deltablue | 3.66 ms | 3.69 ms: 1.01x slower |\n| unpickle_pure_python | 247 us | 249 us: 1.01x slower |\n| nbody | 126 ms | 128 ms: 1.01x slower |\n| scimark_sor | 140 ms | 141 ms: 1.01x slower |\n| mdp | 3.13 sec | 3.16 sec: 1.01x slower |\n| pprint_safe_repr | 891 ms | 899 ms: 1.01x slower |\n| go | 126 ms | 127 ms: 1.01x slower |\n| richards_super | 52.0 ms | 52.6 ms: 1.01x slower |\n| async_tree_eager | 116 ms | 117 ms: 1.01x slower |\n| regex_dna | 204 ms | 207 ms: 1.01x slower |\n| create_gc_cycles | 1.49 ms | 1.51 ms: 1.01x slower |\n| richards | 45.4 ms | 46.0 ms: 1.01x slower |\n| deepcopy_memo | 33.4 us | 34.1 us: 1.02x slower |\n| async_tree_eager_tg | 267 ms | 273 ms: 1.02x slower |\n| json_loads | 31.2 us | 31.9 us: 1.02x slower |\n| pprint_pformat | 1.79 sec | 1.85 sec: 1.03x slower |\n| gc_traversal | 5.03 ms | 5.28 ms: 1.05x slower |\n| xml_etree_parse | 208 ms | 220 ms: 1.06x slower |\n| async_tree_io | 759 ms | 832 ms: 1.10x slower |\n| asyncio_tcp | 1.38 sec | 1.52 sec: 1.10x slower |\n| xml_etree_process | 78.5 ms | 87.4 ms: 1.11x slower |\n| xml_etree_generate | 114 ms | 128 ms: 1.11x slower |\n| async_tree_memoization_tg | 392 ms | 449 ms: 1.15x slower |\n| async_tree_io_tg | 746 ms | 855 ms: 1.15x slower |\n| async_tree_memoization | 414 ms | 477 ms: 1.15x slower |\n| async_tree_none_tg | 325 ms | 382 ms: 1.17x slower |\n| xml_etree_iterparse | 141 ms | 172 ms: 1.22x slower |\n| Geometric mean | (ref) | 1.01x slower |\n\n| Benchmark | clang.release.20.1.0-rc2.92e5f826ac | clang.release.20.1.0-rc2.16a7f4607e.pyHot |\n|-------------------------------|:-----------------------------------:|:-----------------------------------------:|\n| spectral_norm | 139 ms | 124 ms: 1.13x faster |\n| pickle_list | 5.89 us | 5.46 us: 1.08x faster |\n| sqlite_synth | 3.71 us | 3.51 us: 1.06x faster |\n| pickle_dict | 32.3 us | 30.7 us: 1.05x faster |\n| unpickle | 20.8 us | 20.0 us: 1.04x faster |\n| json_loads | 43.0 us | 41.3 us: 1.04x faster |\n| unpickle_list | 5.35 us | 5.15 us: 1.04x faster |\n| mako | 16.9 ms | 16.3 ms: 1.04x faster |\n| pprint_safe_repr | 1.01 sec | 976 ms: 1.03x faster |\n| crypto_pyaes | 102 ms | 98.7 ms: 1.03x faster |\n| coverage | 111 ms | 108 ms: 1.03x faster |\n| coroutines | 30.3 ms | 29.5 ms: 1.03x faster |\n| telco | 10.4 ms | 10.2 ms: 1.03x faster |\n| json_dumps | 15.6 ms | 15.3 ms: 1.02x faster |\n| asyncio_websockets | 547 ms | 534 ms: 1.02x faster |\n| scimark_sparse_mat_mult | 5.94 ms | 5.81 ms: 1.02x faster |\n| pprint_pformat | 2.07 sec | 2.02 sec: 1.02x faster |\n| unpickle_pure_python | 300 us | 294 us: 1.02x faster |\n| xml_etree_parse | 218 ms | 214 ms: 1.02x faster |\n| xml_etree_generate | 135 ms | 133 ms: 1.02x faster |\n| async_generators | 510 ms | 501 ms: 1.02x faster |\n| typing_runtime_protocols | 217 us | 213 us: 1.02x faster |\n| mdp | 3.72 sec | 3.67 sec: 1.02x faster |\n| scimark_fft | 437 ms | 431 ms: 1.01x faster |\n| bench_thread_pool | 1.79 ms | 1.77 ms: 1.01x faster |\n| deepcopy_reduce | 3.71 us | 3.66 us: 1.01x faster |\n| docutils | 3.56 sec | 3.52 sec: 1.01x faster |\n| async_tree_memoization_tg | 433 ms | 428 ms: 1.01x faster |\n| sqlglot_transpile | 2.02 ms | 2.00 ms: 1.01x faster |\n| genshi_xml | 69.7 ms | 69.0 ms: 1.01x faster |\n| xml_etree_process | 92.2 ms | 91.3 ms: 1.01x faster |\n| fannkuch | 539 ms | 535 ms: 1.01x faster |\n| sqlglot_normalize | 144 ms | 143 ms: 1.01x faster |\n| float | 102 ms | 101 ms: 1.01x faster |\n| raytrace | 361 ms | 358 ms: 1.01x faster |\n| sqlglot_parse | 1.64 ms | 1.63 ms: 1.01x faster |\n| gc_traversal | 4.84 ms | 4.80 ms: 1.01x faster |\n| nqueens | 117 ms | 116 ms: 1.01x faster |\n| meteor_contest | 123 ms | 123 ms: 1.01x faster |\n| sqlglot_optimize | 71.4 ms | 71.1 ms: 1.00x faster |\n| comprehensions | 23.0 us | 22.9 us: 1.00x faster |\n| pidigits | 240 ms | 240 ms: 1.00x faster |\n| unpack_sequence | 55.0 ns | 55.2 ns: 1.00x slower |\n| chaos | 84.3 ms | 84.7 ms: 1.00x slower |\n| dulwich_log | 126 ms | 126 ms: 1.00x slower |\n| regex_compile | 165 ms | 166 ms: 1.00x slower |\n| hexiom | 8.01 ms | 8.07 ms: 1.01x slower |\n| async_tree_cpu_io_mixed_tg | 708 ms | 714 ms: 1.01x slower |\n| async_tree_eager | 134 ms | 135 ms: 1.01x slower |\n| richards_super | 73.2 ms | 73.9 ms: 1.01x slower |\n| deltablue | 4.31 ms | 4.35 ms: 1.01x slower |\n| asyncio_tcp_ssl | 3.59 sec | 3.64 sec: 1.01x slower |\n| 2to3 | 418 ms | 423 ms: 1.01x slower |\n| scimark_sor | 159 ms | 162 ms: 1.02x slower |\n| python_startup | 40.9 ms | 41.7 ms: 1.02x slower |\n| scimark_lu | 143 ms | 146 ms: 1.02x slower |\n| async_tree_eager_cpu_io_mixed | 551 ms | 565 ms: 1.03x slower |\n| go | 146 ms | 150 ms: 1.03x slower |\n| generators | 38.2 ms | 39.7 ms: 1.04x slower |\n| nbody | 136 ms | 142 ms: 1.05x slower |\n| Geometric mean | (ref) | 1.01x faster |\n\n| Benchmark | clang.pgo.20.1.0-rc2.92e5f826ac | clang.pgo.20.1.0-rc2.16a7f4607e.pyHot |\n|--------------------------|:-------------------------------:|:-------------------------------------:|\n| pickle_pure_python | 383 us | 364 us: 1.05x faster |\n| pprint_safe_repr | 863 ms | 840 ms: 1.03x faster |\n| regex_effbot | 3.20 ms | 3.13 ms: 1.02x faster |\n| pickle_list | 4.77 us | 4.66 us: 1.02x faster |\n| typing_runtime_protocols | 178 us | 174 us: 1.02x faster |\n| pprint_pformat | 1.78 sec | 1.74 sec: 1.02x faster |\n| xml_etree_generate | 110 ms | 108 ms: 1.02x faster |\n| richards | 45.1 ms | 44.3 ms: 1.02x faster |\n| scimark_sor | 138 ms | 136 ms: 1.01x faster |\n| gc_traversal | 5.21 ms | 5.15 ms: 1.01x faster |\n| xml_etree_process | 76.3 ms | 75.5 ms: 1.01x faster |\n| async_tree_eager | 113 ms | 111 ms: 1.01x faster |\n| xml_etree_parse | 202 ms | 201 ms: 1.01x faster |\n| nqueens | 92.3 ms | 91.4 ms: 1.01x faster |\n| coroutines | 24.9 ms | 24.7 ms: 1.01x faster |\n| mako | 13.4 ms | 13.3 ms: 1.01x faster |\n| meteor_contest | 118 ms | 118 ms: 1.00x faster |\n| unpickle_pure_python | 247 us | 246 us: 1.00x faster |\n| sqlglot_normalize | 120 ms | 119 ms: 1.00x faster |\n| deltablue | 3.69 ms | 3.71 ms: 1.00x slower |\n| sympy_integrate | 22.6 ms | 22.7 ms: 1.00x slower |\n| deepcopy | 289 us | 291 us: 1.01x slower |\n| sympy_sum | 181 ms | 182 ms: 1.01x slower |\n| unpack_sequence | 55.1 ns | 55.4 ns: 1.01x slower |\n| 2to3 | 370 ms | 373 ms: 1.01x slower |\n| asyncio_tcp_ssl | 3.52 sec | 3.55 sec: 1.01x slower |\n| sqlite_synth | 3.20 us | 3.22 us: 1.01x slower |\n| async_tree_eager_io | 701 ms | 707 ms: 1.01x slower |\n| sqlglot_parse | 1.38 ms | 1.40 ms: 1.01x slower |\n| pidigits | 228 ms | 230 ms: 1.01x slower |\n| async_tree_io_tg | 727 ms | 735 ms: 1.01x slower |\n| dulwich_log | 115 ms | 117 ms: 1.01x slower |\n| python_startup | 39.4 ms | 39.9 ms: 1.01x slower |\n| chaos | 67.0 ms | 67.9 ms: 1.01x slower |\n| raytrace | 299 ms | 303 ms: 1.01x slower |\n| nbody | 119 ms | 120 ms: 1.01x slower |\n| async_tree_eager_tg | 260 ms | 264 ms: 1.01x slower |\n| scimark_lu | 122 ms | 124 ms: 1.02x slower |\n| python_startup_no_site | 34.0 ms | 34.5 ms: 1.02x slower |\n| regex_dna | 204 ms | 208 ms: 1.02x slower |\n| crypto_pyaes | 81.1 ms | 82.7 ms: 1.02x slower |\n| scimark_fft | 341 ms | 349 ms: 1.02x slower |\n| scimark_sparse_mat_mult | 4.53 ms | 4.65 ms: 1.03x slower |\n| sympy_str | 320 ms | 329 ms: 1.03x slower |\n| bench_thread_pool | 1.63 ms | 1.68 ms: 1.03x slower |\n| deepcopy_reduce | 2.96 us | 3.06 us: 1.03x slower |\n| tomli_loads | 2.20 sec | 2.28 sec: 1.03x slower |\n| pathlib | 232 ms | 241 ms: 1.04x slower |\n| telco | 8.45 ms | 8.77 ms: 1.04x slower |\n| unpickle | 15.6 us | 16.2 us: 1.04x slower |\n| pickle | 13.5 us | 14.3 us: 1.05x slower |\n| async_tree_memoization | 405 ms | 428 ms: 1.06x slower |\n| async_tree_io | 740 ms | 784 ms: 1.06x slower |\n| Geometric mean | (ref) | 1.00x slower |\n\n\n\u003c/p\u003e\n\u003c/details\u003e \n\n\n### Has this already been discussed elsewhere?\n\nThis is a minor feature, which does not need previous discussion elsewhere\n\n### Links to previous discussion of this feature:\n\n_No response_\n\n\u003c!-- gh-linked-prs --\u003e\n### Linked PRs\n* gh-131019\n\u003c!-- /gh-linked-prs --\u003e\n","author":{"url":"https://github.com/chris-eibl","@type":"Person","name":"chris-eibl"},"datePublished":"2025-03-10T08:55:47.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/131033/cpython/issues/131033"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:7070ef76-39e7-effc-b114-dbaeaa02c38c |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | AA6A:2DE4E0:5EA12A:7C137E:696B4729 |
| html-safe-nonce | c8542727c4e301104b58053b759bd11fb5546b1ebca672d0f0b31be3ac3c3000 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBQTZBOjJERTRFMDo1RUExMkE6N0MxMzdFOjY5NkI0NzI5IiwidmlzaXRvcl9pZCI6IjgxMDI2NjM5ODcwMzI0NDI2NjUiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | da009812861b65cb0896edef7f8f00168a2ca19cce2e150053960e1132cce06d |
| hovercard-subject-tag | issue:2906525256 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/python/cpython/131033/issue_layout |
| twitter:image | https://opengraph.githubassets.com/5b72135774c1619c6542071e065153c0de39a3cc6990f24f6957ab277284732b/python/cpython/issues/131033 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/5b72135774c1619c6542071e065153c0de39a3cc6990f24f6957ab277284732b/python/cpython/issues/131033 |
| og:image:alt | Feature or enhancement Proposal: Here are a few optimizing macros, some of which clang under Linux does not "see", because https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | chris-eibl |
| hostname | github.com |
| expected-hostname | github.com |
| None | 5f99f7c1d70f01da5b93e5ca90303359738944d8ab470e396496262c66e60b8d |
| turbo-cache-control | no-preview |
| go-import | github.com/python/cpython git https://github.com/python/cpython.git |
| octolytics-dimension-user_id | 1525981 |
| octolytics-dimension-user_login | python |
| octolytics-dimension-repository_id | 81598961 |
| octolytics-dimension-repository_nwo | python/cpython |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 81598961 |
| octolytics-dimension-repository_network_root_nwo | python/cpython |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 82560a55c6b2054555076f46e683151ee28a19bc |
| ui-target | canary-1 |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width