RELEASED: Python 2.3b2

Barry Warsaw barry@python.org
29 Jun 2003 21:57:43 -0400


Python 2.3b2 is the second beta release of Python 2.3.  There have be a
slew of fixes since the first beta, and a few new "features".  Our goal
is to have a final Python 2.3 release by early August, so we encourage
lots of testing for this beta.  Highlights since beta 1 include:

- IDLEfork has been merged in and now replaces the old IDLE.

- The Windows installer now ships with Tcl/Tk 8.4.3.

- list.index() has grown optional `start' and `end' arguments.

- A new C-only API function PyThreadState_SetAsyncExc() which can be
  used to interrupt threads by sending them exceptions.

- Python programs can enter the interactive prompt at program exit by 
  setting the PYTHONINSPECT environment variable.

- Many new doctest improvements, including the ability to write doctest
  based unit tests.

- New and improved documentation for writing new types in C that 
  participate in cyclic garbage collection.

There is at least one known bug: we have seen crashes on both Windows
and Linux with certain interactions between test_logging and
test_bsddb3.  We intend to fix this for the next release. 

For more highlights, see http://www.python.org/2.3/highlights.html

Other new stuff since Python 2.2:

- Many new and improved library modules, e.g. sets, heapq, datetime,
  textwrap, optparse, logging, bsddb, bz2, tarfile,
  ossaudiodev, and a new random number generator based on the highly
  acclaimed Mersenne Twister algorithm (with a period of 2**19937-1!).

- New builtin enumerate(): an iterator yielding (index, item) pairs.

- 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.

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

If you have an important Python application, we strongly recommend that
you try it out with a beta release and report any incompatibilities or
other problems you may encounter, so that they can be fixed before the
final release.  To report problems, use the SourceForge bug tracker:

  http://sourceforge.net/tracker/?group_id=5470&atid=105470

Enjoy,
-Barry