[Python-Dev] asyncore fixes in Python 2.6 broke Zope's version of medusa

Chris McDonough chrism at plope.com
Wed Mar 4 22:27:35 CET 2009


Daniel Stutzbach wrote:
> On Wed, Mar 4, 2009 at 12:54 PM, Guido van Rossum <guido at python.org> wrote:
> 
>> The same as always. We don't change APIs in bugfix releases.
>>
> 
> This question is actually for the Zope folks and others who have had
> problems with the 2.6 asyncore/asynchat:
> 
> Are any of the problems due to a change in the documented API... or are they
> all due to changes in undocumented internals that your code relied on?

As far as I can tell, asyncore/asynchat is all "undocumented internals".  Any
use of asyncore in anger will use internals; there never was any well-understood
API to these modules.  Medusa itself (from which asyncore and asynchat were
derived) appears to itself break with the changes to asyncore/asynchat in 2.6
(at least it appears to use attributes like "ac_out_buffer" which were removed
in 2.6; this is not "Zope's version"; there is no such animal; this is plain old
Medusa 0.5.4).

Count me in as one who believes that it would be the lesser of two evils to
revert to the older (2.5 and prior) asyncore/asynchat implementations in 2.6.2
rather than soldiering on with the 2.6 and 2.6.1 implementation (which almost
certainly has fewer, if any, consumers); somebody messed up in 2.6 by making its
asyncore/asynchat more forward compatible with 3.0's than backwards compatible
with 2.5's and prior; this was just a mistake and keeping old code running
should trump any theoretical or puritanical benefit in a dot release.

- C



More information about the Python-Dev mailing list