[Python-checkins] cpython: Following issue #13390, fix compilation --without-pymalloc, and make

Andrew Svetlov andrew.svetlov at gmail.com
Tue Dec 18 13:28:59 CET 2012


Looks like Windows buildbots broken by this commit.

On Tue, Dec 18, 2012 at 12:07 AM, antoine.pitrou
<python-checkins at python.org> wrote:
> http://hg.python.org/cpython/rev/a85673b55177
> changeset:   80923:a85673b55177
> user:        Antoine Pitrou <solipsis at pitrou.net>
> date:        Mon Dec 17 23:05:59 2012 +0100
> summary:
>   Following issue #13390, fix compilation --without-pymalloc, and make sys.getallocatedblocks() return 0 in that situation.
>
> files:
>   Doc/library/sys.rst  |  15 ++++++++-------
>   Lib/test/test_sys.py |   7 ++++++-
>   Objects/obmalloc.c   |   7 +++++++
>   3 files changed, 21 insertions(+), 8 deletions(-)
>
>
> diff --git a/Doc/library/sys.rst b/Doc/library/sys.rst
> --- a/Doc/library/sys.rst
> +++ b/Doc/library/sys.rst
> @@ -396,16 +396,17 @@
>  .. function:: getallocatedblocks()
>
>     Return the number of memory blocks currently allocated by the interpreter,
> -   regardless of their size.  This function is mainly useful for debugging
> -   small memory leaks.  Because of the interpreter's internal caches, the
> -   result can vary from call to call; you may have to call
> -   :func:`_clear_type_cache()` to get more predictable results.
> +   regardless of their size.  This function is mainly useful for tracking
> +   and debugging memory leaks.  Because of the interpreter's internal
> +   caches, the result can vary from call to call; you may have to call
> +   :func:`_clear_type_cache()` and :func:`gc.collect()` to get more
> +   predictable results.
> +
> +   If a Python build or implementation cannot reasonably compute this
> +   information, :func:`getallocatedblocks()` is allowed to return 0 instead.
>
>     .. versionadded:: 3.4
>
> -   .. impl-detail::
> -      Not all Python implementations may be able to return this information.
> -
>
>  .. function:: getcheckinterval()
>
> diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py
> --- a/Lib/test/test_sys.py
> +++ b/Lib/test/test_sys.py
> @@ -7,6 +7,7 @@
>  import operator
>  import codecs
>  import gc
> +import sysconfig
>
>  # count the number of test runs, used to create unique
>  # strings to intern in test_intern()
> @@ -616,9 +617,13 @@
>                           "sys.getallocatedblocks unavailable on this build")
>      def test_getallocatedblocks(self):
>          # Some sanity checks
> +        with_pymalloc = sysconfig.get_config_var('WITH_PYMALLOC')
>          a = sys.getallocatedblocks()
>          self.assertIs(type(a), int)
> -        self.assertGreater(a, 0)
> +        if with_pymalloc:
> +            self.assertGreater(a, 0)
> +        else:
> +            self.assertEqual(a, 0)
>          try:
>              # While we could imagine a Python session where the number of
>              # multiple buffer objects would exceed the sharing of references,
> diff --git a/Objects/obmalloc.c b/Objects/obmalloc.c
> --- a/Objects/obmalloc.c
> +++ b/Objects/obmalloc.c
> @@ -1316,6 +1316,13 @@
>  {
>      PyMem_FREE(p);
>  }
> +
> +Py_ssize_t
> +_Py_GetAllocatedBlocks(void)
> +{
> +    return 0;
> +}
> +
>  #endif /* WITH_PYMALLOC */
>
>  #ifdef PYMALLOC_DEBUG
>
> --
> Repository URL: http://hg.python.org/cpython
>
> _______________________________________________
> Python-checkins mailing list
> Python-checkins at python.org
> http://mail.python.org/mailman/listinfo/python-checkins
>



-- 
Thanks,
Andrew Svetlov


More information about the Python-checkins mailing list