[WIP] bpo-35265: Add _PyConfigCtx by vstinner · Pull Request #10574 · python/cpython (original) (raw)
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
[ Show hidden characters]({{ revealButtonHref }})
- Add _PyConfigCtx structure
- Add "ctx" context (_PyConfigCtx) to _PyCoreConfig, _PyPathConfig,
_Py_PreInit and PyCalculatePath. - Move _PyCoreConfig.utf8_mode into _PyConfigCtx
- Replace _PyCoreConfig_INIT with _PyCoreConfig_Init()
- Replace _PyPathConfig_INIT with _PyPathConfig_StaticInit()
- Add new functions:
- _PyMem_RawMallocCtx()
- _PyMem_RawCallocCtx()
- _PyMem_RawReallocCtx()
- _PyMem_RawFreeCtx()
- Add ctx paramter to functions:
- _Py_DecodeLocaleEx()
- _Py_EncodeLocaleEx()
- _PyMem_RawWcsdup()
- Use ctx in Python initialization code
https://bugs.python.org/issue35265
Add _PyConfigCtx structure
Add "ctx" context (_PyConfigCtx) to _PyCoreConfig, _PyPathConfig, _Py_PreInit and PyCalculatePath.
Move _PyCoreConfig.utf8_mode into _PyConfigCtx
Replace _PyCoreConfig_INIT with _PyCoreConfig_Init()
Replace _PyPathConfig_INIT with _PyPathConfig_StaticInit()
Add new functions:
- _PyMem_RawMallocCtx()
- _PyMem_RawCallocCtx()
- _PyMem_RawReallocCtx()
- _PyMem_RawFreeCtx()
Add ctx paramter to functions:
- _Py_DecodeLocaleEx()
- _Py_EncodeLocaleEx()
- _PyMem_RawWcsdup()
Use ctx in Python initialization code
"./python -m test -v test_cmd_line -m test_pythonmalloc" fails. There is very likely bugs somewhere in my change, but I mostly wrote this PR as proof-of-concept. It's not ready to be reviewed nor to be merged.
Fix "initializer is not a constant" error.
Honestly, I'm not convinced that the change is worth it. It looks like a giant complication for a very specific use case, whereas the current _PyMem_SetDefaultAllocator() solution "works". I close the PR.