[Python-Dev] RELEASED Python 2.3 (final)

Barry A. Warsaw barry@python.org
Tue, 29 Jul 2003 20:02:26 -0400


On behalf of the Python development team and the Python community, I'm
happy to announce the release of Python 2.3 (final).

Nineteen months in the making, Python 2.3 represents a commitment to
stability and improved performance, with a minimum of new language
features.  Countless bugs and memory leaks have been fixed, many new
and updated modules have been added, and the new type/class system
introduced in Python 2.2 has been significantly improved.  Python 2.3
can be up to 30% faster than Python 2.2.

For more information on Python 2.3, including download links for
various platforms, release notes, and known issues, please see:

    http://www.python.org/2.3

Highlights of this new release include:

- A brand new version of IDLE, the Python IDE, from the IDLEfork
  project at SourceForge.

- Many new and improved library modules including: sets, heapq,
  datetime, textwrap, optparse, logging, bsddb, bz2, tarfile,
  ossaudiodev, itertools, platform, csv, timeit, shelve,
  DocXMLRPCServer, imaplib, imp, trace, and a new random number
  generator based on the highly acclaimed Mersenne Twister algorithm
  (with a period of 2**19937-1).  Some obsolete modules have been
  deprecated.

- New and improved built-ins including:
    o enumerate(): an iterator yielding (index, item) pairs
    o sum(): a new function to sum a sequence of numbers
    o basestring: an abstract base string type for str and unicode
    o bool: a proper type with instances True and False
    o compile(), eval(), exec: fully support Unicode, and allow input
      not ending in a newline
    o range(): support for long arguments (magnitude > sys.maxint)
    o dict(): new constructor signatures
    o filter(): returns Unicode when the input is Unicode
    o int() can now return long
    o isinstance(), super(): Now support instances whose type() is not
      equal to their __class__.  super() no longer ignores data
      descriptors, except for __class__.
    o raw_input(): can now return Unicode objects
    o slice(), buffer(): are now types rather than functions

- Many new doctest extensions, allowing them to be run by unittest.

- Extended slices, e.g. "hello"[::-1] returns "olleh".

- Universal newlines mode for reading files (converts \r, \n and \r\n
  all into \n).

- Source code encoding declarations.  (PEP 263)

- Import from zip files.  (PEP 273 and PEP 302)

- FutureWarning issued for "unsigned" operations on ints.  (PEP 237)

- Faster list.sort() is now stable.

- Unicode filenames on Windows.  (PEP 227)

- Karatsuba long multiplication (running time O(N**1.58) instead of
  O(N**2)).

- pickle, cPickle, and copy support a new pickling protocol for more
  efficient pickling of (especially) new-style class instances.

- The socket module now supports optional timeouts on all operations.

- ssl support has been incorporated into the Windows installer.

- Many improvements to Tkinter.

Python 2.3 contains many other improvements, including the adoption of
many Python Enhancement Proposals (PEPs).  For details see:

    http://www.python.org/2.3/highlights.html

Enjoy.

happy-50th-birthday-geddy-ly y'rs,
-Barry

Barry Warsaw
barry@python.org
Python 2.3 Release Manager
(and the PythonLabs team: Tim, Fred, Jeremy, and Guido)