[Python-Dev] debug and release python
"Martin v. Löwis"
martin at v.loewis.de
Thu Jun 17 09:29:01 CEST 2010
>> 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.
Hmm. That's still not clear. What are "existing Python versions"?
You can't change them anymore; any change can only affect future,
as-of-yet-non-existing Python versions.
Also, what do you mean by "always"? Even in release builds?
Would this really help? You shouldn't be mixing PyObject_DebugMalloc
and PyObject_Malloc in a single process.
> 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!)
That sounds fine.
>> 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?
If you define Py_TRACE_REFS, every object has two additional pointers,
which aren't there if you don't. So extensions compiled with it are
incompatible with extensions compiled without it.
If you define COUNT_ALLOCS, every type object will have additional
slots; again, you can't mix extensions that have a different setting
here than the interpreter.
Regards,
Martin
More information about the Python-Dev
mailing list