diff options
author | Michael Droettboom <mdboom@gmail.com> | 2025-03-27 13:57:06 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-03-27 13:57:06 (GMT) |
commit | 8614f86b7163b1c39798b481902dbb511292a537 (patch) | |
tree | 2bf6a46b432df3d6bf01a4176f3a614a01c48566 /Include/internal/pycore_runtime_init.h | |
parent | cf5e438c0297954c4411c1c3ae4ba67a48b134ea (diff) | |
download | cpython-8614f86b7163b1c39798b481902dbb511292a537.zip cpython-8614f86b7163b1c39798b481902dbb511292a537.tar.gz cpython-8614f86b7163b1c39798b481902dbb511292a537.tar.bz2 |
gh-131525: Cache the result of tuple_hash (#131529)
* gh-131525: Cache the result of tuple_hash
* Fix debug builds
* Add blurb
* Fix formatting
* Pre-compute empty tuple singleton
* Mostly set the cache within tuple_alloc
* Fixes for TSAN
* Pre-compute empty tuple singleton
* Fix for 32-bit platforms
* Assert that op != NULL in _PyTuple_RESET_HASH_CACHE
* Use FT_ATOMIC_STORE_SSIZE_RELAXED macro
* Update Include/internal/pycore_tuple.h
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
* Fix alignment
* atomic load
* Update Objects/tupleobject.c
Co-authored-by: Chris Eibl <138194463+chris-eibl@users.noreply.github.com>
---------
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Co-authored-by: Chris Eibl <138194463+chris-eibl@users.noreply.github.com>
Diffstat (limited to 'Include/internal/pycore_runtime_init.h')
-rw-r--r-- | Include/internal/pycore_runtime_init.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/Include/internal/pycore_runtime_init.h b/Include/internal/pycore_runtime_init.h index 8f866fd..2b2e439 100644 --- a/Include/internal/pycore_runtime_init.h +++ b/Include/internal/pycore_runtime_init.h @@ -27,6 +27,7 @@ extern "C" { #include "pycore_runtime_init_generated.h" // _Py_bytes_characters_INIT #include "pycore_signal.h" // _signals_RUNTIME_INIT #include "pycore_tracemalloc.h" // _tracemalloc_runtime_state_INIT +#include "pycore_tuple.h" // _PyTuple_HASH_EMPTY extern PyTypeObject _PyExc_MemoryError; @@ -106,6 +107,7 @@ extern PyTypeObject _PyExc_MemoryError; }, \ .tuple_empty = { \ .ob_base = _PyVarObject_HEAD_INIT(&PyTuple_Type, 0), \ + .ob_hash = _PyTuple_HASH_EMPTY, \ }, \ .hamt_bitmap_node_empty = { \ .ob_base = _PyVarObject_HEAD_INIT(&_PyHamt_BitmapNode_Type, 0), \ |