[Python-Dev] debug and release python

Kristján Valur Jónsson kristjan at ccpgames.com
Wed Jun 16 10:42:07 CEST 2010



> -----Original Message-----
> From: "Martin v. Löwis" [mailto:martin at v.loewis.de]
> Sent: 15. júní 2010 21:20
> To: Kristján Valur Jónsson
> Cc: python-dev at python.org
> Subject: Re: [Python-Dev] debug and release python
> 
> Am 15.06.2010 14:48, schrieb Kristján Valur Jónsson:
> > What I mean is that a third party software vendor supplies a
> > foobarapp.pyd and a foobarapp_d.pyd dlls that link to python2x.dll
> > and python2x_d.dll respectively.  But the latter will have been
> > compiled to match a certain settings of the objimpl.h header, which
> > may not match whatever is being used to build the local
> > python2x_d.dll.  And thus, you get strange and hard to debug linker
> > errors when trying to load external libraries.
> 
> Ok. But your proposed change doesn't fix that, right?
> 
> I.e. even with the change, it would *still* depend on objimpl.h (and
> other) settings what ABI this debug DLL exactly has.
> 
I think it does.
My proposal was perhaps not clear:  For existing python versions, always export _PyObject_DebugMalloc et al. irrespective of the WITH_PYMALLOC and PYMALLOC_DEBUG settings.  (PyObject_Malloc()) is always exported, even for builds without WITH_PYMALLOC)
On new python versions, remove the _PyObject_DebugMalloc from the ABI.  Make the switch internal to obmalloc.c, so that you can turn on the debug library by recompiling pythonxx_d.dll only (currently, you have to recompile the .pyd files too!)

> But there are tons of ABI changes that may happen in a debug build.
> If you want to cope with all of them, you really need to recompile the
> source of all extensions.
Are there?  Can you give me an example?  I thought we were careful to keep the interface shown to pyd files constant regardless of configuration settings.

K


More information about the Python-Dev mailing list