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.
Summaries
=========
-----------------------------
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
released.
Contributing threads:
- `PEP 289 - Generator Expressions
<http://mail.python.org/pipermail/python-dev/2004-May/044684.html>`__
- `PEP 289 - Generator Expressions - Let's Move For ward
<http://mail.python.org/pipermail/python-dev/2004-May/044643.html>`__
------------------------------------------
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'
<http://mail.python.org/pipermail/python-dev/2004-May/044683.html>`__
---------------------------------------------
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
it.
Contributing threads:
- `New Subscriber
<http://mail.python.org/pipermail/python-dev/2004-May/044709.html>`__
---------------------
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
<http://mail.python.org/pipermail/python-dev/2004-May/044661.html>`__
- `release23-maint tree closed for 2.3.4rc1
<http://mail.python.org/pipermail/python-dev/2004-May/044771.html>`__
- `Python 2.3.4, release candidate 1 - BUG FIX
<http://mail.python.org/pipermail/python-dev/2004-May/044854.html>`__
- `python 2.3.4 delayed for a week
<http://mail.python.org/pipermail/python-dev/2004-May/044921.html>`__
- `2.3.4 release this thursday
<http://mail.python.org/pipermail/python-dev/2004-May/044954.html>`__
- `ELEASED Python 2.3.4 (final)
<http://mail.python.org/pipermail/python-dev/2004-May/044984.html>`__
-----------------------
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
<http://mail.python.org/pipermail/python-dev/2004-May/044779.html>`__
-----------------------
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?
<http://mail.python.org/pipermail/python-dev/2004-May/044785.html>`__
- `cookielib
<http://mail.python.org/pipermail/python-dev/2004-May/045015.html>`__
------------------------
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)
<http://mail.python.org/pipermail/python-dev/2004-May/044885.html>`__
----------------------------------
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
<http://mail.python.org/pipermail/python-dev/2004-May/044998.html>`__