]> granicus.if.org Git - python/commit
bpo-32030: Rework memory allocators (#4625)
authorVictor Stinner <victor.stinner@gmail.com>
Wed, 29 Nov 2017 16:20:38 +0000 (17:20 +0100)
committerGitHub <noreply@github.com>
Wed, 29 Nov 2017 16:20:38 +0000 (17:20 +0100)
commit5d39e0429029324cae90bba2f19fb689b007c7d6
treed414a4bc635c750d07c93d94835d932d3524c062
parentc15bb49d71f97d400b295d88e5b075e89cb8ba20
bpo-32030: Rework memory allocators (#4625)

* Fix _PyMem_SetupAllocators("debug"): always restore allocators to
  the defaults, rather than only caling _PyMem_SetupDebugHooks().
* Add _PyMem_SetDefaultAllocator() helper to set the "default"
  allocator.
* Add _PyMem_GetAllocatorsName(): get the name of the allocators
* main() now uses debug hooks on memory allocators if Py_DEBUG is
  defined, rather than calling directly malloc()
* Document default memory allocators in C API documentation
* _Py_InitializeCore() now fails with a fatal user error if
  PYTHONMALLOC value is an unknown memory allocator, instead of
  failing with a fatal internal error.
* Add new tests on the PYTHONMALLOC environment variable
* Add support.with_pymalloc()
* Add the _testcapi.WITH_PYMALLOC constant and expose it as
   support.with_pymalloc().
* sysconfig.get_config_var('WITH_PYMALLOC') doesn't work on Windows, so
   replace it with support.with_pymalloc().
* pythoninfo: add _testcapi collector for pymem
14 files changed:
Doc/c-api/memory.rst
Doc/using/cmdline.rst
Include/pymem.h
Lib/test/pythoninfo.py
Lib/test/support/__init__.py
Lib/test/test_capi.py
Lib/test/test_cmd_line.py
Lib/test/test_sys.py
Modules/_testcapimodule.c
Modules/main.c
Objects/obmalloc.c
Programs/python.c
Python/pylifecycle.c
Python/pystate.c