[Python-Dev] public visibility of python-dev decisions "before it's too late" (was: PyCObject_AsVoidPtr removed from python 3.2 - is this documented?)
Larry Hastings
larry at hastings.org
Wed Mar 16 16:02:28 CET 2011
On 03/09/2011 01:15 AM, Stefan Behnel wrote:
> I can confirm that the Cython project was as surprised of the
> PyCapsule change in Python 3.2 as (I guess) most other users,
I was a bit surprised by it too, and I wrote the Capsule object. (Well,
hacked up CObject to give it a new API.)
PyCObject_AsVoidPtr emitted a PendingDeprecationWarning in 3.1. I was
surprised when it was removed completely in trunk shortly after the
release of 3.1. I thought it was supposed to get promoted to
DeprecationWarning in 3.2 and then removed in 3.3. But I'm not totally
familiar with the policy subtleties of CPython, and the CObject API had
enough flaws that I was happy to see it gone, so I kept a still tongue.
On 03/14/2011 06:30 PM, Lennart Regebro wrote:
> But if I move the PyCObject API to the PyCapsule
> API, the zope packages will **only work on Python 2.7 and 3.2**. This
> is obviously not an option. If I do *not* switch, I can't support
> Python 3.2. That's bad.
Sorry I didn't see your email until just now; I've been tuning out
python-dev for a while. Nick Coghlan brought this matter to my
attention just this morning.
The PyCapsule API is very much like the CObject API. In fact, in Python
3.1 CObject was actually implemented on top of PyCapsule. It should be
very easy to support both APIs.
Are you still at PyCon? I'm in the core / hg room, and I'd be happy to
help you get this code working for both 2.6 and 3.2.
> **We can't deprecate an API in one version and drop the API in the
> next. This is not acceptable. The deprecation period must be much
> longer!**
The one-year deprecation period seems to be in keeping with PEP 5, which
states
There must be at least a one-year transition period between the
release of the transitional version of Python and the release of the
backwards incompatible version.
> Let's make no bones about this: The PyCObject API should *not* have
> been removed in 3.2. In fact, the removal should be reversed, and
> 3.2.1 should be released ASAP, making 3.2 a moot and unsupported
> version.
I'm not a release manager for Python but I suspect this is unlikely.
Nick has convinced me that I should create the world's first "temporal
inversion" PEP, discussing the justification for adding the Capsule API
and (eventually) removing the CObject API. I expect the PEP to discuss
coping strategies on how to simultaneously support 2.6 and 3.2. I'm
enjoying PyCon too much to write the PEP this week, but I expect I can
have a draft up next week.
Personally I'm hoping the PEP will be rejected ;)
/larry/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20110316/1c036c03/attachment-0001.html>
More information about the Python-Dev
mailing list