◐ Shell
clean mode source ↗

gh-141226: correctly support `Py_HASH_EXTERNAL` for Unix platforms by picnixz · Pull Request #141245 · python/cpython

I will need to test this manually. However, do we have give docs for embedders that would provide custom implementations? It's really "figure how to link your embedded implementation but here's what you need to provide". Is it sufficient? PyHash_Func is defined in pyhash.c:

#if Py_HASH_ALGORITHM == Py_HASH_EXTERNAL
extern PyHash_FuncDef PyHash_Func;
#else
static PyHash_FuncDef PyHash_Func;
#endif

I guess it's sufficient if we use the correct linker flags but I'm not entirely sure whether I should document this as well. It's a really niche thing (and I'm not aware of anyone doing this; everyone uses the default hash functions that is siphash13 and this hash function is used by most programming languages and the Linux kernel so I don't see why someone would need to change this except for performance reasons such as SIMD implementations).

Note that we cannot just remove this feature because it's part of PEP-456. I can write a PEP to officially deprecate it but I don't think it's worth SC's or my time.

cc @encukou @vstinner


📚 Documentation preview 📚: https://cpython-previews--141245.org.readthedocs.build/