.. bpo: 2719
.. date: 6897
.. nonce: 4NH_Xn
.. release date: 08-May-2008
.. section: Core and Builtins

backported the ``next()`` builtin from Python 3.

..

.. bpo: 2681
.. date: 6896
.. nonce: 8UXx90
.. section: Core and Builtins

The octal literal ``0o8`` was incorrecly acctepted. Now it properly raises a
SyntaxError.

..

.. bpo: 2617
.. date: 6895
.. nonce: 1gTS6r
.. section: Core and Builtins

Reserved -J and -X arguments for Jython, IronPython and other
implementations of Python.

..

.. bpo: 0
.. date: 6894
.. nonce: aRO9gE
.. section: Core and Builtins

Implemented PEP 370: Per user site-packages directory.

..

.. bpo: 2670
.. date: 6893
.. nonce: VM2Luj
.. section: Library

Fix a failure in urllib2.build_opener(), when passed two handlers that
derive the same default base class.

..

.. bpo: 0
.. date: 6892
.. nonce: 7fblHZ
.. section: Library

Added kill, terminate and send_signal(sig) to subprocess.Popen.

..

.. bpo: 0
.. date: 6891
.. nonce: 88WSiY
.. section: Library

Added phase(z) -> phi, polar(z) -> r, phi and rect(r, phi) -> z to the cmath
module.

..

.. bpo: 0
.. date: 6890
.. nonce: 6dejMd
.. section: Library

Four new methods were added to the math and cmath modules: acosh, asinh,
atanh and log1p.

..

.. bpo: 0
.. date: 6889
.. nonce: v-VAd8
.. section: Library

zlib.decompressobj().flush(value) no longer crashes the interpreter when
passed a value less than or equal to zero.

..

.. bpo: 1631171
.. date: 6888
.. nonce: 8Bc0Zl
.. section: Library

Re-implement the 'warnings' module in C (the original Python code has been
kept as backup). This will allow for using the 'warning's machinery in such
places as the parser where use of pure Python code is not possible.  Both
the ``showarning()`` and ``formatwarning()`` gain an optional 'line'
argument which is not called by default for backwards-compatibility reasons.
Setting ``warnings.showwarning()`` to an implementation that lacks support
for the ``line`` argument will raise a DeprecationWarning.

..

.. bpo: 0
.. date: 6887
.. nonce: CNqdrb
.. section: Library

The audiodev module has been deprecated for removal in Python 3.0.

..

.. bpo: 2750
.. date: 6886
.. nonce: nv-hkg
.. section: Library

Add the 'json' package. Based on simplejson 1.9 and contributed by Bob
Ippolito.

..

.. bpo: 1734346
.. date: 6885
.. nonce: lfR8ca
.. section: Library

Support Unicode file names for zipfiles.

..

.. bpo: 2581
.. date: 6884
.. nonce: fOkdCT
.. section: Library

distutils: Vista UAC/elevation support for bdist_wininst.

..

.. bpo: 2635
.. date: 6883
.. nonce: F8Y92w
.. section: Library

Fix bug in 'fix_sentence_endings' textwrap.fill option, where an extra space
was added after a word containing (but not ending in) '.', '!' or '?'.

..

.. bpo: 0
.. date: 6882
.. nonce: lYk3LA
.. section: Library

Add from_buffer() and from_buffer_copy() class methods to ctypes data types.

..

.. bpo: 2682
.. date: 6881
.. nonce: NLrJe2
.. section: Library

ctypes callback functions no longer contain a cyclic reference to
themselves.

..

.. bpo: 0
.. date: 6880
.. nonce: TTWJof
.. section: Library

The getpass module has been improved on Unix.  It now uses /dev/tty by
default and uses stderr instead of stdout.  A GetPassWarning is issued when
input echo cannot be controlled.

..

.. bpo: 2014
.. date: 6879
.. nonce: CKvu6Y
.. section: Library

Allow XML-RPC datetime objects to have dates before 1900-01-01.

..

.. bpo: 2439
.. date: 6878
.. nonce: Kwwv4U
.. section: Library

Added new function pkgutil.get_data(), which is a convenience wrapper for
the PEP 302 get_data() API.

..

.. bpo: 2616
.. date: 6877
.. nonce: UHPY7r
.. section: Library

The ctypes.pointer() and ctypes.POINTER() functions are now implemented in C
for better performance.

..

.. bpo: 2408
.. date: 6876
.. nonce: GhLvZ5
.. section: Library

The ``_types`` module, which was used as in implementation detail of the
public ``types`` module, has been removed and replaced by pure python code.

..

.. bpo: 2513
.. date: 6875
.. nonce: x3Kj5E
.. section: Library

distutils on Windows is now capable of cross-compiling extension modules
between 32 and 64 bit platforms.  See the distutls build documentation for
more information.

..

.. bpo: 815646
.. date: 6874
.. nonce: GhCmJD
.. section: Library

Individual file objects may now be used from multiple threads at once
without fear of crashing the Python interpreter.  If file.close() is called
while an object is in use by another thread an IOError exception will be
raised and the file will not be closed.

..

.. bpo: 0
.. date: 6873
.. nonce: NdBuEp
.. section: Library

The bundled libffi copy is now in sync with the recently released
libffi3.0.5 version, apart from some small changes to
Modules/_ctypes/libffi/configure.ac.

..

.. bpo: 2385
.. date: 6872
.. nonce: qIBVVF
.. section: Library

distutils.core.run_script() makes __file__ available, so the controlled
environment will more closely mirror the typical script environment.  This
supports setup.py scripts that refer to data files.

..

.. bpo: 2550
.. date: 6871
.. nonce: wbV22J
.. section: Tests

The approach used by client/server code for obtaining ports to listen on in
network-oriented tests has been refined in an effort to facilitate running
multiple instances of the entire regression test suite in parallel without
issue. test_support.bind_port() has been fixed such that it will always
return a unique port -- which wasn't always the case with the previous
implementation, especially if socket options had been set that affected
address reuse (i.e. SO_REUSEADDR, SO_REUSEPORT).  The new implementation of
bind_port() will actually raise an exception if it is passed an
AF_INET/SOCK_STREAM socket with either the SO_REUSEADDR or SO_REUSEPORT
socket option set.  Furthermore, if available, bind_port() will set the
SO_EXCLUSIVEADDRUSE option on the socket it's been passed.  This currently
only applies to Windows.  This option prevents any other sockets from
binding to the host/port we've bound to, thus removing the possibility of
the 'non-deterministic' behaviour, as Microsoft puts it, that occurs when a
second SOCK_STREAM socket binds and accepts to a host/port that's already
been bound by another socket.  The optional preferred port parameter to
bind_port() has been removed.  Under no circumstances should tests be hard
coding ports!

test_support.find_unused_port() has also been introduced, which will pass a
temporary socket object to bind_port() in order to obtain an unused port.
The temporary socket object is then closed and deleted, and the port is
returned.  This method should only be used for obtaining an unused port in
order to pass to an external program (i.e. the -accept [port] argument to
openssl's s_server mode) or as a parameter to a server-oriented class that
doesn't give you direct access to the underlying socket used.

Finally, test_support.HOST has been introduced, which should be used for the
host argument of any relevant socket calls (i.e. bind and connect).

The following tests were updated to following the new conventions:
test_socket, test_smtplib, test_asyncore, test_ssl, test_httplib,
test_poplib, test_ftplib, test_telnetlib, test_socketserver,   test_asynchat
and test_socket_ssl.

It is now possible for multiple instances of the regression test suite to
run in parallel without issue.

..

.. bpo: 1496032
.. date: 6870
.. nonce: DcJtNu
.. section: Build

On alpha, use -mieee when gcc is the compiler.

..

.. bpo: 2544
.. date: 6869
.. nonce: -H_NZm
.. section: Build

On HP-UX systems, use 'gcc -shared' for linking when gcc is used as
compiler.

..

.. bpo: 2573
.. date: 6868
.. nonce: 4wDeJ7
.. section: Build

On MacOS X it is now possible to install the framework with a different name
using --with-framework-name=NAME.

..

.. bpo: 0
.. date: 6867
.. nonce: yznsKq
.. section: C API

Added implementation of copysign, acosh, asinh, atanh and log1p to the new
files Include/pymath.h and Python/pymath.h for platforms which provide the
functions through their libm. The files also contains several helpers and
constants for math.

..

.. bpo: 0
.. date: 6866
.. nonce: Kr65an
.. section: C API

Added a new convenience macro, PyErr_WarnPy3k, for issuing Py3k warnings.