[Python-Dev] python-dev Summary for 2004-05-01 through 2004-05-31 [draft]

Brett bac at OCF.Berkeley.EDU
Sun Jun 13 23:55:16 EDT 2004

Thanks to a change in the IMAP server used for my email I have switched 
to Apple Mail to do this summary.  May have missed some threads, but if 
I did miss anything I will get to them in the next summary.

I probably won't get to sending out this summary until the latter half 
of next week, so no huge rush on corrections.


Summary Announcements
The Spring quarter is now finished for me, so hopefully over the summer 
I can pull off a semi-monthly summaries again (work permitting).

2.3.4 was released during the coverage time of this summary.  Everyone 
should upgrade if possible to this bugfix release.

2.4a should be ready by mid-July.

The email server I use (not under my control) decided to change their 
IMAP server.  Unfortunately it is not playing nicely with Thunderbird 
or the mbox format, so I am being forced to use Apple Mail in order to 
delete emails.  Since I am not used to Mail's threading I may have 
missed some threads.  If I did, sorry about that and they will be 
covered in the next summary.

Generator expressions are in!
Generator expressions have been checked in.  They are currently using 
late bindings (see the `last summary`_ for an explanation of what that 
means).  If using late binding semantics doesn't work for you, do 
express your opinion since it can be changed before the beta is 

Contributing threads:
   - `PEP 289 - Generator Expressions 
   - `PEP 289 - Generator Expressions - Let's Move For ward 

Following the docs, not the implementation
What happens if you rely on an implementation when the documentation 
explicitly states the semantics in another way?  Well, "you will pay 
for your sin in a special kind of hell set aside for people who take 
the implementation as the spec" according to Guido.  Some things in 
CPython go against the spec for performance reasons, but there is 
nothing stopping from it being changed at another point to more closely 
follow the spec.

Contributing threads:
   - `Passing compile(...,'exec') code to 'eval' 

What you need to get a module into the stdlib
In order to prevent the stdlib from getting bloated with unneeded 
modules, new ones need to have seen use "in the field", as Guido put 

Contributing threads:
   - `New Subscriber 

2.3.4 is out the door
Python 2.3.4 has been released.  Being a bugfix there are no new 
features.  It is recommended that everyone upgrade to this version.

Contributing threads:
   - `Python 2.3.4 schedule 
   - `release23-maint tree closed for 2.3.4rc1 
   - `Python 2.3.4, release candidate 1 - BUG FIX 
   - `python 2.3.4 delayed for a week 
   - `2.3.4 release this thursday 
   - `ELEASED Python 2.3.4 (final) 

IPv6 for Windows in 2.4
For those of you wanting IPv6 support on Windows in the binary build, 
you will get in 2.4 .  The reason it isn't in 2.3.x is that the branch 
is compiled with VC 6 which can only compile in IPv6 support with a 
separate SDK.  VC 7, on the other hand, does not have this issue.

Contributing threads:
   - `IPv6 support in Win binary again 

cookielib in the stdlib
A module named cookielib was added to the stdlib to allow transparent 
handling of cookies for modules such as urllib2.

Contributing threads:
   - `cookielib module in 2.4? 
   - `cookielib 

cmp doesn't call __cmp__
It was pointed out that calling ``cmp(x,x)``` does not call 
``x.__cmp__(x)`` but instead uses PyObject_RichCompareBool().  The 
issue with this is that PyObject_RichCompareBool() has a short-circuit 
for when the object being compared is the same, thus skipping a 
possible call to x.__cmp__ and saving some time.

This can be an issue, though, if you want something other than True or 
False to be returned.  Basically what came out of this thread was that 
C functions can short-circuit comparisons so be careful if you want to 
make sure that __cmp__ is called; use '==' and the other comparison 
operators instead.

Contributing threads:
   - `cmp(x,x) 

Posssible improvements to import.c
Tim Peters asked if anyone knew the working details of import.c; no one 
spoke up.  The question was brought up because Tim would like to see 
failed imports not lead to mangled modules being in sys.modules and 
thus being considered properly imported.  The suggestion of also 
handling circular imports came up as well.

Contributing threads:
   - `import.c 

More information about the Python-Dev mailing list