Skip to content

gh-106320: Move private _PyHash API to the internal C API - #107026

Merged
vstinner merged 1 commit into
python:mainfrom
vstinner:pycore_pyhash
Jul 22, 2023
Merged

gh-106320: Move private _PyHash API to the internal C API#107026
vstinner merged 1 commit into
python:mainfrom
vstinner:pycore_pyhash

Conversation

@vstinner

@vstinnervstinner commented Jul 22, 2023

Copy link
Copy Markdown
Member
  • No longer export most private _PyHash symbols, only export the ones which are needed by shared extensions.
  • Modules/_xxtestfuzz/fuzzer.c now uses the internal C API.

* No longer export most private _PyHash symbols, only export the ones
which are needed by shared extensions.
* Modules/_xxtestfuzz/fuzzer.c now uses the internal C API.
@vstinner
vstinner requested a review from tiran as a code ownerJuly 22, 2023 13:22
@vstinner
vstinner enabled auto-merge (squash) July 22, 2023 13:28
@vstinner
vstinner merged commit 89f9875 into python:mainJul 22, 2023
@vstinner
vstinner deleted the pycore_pyhash branch July 22, 2023 14:04
illia-v added a commit to illia-v/oss-fuzz that referenced this pull request Jul 28, 2023
`Modules/_xxtestfuzz/fuzzer.c` in CPython started using private API in python/cpython@89f9875#diff-a22ac7579f23068e0c6bcacf1086ee962fdf8e68725cf0510b42d0a389cf1efd.
This made fuzzing builds fail https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=60831.
Including needed header files fixes the error.
jonathanmetzman pushed a commit to google/oss-fuzz that referenced this pull request Jul 31, 2023
`Modules/_xxtestfuzz/fuzzer.c` in CPython started using private API in
python/cpython@89f9875#diff-a22ac7579f23068e0c6bcacf1086ee962fdf8e68725cf0510b42d0a389cf1efd.
This made fuzzing builds fail
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=60831.
Including needed header files fixes the error.
@skirpichev

Copy link
Copy Markdown
Member

Again, as in #108604, the gmpy2 uses some parts of this API, e.g. to hash mpz like int. Meanwhile I did gmpy2/gmpy2#441 to workaround removed API. @vstinner, what we could do instead?

@vstinner

Copy link
Copy Markdown
MemberAuthor

Again, as in #108604, the gmpy2 uses some parts of this API, e.g. to hash mpz like int. Meanwhile I did gmpy2/gmpy2#441 to workaround removed API. @vstinner, what we could do instead?

Would you mind to open a new issue, give the exhaustive list of functions that you need, and which API do you expect?

skirpichev added a commit to skirpichev/cpython that referenced this pull request Oct 28, 2023
dmrlawson pushed a commit to dmrlawson/capnpy that referenced this pull request Jun 9, 2025
_Py_HashBytes was hidden in 3.13 (python/cpython#107026).
> C assumes that any function with an "implicit declaration" returns an int, which'll be smaller than a Py_hash_t, hence the different results. (https://groups.google.com/g/cython-users/c/YQkU8oc8oSM/m/nVJ_IX8KAgAJ)
dmrlawson pushed a commit to dmrlawson/capnpy that referenced this pull request Jun 9, 2025
_Py_HashBytes was hidden in 3.13 (python/cpython#107026).
> C assumes that any function with an "implicit declaration" returns an int, which'll be smaller than a Py_hash_t, hence the different results. (https://groups.google.com/g/cython-users/c/YQkU8oc8oSM/m/nVJ_IX8KAgAJ)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@vstinner@skirpichev@bedevere-bot