diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2017-11-29 16:20:38 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-29 16:20:38 (GMT) |
commit | 5d39e0429029324cae90bba2f19fb689b007c7d6 (patch) | |
tree | d414a4bc635c750d07c93d94835d932d3524c062 /Doc/using | |
parent | c15bb49d71f97d400b295d88e5b075e89cb8ba20 (diff) | |
download | cpython-5d39e0429029324cae90bba2f19fb689b007c7d6.zip cpython-5d39e0429029324cae90bba2f19fb689b007c7d6.tar.gz cpython-5d39e0429029324cae90bba2f19fb689b007c7d6.tar.bz2 |
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
Diffstat (limited to 'Doc/using')
-rw-r--r-- | Doc/using/cmdline.rst | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/Doc/using/cmdline.rst b/Doc/using/cmdline.rst index d022e2c..e6189fd 100644 --- a/Doc/using/cmdline.rst +++ b/Doc/using/cmdline.rst @@ -687,6 +687,8 @@ conflict. Set the family of memory allocators used by Python: + * ``default``: use the :ref:`default memory allocators + <default-memory-allocators>`. * ``malloc``: use the :c:func:`malloc` function of the C library for all domains (:c:data:`PYMEM_DOMAIN_RAW`, :c:data:`PYMEM_DOMAIN_MEM`, :c:data:`PYMEM_DOMAIN_OBJ`). @@ -696,20 +698,17 @@ conflict. Install debug hooks: - * ``debug``: install debug hooks on top of the default memory allocator + * ``debug``: install debug hooks on top of the :ref:`default memory + allocators <default-memory-allocators>`. * ``malloc_debug``: same as ``malloc`` but also install debug hooks * ``pymalloc_debug``: same as ``pymalloc`` but also install debug hooks - When Python is compiled in release mode, the default is ``pymalloc``. When - compiled in debug mode, the default is ``pymalloc_debug`` and the debug hooks - are used automatically. + See the :ref:`default memory allocators <default-memory-allocators>` and the + :c:func:`PyMem_SetupDebugHooks` function (install debug hooks on Python + memory allocators). - If Python is configured without ``pymalloc`` support, ``pymalloc`` and - ``pymalloc_debug`` are not available, the default is ``malloc`` in release - mode and ``malloc_debug`` in debug mode. - - See the :c:func:`PyMem_SetupDebugHooks` function for debug hooks on Python - memory allocators. + .. versionchanged:: 3.7 + Added the ``"default"`` allocator. .. versionadded:: 3.6 |