[Python-Dev] RFC: PEP 445: Add new APIs to customize Python memory allocators

Antoine Pitrou solipsis at pitrou.net
Wed Jun 19 18:22:29 CEST 2013


On Wed, 19 Jun 2013 17:49:02 +0200
Victor Stinner <victor.stinner at gmail.com> wrote:

> 2013/6/19 Antoine Pitrou <solipsis at pitrou.net>:
> > On Wed, 19 Jun 2013 17:24:21 +0200
> >> >> Drawback: the caller has to check if the result is 0, or handle the
> >> >> error.
> >> >
> >> > Or you can just call Py_FatalError() if the domain is invalid.
> >>
> >> I don't like Py_FatalError(), especially when Python is embedded. It's
> >> safer to return -1 and expect the caller to check for the error case.
> >
> > I don't think you need to check for errors. The domain is always one of
> > the existing constants, i.e. it should be hard-coded in the source, not
> > computed.
> 
> Imagine that PyMem_GetBlockAllocator() is part of the stable ABI and
> that a new domain is added to Python 3.5. An application is written
> for Python 3.5 and is run with Python 3.4: how would the application
> notice that PyMem_GetBlockAllocator() does not know the new domain?

That's a good question. I don't know why guidelines Martin used when
designing the stable ABI, but I would expect important high-level
functions to end there, not memory allocation debugging.

Regards

Antoine.


More information about the Python-Dev mailing list