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

Barry Warsaw barry at python.org
Fri Jun 25 22:59:44 CEST 2010


On Jun 24, 2010, at 11:37 PM, Éric Araujo wrote:

>Your plan seems good. Adding keyword arguments should not create
>compatibility issues, and I suspect the impact on the code of build_ext
>may be actually quite small. I’ll try to review your patch even though I
>don’t know C or compiler oddities, but Tarek will have the best insight
>and the final word.

The C and configure/Makefile bits are pretty trivial.  It basically extends
the list of shared library extensions searched for on *nix machines, and
allows that to be set on the ./configure command.

As for the impact on distutils, with updated tests, it's less than 100 lines
of diff.  Again there it essentially allows us to pass the extension that
build_ext writes to from the setup.py, via the Extension class.

Because distutil's default is to use the $SO variable from the
system-installed Makefile, with the change to dynload_shlib.c, configure.in,
and Makefile.pre.in, we would get distutils writing the versioned .so files
for free.  I'll note further that if you *don't* specify this to ./configure,
nothing much changes[1].

The distutils part of the patch is only there to disable or override the
default, and *that's* only there to support proposed semantics that foo.so be
used for PEP 384-compliant ABI extension modules.

IOW, until PEP 384 is actually implemented, the distutils part of the patch is
unnecessary.  However, if the other changes are accepted, then I will add a
discussion of this issue to PEP 384, and we can figure out the best semantics
and implementation at that point.  I honestly don't know if I am going to get
to work on PEP 384 before 3.2 beta.

>In case the time machine’s not available, your suggestion about getting
>the filename from the Extension instance instead of passing in a string
>can most certainly land in distutils2.

Cool.

-Barry

[1] Well, I now realize you'll get an extra useless stat call, but I will fix
that.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/python-dev/attachments/20100625/72010618/attachment.pgp>


More information about the Python-Dev mailing list