[Python-Dev] versioned .so files for Python 3.2

"Martin v. Löwis" martin at v.loewis.de
Sat Aug 28 12:29:04 CEST 2010


>> This leads me to a question: how do these configure options affect the
>> PEP 384 stable ABI? That PEP is currently silent on the issue, while
>> PEP 3149 appears to implicitly assume that "abi3" completely specifies
>> the ABI.
> 
> It's a great question - perhaps Martin can chime in?  It may be that 'abiX'
> isn't enough to fully specify compatible extension modules even when that
> module is written entirely and solely against PEP 384.  In that case, we may
> need to include the configure flags in the tag, e.g. foo.abi3-dmu.so.

The intention is that there is indeed just one stable ABI, so one
configuration is the supported one, and that should be the "default"
build.

As for the specific settings, my analysis would be this:
- pydebug: not supported by the stable ABI, as it changes the layout
  of PyObject, which is an exposed structure
  More specifically: Py_DEBUG, Py_TRACEREFS and Py_REF_DEBUG are
  all incompatible with the stable ABI
- pymalloc: I fail to see the impact on the ABI. All allocator
  macros become function calls under Py_LIMITED_API, otherwise,
  there shouldn't be any need to have different versions of that.
- wide-unicode: this is a tricky one. I'm tempted to say that the
  stable ABI should always use a Py_UNICODE that matches the platform's
  wchar_t. Alternative proposals are welcome.

Regards,
Martin


More information about the Python-Dev mailing list