]> granicus.if.org Git - python/commitdiff
Merge #14984: On POSIX, enforce permissions when reading default .netrc.
authorR David Murray <rdmurray@bitdance.com>
Mon, 16 Sep 2013 18:32:54 +0000 (14:32 -0400)
committerR David Murray <rdmurray@bitdance.com>
Mon, 16 Sep 2013 18:32:54 +0000 (14:32 -0400)
1  2 
Doc/library/netrc.rst
Lib/netrc.py
Lib/test/test_netrc.py
Misc/NEWS

Simple merge
diff --cc Lib/netrc.py
index 0fd37e304f54c2e236f30b4f3986d60ac20b9887,0b4eedff4eed4aa00983c2a1ad5c6d4de640567c..713e3226d351b6dad1a728e928784dbd8fd77254
@@@ -26,15 -27,11 +27,15 @@@ class netrc
                  file = os.path.join(os.environ['HOME'], ".netrc")
              except KeyError:
                  raise IOError("Could not find .netrc: $HOME is not set")
 -        fp = open(file)
          self.hosts = {}
          self.macros = {}
-             self._parse(file, fp)
 +        with open(file) as fp:
-     def _parse(self, file, fp):
++            self._parse(file, fp, default_netrc)
 +
++    def _parse(self, file, fp, default_netrc):
          lexer = shlex.shlex(fp)
          lexer.wordchars += r"""!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~"""
 +        lexer.commenters = lexer.commenters.replace('#', '')
          while 1:
              # Look for a machine, default, or macdef top-level keyword
              toplevel = tt = lexer.get_token()
index 27954563263b473dfc746ad2e86f068de2d3aeca,24ad78688c7032ac32c0cb5c4a79c42479bd7a4d..4156c535eff499db05899e93a18855eead1f42ae
 -
 -import netrc, os, unittest, sys
 +import netrc, os, unittest, sys, textwrap
  from test import test_support
  
 -TEST_NETRC = """
 -machine foo login log1 password pass1 account acct1
 +temp_filename = test_support.TESTFN
  
 -macdef macro1
 -line1
 -line2
 +class NetrcTestCase(unittest.TestCase):
 +
-     def tearDown(self):
-         os.unlink(temp_filename)
 +    def make_nrc(self, test_data):
 +        test_data = textwrap.dedent(test_data)
 +        mode = 'w'
 +        if sys.platform != 'cygwin':
 +            mode += 't'
 +        with open(temp_filename, mode) as fp:
 +            fp.write(test_data)
++        self.addCleanup(os.unlink, temp_filename)
 +        return netrc.netrc(temp_filename)
  
 -macdef macro2
 -line3
 -line4
 +    def test_default(self):
 +        nrc = self.make_nrc("""\
 +            machine host1.domain.com login log1 password pass1 account acct1
 +            default login log2 password pass2
 +            """)
 +        self.assertEqual(nrc.hosts['host1.domain.com'],
 +                         ('log1', 'acct1', 'pass1'))
 +        self.assertEqual(nrc.hosts['default'], ('log2', None, 'pass2'))
  
 -default login log2 password pass2
 +    def test_macros(self):
 +        nrc = self.make_nrc("""\
 +            macdef macro1
 +            line1
 +            line2
  
 -"""
 +            macdef macro2
 +            line3
 +            line4
 +            """)
 +        self.assertEqual(nrc.macros, {'macro1': ['line1\n', 'line2\n'],
 +                                      'macro2': ['line3\n', 'line4\n']})
  
 -temp_filename = test_support.TESTFN
 +    def _test_passwords(self, nrc, passwd):
 +        nrc = self.make_nrc(nrc)
 +        self.assertEqual(nrc.hosts['host.domain.com'], ('log', 'acct', passwd))
  
 -class NetrcTestCase(unittest.TestCase):
 +    def test_password_with_leading_hash(self):
 +        self._test_passwords("""\
 +            machine host.domain.com login log password #pass account acct
 +            """, '#pass')
  
 -    def setUp (self):
 -        mode = 'w'
 -        if sys.platform not in ['cygwin']:
 -            mode += 't'
 -        fp = open(temp_filename, mode)
 -        fp.write(TEST_NETRC)
 -        fp.close()
 -        self.netrc = netrc.netrc(temp_filename)
 -
 -    def tearDown (self):
 -        del self.netrc
 -        test_support.unlink(temp_filename)
 -
 -    def test_case_1(self):
 -        self.assert_(self.netrc.macros == {'macro1':['line1\n', 'line2\n'],
 -                                           'macro2':['line3\n', 'line4\n']}
 -                                           )
 -        self.assert_(self.netrc.hosts['foo'] == ('log1', 'acct1', 'pass1'))
 -        self.assert_(self.netrc.hosts['default'] == ('log2', None, 'pass2'))
 -
 -    if os.name == 'posix':
 -        def test_security(self):
 -            # This test is incomplete since we are normally not run as root and
 -            # therefore can't test the file ownership being wrong.
 -            os.unlink(temp_filename)
 -            d = test_support.TESTFN
 -            try:
 -                os.mkdir(d)
 -                fn = os.path.join(d, '.netrc')
 -                with open(fn, 'wt') as f:
 -                    f.write(TEST_NETRC)
 -                with test_support.EnvironmentVarGuard() as environ:
 -                    environ.set('HOME', d)
 -                    os.chmod(fn, 0600)
 -                    self.netrc = netrc.netrc()
 -                    self.test_case_1()
 -                    os.chmod(fn, 0622)
 -                    self.assertRaises(netrc.NetrcParseError, netrc.netrc)
 -            finally:
 -                test_support.rmtree(d)
 +    def test_password_with_trailing_hash(self):
 +        self._test_passwords("""\
 +            machine host.domain.com login log password pass# account acct
 +            """, 'pass#')
 +
 +    def test_password_with_internal_hash(self):
 +        self._test_passwords("""\
 +            machine host.domain.com login log password pa#ss account acct
 +            """, 'pa#ss')
 +
 +    def _test_comment(self, nrc, passwd='pass'):
 +        nrc = self.make_nrc(nrc)
 +        self.assertEqual(nrc.hosts['foo.domain.com'], ('bar', None, passwd))
 +        self.assertEqual(nrc.hosts['bar.domain.com'], ('foo', None, 'pass'))
 +
 +    def test_comment_before_machine_line(self):
 +        self._test_comment("""\
 +            # comment
 +            machine foo.domain.com login bar password pass
 +            machine bar.domain.com login foo password pass
 +            """)
 +
 +    def test_comment_before_machine_line_no_space(self):
 +        self._test_comment("""\
 +            #comment
 +            machine foo.domain.com login bar password pass
 +            machine bar.domain.com login foo password pass
 +            """)
 +
 +    def test_comment_before_machine_line_hash_only(self):
 +        self._test_comment("""\
 +            #
 +            machine foo.domain.com login bar password pass
 +            machine bar.domain.com login foo password pass
 +            """)
 +
 +    def test_comment_at_end_of_machine_line(self):
 +        self._test_comment("""\
 +            machine foo.domain.com login bar password pass # comment
 +            machine bar.domain.com login foo password pass
 +            """)
 +
 +    def test_comment_at_end_of_machine_line_no_space(self):
 +        self._test_comment("""\
 +            machine foo.domain.com login bar password pass #comment
 +            machine bar.domain.com login foo password pass
 +            """)
 +
 +    def test_comment_at_end_of_machine_line_pass_has_hash(self):
 +        self._test_comment("""\
 +            machine foo.domain.com login bar password #pass #comment
 +            machine bar.domain.com login foo password pass
 +            """, '#pass')
 +
 +
++    @unittest.skipUnless(os.name == 'posix', 'POSIX only test')
++    def test_security(self):
++        # This test is incomplete since we are normally not run as root and
++        # therefore can't test the file ownership being wrong.
++        d = test_support.TESTFN
++        os.mkdir(d)
++        self.addCleanup(test_support.rmtree, d)
++        fn = os.path.join(d, '.netrc')
++        with open(fn, 'wt') as f:
++            f.write("""\
++                machine foo.domain.com login bar password pass
++                default login foo password pass
++                """)
++        with test_support.EnvironmentVarGuard() as environ:
++            environ.set('HOME', d)
++            os.chmod(fn, 0600)
++            nrc = netrc.netrc()
++            self.assertEqual(nrc.hosts['foo.domain.com'],
++                             ('bar', None, 'pass'))
++            os.chmod(fn, 0o622)
++            self.assertRaises(netrc.NetrcParseError, netrc.netrc)
  def test_main():
      test_support.run_unittest(NetrcTestCase)
  
diff --cc Misc/NEWS
index c4698f4d7ffb7d12632d9074f76d6e538a8b7dcc,833cd05fa8200b3dff1c93bf2564af90e1333fbf..d9b413d996435c7d271fecef8defeffd4160019d
+++ b/Misc/NEWS
@@@ -32,3743 -13,591 +32,3749 @@@ Core and Builtin
  Library
  -------
  
 -- Issue #16248: Disable code execution from the user's home directory by
 -  tkinter when the -E flag is passed to Python.  Patch by Zachary Ware.
+ - Issue #14984: On POSIX systems, when netrc is called without a filename
+   argument (and therefore is reading the user's $HOME/.netrc file), it now
+   enforces the same security rules as typical ftp clients: the .netrc file must
+   be owned by the user that owns the process and must not be readable by any
+   other user.
 +- Issue #17324: Fix http.server's request handling case on trailing '/'. Patch
 +  contributed by Vajrasky Kok.
  
 -- Issue #16042: CVE-2013-1752: smtplib: Limit amount of data read by
 -  limiting the call to readline().  Original patch by Christian Heimes.
 +- Issue #19018: The heapq.merge() function no longer suppresses IndexError
 +  in the underlying iterables.
  
 -Extension Modules
 ------------------
 +- Issue #18784: The uuid module no more attempts to load libc via ctypes.CDLL,
 +  if all necessary functions are already found in libuuid.
 +  Patch by Evgeny Sologubov.
  
 -- Issue #18709: Fix CVE-2013-4238. The SSL module now handles NULL bytes
 -  inside subjectAltName correctly. Formerly the module has used OpenSSL's
 -  GENERAL_NAME_print() function to get the string represention of ASN.1
 -  strings for `rfc822Name` (email), `dNSName` (DNS) and
 -  `uniformResourceIdentifier` (URI).
 +- Issue #14971: unittest test discovery no longer gets confused when a function
 +  has a different __name__ than its name in the TestCase class dictionary.
  
 +- Issue #18672: Fixed format specifiers for Py_ssize_t in debugging output in
 +  the _sre module.
  
 -What's New in Python 2.6.8?
 -===========================
 +- Issue #18830: inspect.getclasstree() no more produces duplicated entries even
 +  when input list contains duplicates.
  
 -*Release date: 2012-04-10*
 +- Issue #18909: Fix _tkinter.tkapp.interpaddr() on Windows 64-bit, don't cast
 +  64-bit pointer to long (32 bits).
  
 -No changes since 2.6.8rc2.
 +- Issue #18876: The FileIO.mode attribute now better reflects the actual mode
 +  under which the file was opened.  Patch by Erik Bray.
  
 +- Issue #18851: Avoid a double close of subprocess pipes when the child
 +  process fails starting.
  
 -What's New in Python 2.6.8 rc 2?
 -================================
 +- Issue #18418: After fork(), reinit all threads states, not only active ones.
 +  Patch by A. Jesse Jiryu Davis.
  
 -*Release date: 2012-03-17*
 +- Issue #11973: Fix a problem in kevent. The flags and fflags fields are now
 +  properly handled as unsigned.
  
 -Library
 --------
 +- Issue #16809: Fixed some tkinter incompabilities with Tcl/Tk 8.6.
  
 -- Issue #14234: CVE-2012-0876: Randomize hashes of xml attributes in the hash
 -  table internal to the pyexpat module's copy of the expat library to avoid a
 -  denial of service due to hash collisions.  Patch by David Malcolm with some
 -  modifications by the expat project.
 +- Issue #16809: Tkinter's splitlist() and split() methods now accept Tcl_Obj
 +  argument.
  
 +- Issue #17119: Fixed integer overflows when processing large Unicode strings
 +  and tuples in the tkinter module.
  
 -What's New in Python 2.6.8 rc 1?
 -================================
 +- Issue #15233: Python now guarantees that callables registered with the atexit
 +  module will be called in a deterministic order.
  
 -*Release date: 2012-02-23*
 +- Issue #18747: Re-seed OpenSSL's pseudo-random number generator after fork.
 +  A pthread_atfork() parent handler is used to seed the PRNG with pid, time
 +  and some stack data.
  
 -Core and Builtins
 ------------------
 +- Issue #8865: Concurrent invocation of select.poll.poll() now raises a
 +  RuntimeError exception.  Patch by Christian Schubert.
  
 -- Issue #13703: oCERT-2011-003 CVE-2012-1150: add -R command-line
 -  option and PYTHONHASHSEED environment variable, to provide an opt-in
 -  way to protect against denial of service attacks due to hash
 -  collisions within the dict and set types.  Patch by David Malcolm,
 -  based on work by Victor Stinner.
 +- Issue #13461: Fix a crash in the TextIOWrapper.tell method on 64-bit
 +  platforms.  Patch by Yogesh Chaudhari.
  
 -Library
 --------
 +- Issue #18777: The ssl module now uses the new CRYPTO_THREADID API of
 +  OpenSSL 1.0.0+ instead of the deprecated CRYPTO id callback function.
  
 -- Issue #14001: CVE-2012-0845: xmlrpc: Fix an endless loop in
 -  SimpleXMLRPCServer upon malformed POST request.
 +- Issue #18768: Correct doc string of RAND_edg(). Patch by Vajrasky Kok.
  
 -- Issue #13885: CVE-2011-3389: the _ssl module would always disable the CBC
 -  IV attack countermeasure.
 +- Issue #18178: Fix ctypes on BSD. dlmalloc.c was compiled twice which broke
 +  malloc weak symbols.
  
 +- Issue #18709: Fix CVE-2013-4238. The SSL module now handles NULL bytes
 +  inside subjectAltName correctly. Formerly the module has used OpenSSL's
 +  GENERAL_NAME_print() function to get the string represention of ASN.1
 +  strings for ``rfc822Name`` (email), ``dNSName`` (DNS) and
 +  ``uniformResourceIdentifier`` (URI).
  
 -What's New in Python 2.6.7?
 -===========================
 +- Issue #18756: Improve error reporting in os.urandom() when the failure
 +  is due to something else than /dev/urandom not existing (for example,
 +  exhausting the file descriptor limit).
  
 -*Release date: 2011-06-03*
 +- Fix tkinter regression introduced by the security fix in issue #16248.
  
 -*NOTE: Python 2.6 is in security-fix-only mode.  No non-security bug fixes are
 - allowed.  Python 2.6.7 and beyond will be source only releases.*
 +- Issue #18676: Change 'positive' to 'non-negative' in queue.py put and get
 +  docstrings and ValueError messages. Patch by Zhongyue Luo
  
 -* No changes since 2.6.7rc2.
 +- Issue #17998: Fix an internal error in regular expression engine.
  
 +- Issue #17557: Fix os.getgroups() to work with the modified behavior of
 +  getgroups(2) on OS X 10.8.  Original patch by Mateusz Lenik.
  
 -What's New in Python 2.6.7 rc 2?
 -================================
 +- Issue #18455: multiprocessing should not retry connect() with same socket.
  
 -*Release date: 2011-05-20*
 +- Issue #18513: Fix behaviour of cmath.rect w.r.t. signed zeros on OS X 10.8 +
 +  gcc.
  
 -*NOTE: Python 2.6 is in security-fix-only mode.  No non-security bug fixes are
 - allowed.  Python 2.6.7 and beyond will be source only releases.*
 +- Issue #18101: Tcl.split() now process Unicode strings nested in a tuple as it
 +  do with byte strings.
  
 +- Issue #18347: ElementTree's html serializer now preserves the case of
 +  closing tags.
  
 -Library
 --------
 +- Issue #17261: Ensure multiprocessing's proxies use proper address.
  
 -- Issue #11662: Make urllib and urllib2 ignore redirections if the
 -  scheme is not HTTP, HTTPS or FTP (CVE-2011-1521).
 +- Issue #17097: Make multiprocessing ignore EINTR.
  
 -- Issue #11442: Add a charset parameter to the Content-type in SimpleHTTPServer
 -  to avoid XSS attacks.
 +- Issue #18155: The csv module now correctly handles csv files that use
 +  a delimiter character that has a special meaning in regexes, instead of
 +  throwing an exception.
  
 +- Issue #18135: ssl.SSLSocket.write() now raises an OverflowError if the input
 +  string in longer than 2 gigabytes. The ssl module does not support partial
 +  write.
  
 -What's New in Python 2.6.7 rc 1?
 -================================
 +- Issue #18167: cgi.FieldStorage no longer fails to handle multipart/form-data
 +  when \r\n appears at end of 65535 bytes without other newlines.
  
 -*Release date: 2011-05-06*
 +- Issue #17403: urllib.parse.robotparser normalizes the urls before adding to
 +  ruleline. This helps in handling certain types invalid urls in a conservative
 +  manner. Patch contributed by Mher Movsisyan.
  
 -Library
 --------
 +- Implement inequality on weakref.WeakSet.
  
 -- Issue #9129: smtpd.py is vulnerable to DoS attacks deriving from missing
 -  error handling when accepting a new connection.
 +- Issue #17981: Closed socket on error in SysLogHandler.
  
 +- Issue #18015: Fix unpickling of 2.7.3 and 2.7.4 namedtuples.
  
 -What's New in Python 2.6.6?
 -===========================
 +- Issue #17754: Make ctypes.util.find_library() independent of the locale.
  
 -*Release date: 2010-08-24*
 +- Fix typos in the multiprocessing module.
  
 -* No changes since 2.6.6rc2.
 +- Issue #17269: Workaround for socket.getaddrinfo crash on MacOS X
 +  with port None or "0" and flags AI_NUMERICSERV.
  
 +- Issue #18080: When building a C extension module on OS X, if the compiler
 +  is overriden with the CC environment variable, use the new compiler as
 +  the default for linking if LDSHARED is not also overriden.  This restores
 +  Distutils behavior introduced in 2.7.3 and inadvertently dropped in 2.7.4.
  
 -What's New in Python 2.6.6 rc 2?
 -================================
 +- Issue #18071: C extension module builds on OS X could fail with TypeError
 +  if the Xcode command line tools were not installed.
  
 -*Release date: 2010-08-16*
 +- Issue #18113: Fixed a refcount leak in the curses.panel module's
 +  set_userptr() method.  Reported by Atsuo Ishimoto.
  
 -Library
 --------
 +- Issue #18849: Fixed a Windows-specific tempfile bug where collision with an
 +  existing directory caused mkstemp and related APIs to fail instead of
 +  retrying. Report and fix by Vlad Shcherbina.
  
 -- Issue #9600: Don't use relative import for _multiprocessing on Windows.
  
 -- Issue #8688: Revert regression introduced in 2.6.6rc1 (making Distutils
 -  recalculate MANIFEST every time).
 +Tools/Demos
 +-----------
  
 -- Issue #5798: Handle select.poll flag oddities properly on OS X.
 -  This fixes test_asynchat and test_smtplib failures on OS X.
 +- Issue #18817: Fix a resource warning in Lib/aifc.py demo.
  
 -- Issue #9543: Fix regression in socket.py introduced in Python 2.6.6 rc 1
 -  in r83624.
 +- Issue #18439: Make patchcheck work on Windows for ACKS, NEWS.
  
 -Extension Modules
 ------------------
 +- Issue #18448: Fix a typo in Demo/newmetaclasses/Eiffel.py.
  
 -- Issue #7567: Don't call `setupterm' twice.
 +- Issue #12990: The "Python Launcher" on OSX could not launch python scripts
 +  that have paths that include wide characters.
  
 -Tests
 +Build
  -----
  
 -- Issue #9568: Fix test_urllib2_localnet on OS X 10.3.
 +- Issue #16067: Add description into MSI file to replace installer's temporary name.
  
 -- Issue #9145: Fix test_coercion failure in refleak runs.
 +- Issue #18256: Compilation fix for recent AIX releases.  Patch by
 +  David Edelsohn.
  
 -- Issue #8433: Fix test_curses failure caused by newer versions of
 -  ncurses returning ERR from getmouse() when there are no mouse
 -  events available.
 +- Issue #18098: The deprecated OS X Build Applet.app fails to build on
 +  OS X 10.8 systems because the Apple-deprecated QuickDraw headers have
 +  been removed from Xcode 4.  Skip building it in this case.
  
 +IDLE
 +----
  
 -What's New in Python 2.6.6 rc 1?
 -================================
 +- Issue #18988: The "Tab" key now works when a word is already autocompleted.
  
 -*Release date: 2010-08-03*
 +- Issue #18489: Add tests for SearchEngine. Original patch by Phil Webster.
  
 -Core and Builtins
 ------------------
 +- Issue #18429: Format / Format Paragraph, now works when comment blocks
 +  are selected. As with text blocks, this works best when the selection
 +  only includes complete lines.
  
 -- Issue #6213: Implement getstate() and setstate() methods of utf-8-sig and
 -  utf-16 incremental encoders.
 +- Issue #18226: Add docstrings and unittests for FormatParagraph.py.
 +  Original patches by Todd Rovito and Phil Webster.
  
 -- Issue #8271: during the decoding of an invalid UTF-8 byte sequence, only the
 -  start byte and the continuation byte(s) are now considered invalid, instead
 -  of the number of bytes specified by the start byte.
 -  E.g.: '\xf1\x80AB'.decode('utf-8', 'replace') now returns u'\ufffdAB' and
 -  replaces with U+FFFD only the start byte ('\xf1') and the continuation byte
 -  ('\x80') even if '\xf1' is the start byte of a 4-bytes sequence.
 -  Previous versions returned a single u'\ufffd'.
 +- Issue #18279: Format - Strip trailing whitespace no longer marks a file as
 +  changed when it has not been changed. This fix followed the addition of a
 +  test file originally written by Phil Webster (the issue's main goal).
  
 -- Issue #9058: Remove assertions about INT_MAX in UnicodeDecodeError.
 +- Issue #18539: Calltips now work for float default arguments.
  
 -- Issue #8941: decoding big endian UTF-32 data in UCS-2 builds could crash
 -  the interpreter with characters outside the Basic Multilingual Plane
 -  (higher than 0x10000).
 +- Issue #7136: In the Idle File menu, "New Window" is renamed "New File".
 +  Patch by Tal Einat, Roget Serwy, and Todd Rovito.
  
 -- Issue #8627: Remove bogus "Overriding __cmp__ blocks inheritance of
 -  __hash__ in 3.x" warning.  Also fix "XXX undetected error" that
 -  arises from the "Overriding __eq__ blocks inheritance ..." warning
 -  when turned into an exception: in this case the exception simply
 -  gets ignored.
 +- Issue #8515: Set __file__ when run file in IDLE.
 +  Initial patch by Bruce Frederiksen.
  
 -- Issue #4108: In urllib.robotparser, if there are multiple 'User-agent: *'
 -  entries, consider the first one.
 +- Issue #5492: Avoid traceback when exiting IDLE caused by a race condition.
  
 -- Issue #9354: Provide getsockopt() in asyncore's file_wrapper.
 +- Issue #17511: Keep IDLE find dialog open after clicking "Find Next".
 +  Original patch by Sarah K.
  
 -- In the unicode/str.format(), raise a ValueError when indexes to arguments are
 -  too large.
 +- Issue #15392: Create a unittest framework for IDLE.
 +  Preliminary patch by Rajagopalasarma Jayakrishnan
 +  See Lib/idlelib/idle_test/README.txt for how to run Idle tests.
  
 -- Issue #3798: Write sys.exit() message to sys.stderr to use stderr encoding
 -  and error handler, instead of writing to the C stderr file in utf-8
 +- Issue #14146: Highlight source line while debugging on Windows.
  
 -- Issue #7902: When using explicit relative import syntax, don't try
 -  implicit relative import semantics.
 +- Issue #17532: Always include Options menu for IDLE on OS X.
 +  Patch by Guilherme Simões.
  
 -- Issue #7079: Fix a possible crash when closing a file object while using
 -  it from another thread.  Patch by Daniel Stutzbach.
 +Tests
 +-----
  
 -- Issue #1533: fix inconsistency in range function argument
 -  processing: any non-float non-integer argument is now converted to
 -  an integer (if possible) using its __int__ method.  Previously, only
 -  small arguments were treated this way; larger arguments (those whose
 -  __int__ was outside the range of a C long) would produce a TypeError.
 +- Issue #18792: Use "127.0.0.1" or "::1" instead of "localhost" as much as
 +  possible, since "localhost" goes through a DNS lookup under recent Windows
 +  versions.
  
 -- Issue #8417: Raise an OverflowError when an integer larger than sys.maxsize
 -  is passed to bytearray.
 +- Issue #18357: add tests for dictview set difference.
 +  Patch by Fraser Tweedale.
  
 -- Issue #8329: Don't return the same lists from select.select when no fds are
 -  changed.
 +- Issue #11185: Fix test_wait4 under AIX.  Patch by Sébastien Sablé.
  
 -- Raise a TypeError when trying to delete a T_STRING_INPLACE struct member.
 +- Issue #18094: test_uuid no more reports skipped tests as passed.
  
 -- Issue #1583863: An unicode subclass can now override the __unicode__ method.
 +- Issue #11995: test_pydoc doesn't import all sys.path modules anymore.
  
 -- Issue #7507: Quote "!" in pipes.quote(); it is special to some shells.
 +Documentation
 +-------------
  
 -- Issue #7544: Preallocate thread memory before creating the thread to avoid
 -  a fatal error in low memory condition.
 +- Issue #18718: datetime documentation contradictory on leap second support.
  
 -- Issue #7820: The parser tokenizer restores all bytes in the right if
 -  the BOM check fails.
 +- Issue #17701: Improving strftime documentation.
  
 -- Issue #7072: isspace(0xa0) is true on Mac OS X
 +- Issue #17844: Refactor a documentation of Python specific encodings.
 +  Add links to encoders and decoders for binary-to-binary codecs.
  
 -C-API
 ------
  
 -- Issue #5753: A new C API function, :cfunc:`PySys_SetArgvEx`, allows
 -  embedders of the interpreter to set sys.argv without also modifying
 -  sys.path.  This helps fix `CVE-2008-5983
 -  <http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-5983>`_.
 +What's New in Python 2.7.5?
 +===========================
  
 -Library
 --------
 +*Release date: 2013-05-12*
  
 -- Issue #8447: Make distutils.sysconfig follow symlinks in the path to
 -  the interpreter executable.  This fixes a failure of test_httpservers
 -  on OS X.
 +Core and Builtins
 +-----------------
  
 -- Issue #7092: Fix the DeprecationWarnings emitted by the standard library
 -  when using the -3 flag.  Patch by Florent Xicluna.
 +- Issue #15535: Fixed regression in the pickling of named tuples by
 +  removing the __dict__ property introduced in 2.7.4.
  
 -- Issue #7395: Fix tracebacks in pstats interactive browser.
 +- Issue #17857: Prevent build failures with pre-3.5.0 versions of sqlite3,
 +  such as was shipped with Centos 5 and Mac OS X 10.4.
  
 -- Issue #1713: Fix os.path.ismount(), which returned true for symbolic links
 -  across devices.
 +- Issue #17703: Fix a regression where an illegal use of Py_DECREF() after
 +  interpreter finalization can cause a crash.
  
 -- Issue #8826: Properly load old-style "expires" attribute in http.cookies.
 +- Issue #16447: Fixed potential segmentation fault when setting __name__ on a
 +  class.
  
 -- Issue #1690103: Fix initial namespace for code run with trace.main().
 +- Issue #17610: Don't rely on non-standard behavior of the C qsort() function.
  
 -- Issue #5294: Fix the behavior of pdb's "continue" command when called
 -  in the top-level debugged frame.
 +Library
 +-------
  
 -- Issue #5727: Restore the ability to use readline when calling into pdb
 -  in doctests.
 +- Issue #17979: Fixed the re module in build with --disable-unicode.
  
 -- Issue #6719: In pdb, do not stop somewhere in the encodings machinery
 -  if the source file to be debugged is in a non-builtin encoding.
 +- Issue #17606: Fixed support of encoded byte strings in the XMLGenerator
 + .characters() and ignorableWhitespace() methods.  Original patch by Sebastian
 +  Ortiz Vasquez.
  
 -- Issue #8048: Prevent doctests from failing when sys.displayhook has
 -  been reassigned.
 +- Issue #16601: Restarting iteration over tarfile no more continues from where
 +  it left off.  Patch by Michael Birtwell.
  
 -- Issue #8015: In pdb, do not crash when an empty line is entered as
 -  a breakpoint command.
 +- Issue 16584: in filecomp._cmp, catch IOError as well as os.error.
 +  Patch by Till Maas.
  
 -- Issue #7909: Do not touch paths with the special prefixes ``\\.\``
 -  or ``\\?\`` in ntpath.normpath().
 +- Issue #17926: Fix dbm.__contains__ on 64-bit big-endian machines.
  
 -- Issue #5146: Handle UID THREAD command correctly in imaplib.
 +- Issue #17918: When using SSLSocket.accept(), if the SSL handshake failed
 +  on the new socket, the socket would linger indefinitely.  Thanks to
 +  Peter Saveliev for reporting.
  
 -- Issue #5147: Fix the header generated for cookie files written by
 -  http.cookiejar.MozillaCookieJar.
 +- Issue #17289: The readline module now plays nicer with external modules
 +  or applications changing the rl_completer_word_break_characters global
 +  variable.  Initial patch by Bradley Froehle.
  
 -- Issue #8198: In pydoc, output all help text to the correct stream
 -  when sys.stdout is reassigned.
 +- Issue #12181: select module: Fix struct kevent definition on OpenBSD 64-bit
 +  platforms. Patch by Federico Schwindt.
  
 -- Issue #1019882: Fix IndexError when loading certain hotshot stats.
 +- Issue #14173: Avoid crashing when reading a signal handler during
 +  interpreter shutdown.
  
 -- Issue #8471: In doctest, properly reset the output stream to an empty
 -  string when Unicode was previously output.
 +- Issue #16316: mimetypes now recognizes the .xz and .txz (.tar.xz) extensions.
  
 -- Issue #8397: Raise an error when attempting to mix iteration and regular
 -  reads on a BZ2File object, rather than returning incorrect results.
 +- Issue #17192: Restore the patch for Issue #10309 which was ommitted
 +  in 2.7.4 when updating the bundled version of libffi used by ctypes.
  
 -- Issue #8620: when a Cmd is fed input that reaches EOF without a final
 -  newline, it no longer truncates the last character of the last command line.
 +- Issue #17843: Removed test data file that was triggering false-positive virus
 +  warnings with certain antivirus software.
  
 -- Issue #7066: archive_util.make_archive now restores the cwd if an error is
 -  raised. Initial patch by Ezio Melotti.
 +- Issue #17353: Plistlib emitted empty data tags with deeply nested datastructures
  
 -- Issue #5006: Better handling of unicode byte-order marks (BOM) in the io
 -  library. This means, for example, that opening an UTF-16 text file in append
 -  mode doesn't add a BOM at the end of the file if the file isn't empty.
 +- Issue #11714: Use 'with' statements to assure a Semaphore releases a
 +  condition variable.  Original patch by Thomas Rachel.
  
 -- Issue #3704: cookielib was not properly handling URLs with a / in the
 -  parameters.
 +- Issue #17795: Reverted backwards-incompatible change in SysLogHandler with
 +  Unix domain sockets.
  
 -- Issue #4629: getopt raises an error if an argument ends with = whereas getopt
 -  doesn't except a value (eg. --help= is rejected if getopt uses ['help='] long
 -  options).
 +- Issue #17555: Fix ForkAwareThreadLock so that size of after fork
 +  registry does not grow exponentially with generation of process.
  
 -- Issue #7895: platform.mac_ver() no longer crashes after calling os.fork()
 +- Issue #17710: Fix cPickle raising a SystemError on bogus input.
  
 -- Issue #5395: array.fromfile() would raise a spurious EOFError when an
 -  I/O error occurred.  Now an IOError is raised instead.  Patch by chuck
 -  (Jan Hosang).
 +- Issue #17341: Include the invalid name in the error messages from re about
 +  invalid group names.
  
 -- Issue #1555570: email no longer inserts extra blank lines when a \r\n
 -  combo crosses an 8192 byte boundary.
 +- Issue #17016: Get rid of possible pointer wraparounds and integer overflows
 +  in the re module.  Patch by Nickolai Zeldovich.
  
 -- Issue #9164: Ensure sysconfig handles dupblice archs while building on OSX
 +- Issue #17536: Add to webbrowser's browser list: xdg-open, gvfs-open,
 +  www-browser, x-www-browser, chromium browsers, iceweasel, iceape.
  
 -- Issue #7646: The fnmatch pattern cache no longer grows without bound.
 +- Issue #17656: Fix extraction of zip files with unicode member paths.
  
 -- Issue #9136: Fix 'dictionary changed size during iteration'
 -  RuntimeError produced when profiling the decimal module.  This was
 -  due to a dangerous iteration over 'locals()' in Context.__init__.
 +- Issue #17666: Fix reading gzip files with an extra field.
  
 -- Fix extreme speed issue in Decimal.pow when the base is an exact
 -  power of 10 and the exponent is tiny (for example,
 -  Decimal(10) ** Decimal('1e-999999999')).
 +- Issue #13150, #17512: sysconfig no longer parses the Makefile and config.h
 +  files when imported, instead doing it at build time.  This makes importing
 +  sysconfig faster and reduces Python startup time by 20%.
  
 -- Issue #9130: Fix validation of relative imports in parser module.
 +- Issue #13163: Rename operands in smtplib.SMTP._get_socket to correct names;
 +  fixes otherwise misleading output in tracebacks and when when debug is on.
  
 -- Issue #9128: Fix validation of class decorators in parser module.
 +- Issue #17526: fix an IndexError raised while passing code without filename to
 +  inspect.findsource().  Initial patch by Tyler Doyle.
  
 -- Issue #7673: Fix security vulnerability (CVE-2010-2089) in the audioop
 -  module, ensure that the input string length is a multiple of the frame size
 +Build
 +-----
  
 -- Issue #6589: cleanup asyncore.socket_map in case smtpd.SMTPServer constructor
 -  raises an exception.
 +- Issue #17547: In configure, explicitly pass -Wformat for the benefit for GCC
 +  4.8.
  
 -- Issue #9125: Add recognition of 'except ... as ...' syntax to parser module.
 +- Issue #17682: Add the _io module to Modules/Setup.dist (commented out).
  
 -- Issue #9085: email package version number bumped to its correct
 -  value of 4.0.2 (same as it was in 2.5).
 +- Issue #17086: Search the include and library directories provided by the
 +  compiler.
  
 -- Issue #9075: In the ssl module, remove the setting of a ``debug`` flag
 -  on an OpenSSL structure.
 +Tests
 +-----
  
 -- Issue #5610: feedparser no longer eats extra characters at the end of
 -  a body part if the body part ends with a \r\n.
 +- Issue #17928: Fix test_structmembers on 64-bit big-endian machines.
  
 -- Issue #8924: logging: Improved error handling for Unicode in exception text.
 +- Issue #17883: Fix buildbot testing of Tkinter on Windows.
 +  Patch by Zachary Ware.
  
 -- Fix codecs.escape_encode to return the correct consumed size.
 +- Issue #7855: Add tests for ctypes/winreg for issues found in IronPython.
 +  Initial patch by Dino Viehland.
  
 -- Issue #6470: Drop UNC prefix in FixTk.
 +- Issue #17712: Fix test_gdb failures on Ubuntu 13.04.
  
 -- Issue #8833: tarfile created hard link entries with a size field != 0 by
 -  mistake.
 +- Issue #17065: Use process-unique key for winreg tests to avoid failures if
 +  test is run multiple times in parallel (eg: on a buildbot host).
  
 -- Issue #1368247: set_charset (and therefore MIMEText) now automatically
 -  encodes a unicode _payload to the output_charset.
 +IDLE
 +----
  
 -- Issue #7150: Raise OverflowError if the result of adding or subtracting
 -  timedelta from date or datetime falls outside of the MINYEAR:MAXYEAR range.
 +- Issue #17838: Allow sys.stdin to be reassigned.
  
 -- Issue #6662: Fix parsing of malformatted charref (&#bad;), patch written by
 -  Fredrik Håård
 +- Issue #14735: Update IDLE docs to omit "Control-z on Windows".
  
 -- Issue #1628205: Socket file objects returned by socket.socket.makefile() now
 -  properly handles EINTR within the read, readline, write & flush methods.
 -  The socket.sendall() method now properly handles interrupted system calls.
 +- Issue #17585: Fixed IDLE regression. Now closes when using exit() or quit().
  
 -- Issue #3924: Ignore cookies with invalid "version" field in cookielib.
 +- Issue #17657: Show full Tk version in IDLE's about dialog.
 +  Patch by Todd Rovito.
  
 -- Issue #6268: Fix seek() method of codecs.open(), don't read or write the BOM
 -  twice after seek(0). Fix also reset() method of codecs, UTF-16, UTF-32 and
 -  StreamWriter classes.
 +- Issue #17613: Prevent traceback when removing syntax colorizer in IDLE.
  
 -- Issue #5640: Fix Shift-JIS incremental encoder for error handlers different
 -  than strict
 +- Issue #1207589: Backwards-compatibility patch for right-click menu in IDLE.
  
 -- Issue #8782: Add a trailing newline in linecache.updatecache to the last line
 -  of files without one.
 +- Issue #16887: IDLE now accepts Cancel in tabify/untabify dialog box.
  
 -- Issue #8729: Return NotImplemented from collections.Mapping.__eq__ when
 -  comparing to a non-mapping.
 +- Issue #14254: IDLE now handles readline correctly across shell restarts.
  
 -- Issue #5918: Fix a crash in the parser module.
 +- Issue #17614: IDLE no longer raises exception when quickly closing a file.
  
 -- Issue #8688: Distutils now recalculates MANIFEST everytime.
 +- Issue #6698: IDLE now opens just an editor window when configured to do so.
  
 -- Issue #7640: In the new `io` module, fix relative seek() for buffered
 -  readable streams when the internal buffer isn't empty.  Patch by Pascal
 -  Chambon.
 +- Issue #8900: Using keyboard shortcuts in IDLE to open a file no longer
 +  raises an exception.
  
 -- Issue #5099: subprocess.Popen.__del__ no longer references global objects,
 -  leading to issues during interpreter shutdown.
 +- Issue #6649: Fixed missing exit status in IDLE. Patch by Guilherme Polo.
  
 -- Issue #8681: Make the zlib module's error messages more informative when
 -  the zlib itself doesn't give any detailed explanation.
 +Documentation
 +-------------
  
 -- Issue #8674: Fixed a number of incorrect or undefined-behaviour-inducing
 -  overflow checks in the audioop module.
 +- Issue #15940: Specify effect of locale on time functions.
  
 -- Issue #8571: Fix an internal error when compressing or decompressing a
 -  chunk larger than 1GB with the zlib module's compressor and decompressor
 -  objects.
 +- Issue #6696: add documentation for the Profile objects, and improve
 +  profile/cProfile docs.  Patch by Tom Pinckney.
  
 -- Issue #8573: asyncore _strerror() function might throw ValueError.
  
 -- Issue #8483: asyncore.dispatcher's __getattr__ method produced confusing
 -  error messages when accessing undefined class attributes because of the cheap
 -  inheritance with the underlying socket object.
 +What's New in Python 2.7.4?
 +===========================
  
 -- Issue #4265: shutil.copyfile() was leaking file descriptors when disk fills.
 -  Patch by Tres Seaver.
 +*Release date: 2013-04-06*
  
 -- Issue #8621: uuid.uuid4() returned the same sequence of values in the
 -  parent and any children created using ``os.fork`` on MacOS X 10.6.
 +Build
 +-----
  
 -- Issue #8313: traceback.format_exception_only() encodes unicode message to
 -  ASCII with backslashreplace error handler if str(value) failed
 +- Issue #17550: Fix the --enable-profiling configure switch.
  
 -- Issue #8567: Fix precedence of signals in Decimal module: when a
 -  Decimal operation raises multiple signals and more than one of those
 -  signals is trapped, the specification determines the order in which
 -  the signals should be handled.  In many cases this order wasn't
 -  being followed, leading to the wrong Python exception being raised.
 +Core and Builtins
 +-----------------
  
 -- Issue #7865: The close() method of :mod:`io` objects should not swallow
 -  exceptions raised by the implicit flush().  Also ensure that calling
 -  close() several times is supported.  Initial patch by Pascal Chambon.
 +- Issue #15801 (again): With string % formatting, relax the type check for a
 +  mapping such that any type with a __getitem__ can be used on the right hand
 +  side.
  
 -- Issue #8581: logging: removed errors raised when closing handlers twice.
 +IDLE
 +----
  
 -- Issue #4687: Fix accuracy of garbage collection runtimes displayed with
 -  gc.DEBUG_STATS.
 +- Issue #17625: In IDLE, close the replace dialog after it is used.
  
 -- Issue #8354: The siginterrupt setting is now preserved for all signals,
 -  not just SIGCHLD.
 +Tests
 +-----
  
 -- Issue #8577: distutils.sysconfig.get_python_inc() now makes a difference
 -  between the build dir and the source dir when looking for "python.h" or
 -  "Include".
 +- Issue #17835: Fix test_io when the default OS pipe buffer size is larger
 +  than one million bytes.
  
 -- Issue #8464: tarfile no longer creates files with execute permissions set
 -  when mode="w|" is used.
 +- Issue #17531: Fix tests that thought group and user ids were always the int
 +  type. Also, always allow -1 as a valid group and user id.
  
 -- Issue #7834: Fix connect() of Bluetooth L2CAP sockets with recent versions
 -  of the Linux kernel.  Patch by Yaniv Aknin.
 +- Issue #17533: Fix test_xpickle with older versions of Python 2.5.
  
 -- Issue #6312: Fixed http HEAD request when the transfer encoding is chunked.
 -  It should correctly return an empty response now.
 +Documentation
 +-------------
  
 -- Issue #8086: In :func:`ssl.DER_cert_to_PEM_cert()`, fix missing newline
 -  before the certificate footer.  Patch by Kyle VanderBeek.
 +- Issue 17538: Document XML vulnerabilties
  
 -- Issue #8549: Fix compiling the _ssl extension under AIX.  Patch by
 -  Sridhar Ratnakumar.
  
 -- Issue #2302: Fix a race condition in SocketServer.BaseServer.shutdown,
 -  where the method could block indefinitely if called just before the
 -  event loop started running.  This also fixes the occasional freezes
 -  witnessed in test_httpservers.
 +What's New in Python 2.7.4 release candidate 1
 +==============================================
  
 -- Issue #5103: SSL handshake would ignore the socket timeout and block
 -  indefinitely if the other end didn't respond.
 +*Release date: 2013-03-23*
  
 -- The do_handshake() method of SSL objects now adjusts the blocking mode of
 -  the SSL structure if necessary (as other methods already do).
 +Core and Builtins
 +-----------------
  
 -- Issue #5238: Calling makefile() on an SSL object would prevent the
 -  underlying socket from being closed until all objects get truely destroyed.
 +- Issue #10211: Buffer objects expose the new buffer interface internally
  
 -- Issue #7943: Fix circular reference created when instantiating an SSL
 -  socket.  Initial patch by Péter Szabó.
 +- Issue #16445: Fixed potential segmentation fault when deleting an exception
 +  message.
  
 -- Issue #8108: Fix the unwrap() method of SSL objects when the socket has
 -  a non-infinite timeout.  Also make that method friendlier with applications
 -  wanting to continue using the socket in clear-text mode, by disabling
 -  OpenSSL's internal readahead.  Thanks to Darryl Miles for guidance.
 +- Issue #17275: Corrected class name in init error messages of the C version of
 +  BufferedWriter and BufferedRandom.
  
 -- Issue #8484: Load all ciphers and digest algorithms when initializing
 -  the _ssl extension, such that verification of some SSL certificates
 -  doesn't fail because of an "unknown algorithm".
 +- Issue #7963: Fixed misleading error message that issued when object is
 +  called without arguments.
  
 -- Issue #4814: timeout parameter is now applied also for connections resulting
 -  from PORT/EPRT commands.
 +- Issue #5308: Raise ValueError when marshalling too large object (a sequence
 +  with size >= 2**31), instead of producing illegal marshal data.
  
 -- Issue #3817: ftplib.FTP.abort() method now considers 225 a valid response
 -  code as stated in RFC-959 at chapter 5.4.
 +- Issue #17043: The unicode-internal decoder no longer read past the end of
 +  input buffer.
  
 -- Issue #5277: Fix quote counting when parsing RFC 2231 encoded parameters.
 +- Issue #16979: Fix error handling bugs in the unicode-escape-decode decoder.
  
 -- Issue #8179: Fix macpath.realpath() on a non-existing path.
 +- Issue #10156: In the interpreter's initialization phase, unicode globals
 +  are now initialized dynamically as needed.
  
 -- Issue #8310: Allow dis to examine new style classes.
 +- Issue #16975: Fix error handling bug in the escape-decode decoder.
  
 -- Issue #7667: Fix doctest failures with non-ASCII paths.
 +- Issue #14850: Now a charmap decoder treats U+FFFE as "undefined mapping"
 +  in any mapping, not only in a Unicode string.
  
 -- Issue #7624: Fix isinstance(foo(), collections.Callable) for old-style
 -  classes.
 +- Issue #11461: Fix the incremental UTF-16 decoder. Original patch by
 +  Amaury Forgeot d'Arc.
  
 -- Issue #7512: shutil.copystat() could raise an OSError when the filesystem
 -  didn't support chflags() (for example ZFS under FreeBSD).  The error is
 -  now silenced.
 +- Issue #16367: Fix FileIO.readall() on Windows for files larger than 2 GB.
  
 -- Issue #3890, #8222: Fix recv() and recv_into() on non-blocking SSL sockets.
 -  Also, enable the SSL_MODE_AUTO_RETRY flag on SSL sockets, so that blocking
 -  reads and writes are always retried by OpenSSL itself.
 +- Issue #15516: Fix a bug in PyString_FromFormat where it failed to properly
 +  ignore errors from a __int__() method.
  
 -- Issue #6544: fix a reference leak in the kqueue implementation's error
 -  handling.
 +- Issue #16839: Fix a segfault when calling unicode() on a classic class early
 +  in interpreter initialization.
  
 -- Issue #7774: Set sys.executable to an empty string if argv[0] has been
 -  set to an non existent program name and Python is unable to retrieve the real
 -  program name
 +- Issue #16761: Calling ``int()`` and ``long()`` with *base* argument only
 +  now raises TypeError.
  
 -- Issue #6906: Tk should not set Unicode environment variables on Windows.
 +- Issue #16759: Support the full DWORD (unsigned long) range in Reg2Py
 +  when retrieving a REG_DWORD value. This corrects functions like
 +  winreg.QueryValueEx that may have been returning truncated values.
  
 -- Issue #1054943: Fix unicodedata.normalize('NFC', text) for the Public Review
 -  Issue #29
 +- Issue #14420: Support the full DWORD (unsigned long) range in Py2Reg
 +  when passed a REG_DWORD value. Fixes ValueError in winreg.SetValueEx when
 +  given a long.
  
 -- Issue #7494: fix a crash in _lsprof (cProfile) after clearing the profiler,
 -  reset also the pointer to the current pointer context.
 +- Issue #13863: Work around buggy 'fstat' implementation on Windows / NTFS that
 +  lead to incorrect timestamps (off by one hour) being stored in .pyc files on
 +  some systems.
  
 -- Issue #4961: Inconsistent/wrong result of askyesno function in tkMessageBox
 -  with Tcl/Tk-8.5.
 +- Issue #16602: When a weakref's target was part of a long deallocation
 +  chain, the object could remain reachable through its weakref even though
 +  its refcount had dropped to zero.
  
 -- Issue #7356: ctypes.util: Make parsing of ldconfig output independent of
 -  the locale.
 +- Issue #9011: Fix hacky AST code that modified the CST when compiling
 +  a negated numeric literal.
  
 -Extension Modules
 ------------------
 +- Issue #16306: Fix multiple error messages when unknown command line
 +  parameters where passed to the interpreter.  Patch by Hieu Nguyen.
  
 -- Fix memory leak in ssl._ssl._test_decode_cert.
 +- Issue #15379: Fix passing of non-BMP characters as integers for the charmap
 +  decoder (already working as unicode strings).  Patch by Serhiy Storchaka.
  
 -- Issue #9422: Fix memory leak when re-initializing a struct.Struct object.
 +- Issue #16453: Fix equality testing of dead weakref objects.
  
 -- Issue #7900: The getgroups(2) system call on MacOSX behaves rather oddly
 -  compared to other unix systems. In particular, os.getgroups() does
 -  not reflect any changes made using os.setgroups() but basicly always
 -  returns the same information as the id command.
 +- Issue #9535: Fix pending signals that have been received but not yet
 +  handled by Python to not persist after os.fork() in the child process.
  
 -  os.getgroups() can now return more than 16 groups on MacOSX.
 +- Issue #15001: fix segfault on "del sys.modules['__main__']". Patch by Victor
 +  Stinner.
  
 -- Issue #9277: Fix bug in struct.pack for bools in standard mode
 -  (e.g., struct.pack('>?')):  if conversion to bool raised an exception
 -  then that exception wasn't properly propagated on machines where
 -  char is unsigned.
 +- Issue #5057: the peepholer no longer optimizes subscription on unicode
 +  literals (e.g. u'foo'[0]) in order to produce compatible pyc files between
 +  narrow and wide builds.
  
 -- Issue #7384: If the system readline library is linked against
 -  ncurses, do not link the readline module against ncursesw. The
 -  additional restriction of linking the readline and curses modules
 -  against the same curses library is currently not enabled.
 +- Issue #8401: assigning an int to a bytearray slice (e.g. b[3:4] = 5) now
 +  raises an error.
  
 -- Issue #2810: Fix cases where the Windows registry API returns
 -  ERROR_MORE_DATA, requiring a re-try in order to get the complete result.
 +- Issue #14700: Fix buggy overflow checks for large width and precision
 +  in string formatting operations.
  
 -Build
 ------
 +- Issue #16345: Fix an infinite loop when ``fromkeys`` on a dict subclass
 +  received a nonempty dict from the constructor.
  
 -- Issue #8854: Fix finding Visual Studio 2008 on Windows x64.
 +- Issue #6074: Ensure cached bytecode files can always be updated by the
 +  user that created them, even when the source file is read-only.
  
 -- Issue #3928: os.mknod() now available in Solaris, also.
 +- Issue #14783: Improve int() and long() docstrings and switch docstrings for
 +  unicode(), slice(), range(), and xrange() to use multi-line signatures.
  
 -- Issue #8175: --with-universal-archs=all works correctly on OSX 10.5
 +- Issue #16030: Fix overflow bug in computing the `repr` of an xrange object
 +  with large start, step or length.
  
 -- Issue #6716: Quote -x arguments of compileall in MSI installer.
 +- Issue #16029: Fix overflow bug occurring when pickling xranges with large
 +  start, step or length.
  
 -- Issue #1628484: The Makefile doesn't ignore the CFLAGS environment
 -  variable anymore.  It also forwards the LDFLAGS settings to the linker
 -  when building a shared library.
 +- Issue #16037: Limit httplib's _read_status() function to work around broken
 +  HTTP servers and reduce memory usage. It's actually a backport of a Python
 +  3.2 fix. Thanks to Adrien Kunysz.
  
 -Tests
 ------
 +- Issue #16588: Silence unused-but-set warnings in Python/thread_pthread
  
 -- Issue #7849: Now the utility ``check_warnings`` verifies if the warnings are
 -  effectively raised.  A new private utility ``_check_py3k_warnings`` has been
 -  backported to help silencing py3k warnings.
 +- Issue #13992: The trashcan mechanism is now thread-safe.  This eliminates
 +  sporadic crashes in multi-thread programs when several long deallocator
 +  chains ran concurrently and involved subclasses of built-in container
 +  types.
  
 -- Issue #8672: Add a zlib test ensuring that an incomplete stream can be
 -  handled by a decompressor object without errors (it returns incomplete
 -  uncompressed data).
 +- Issue #15801: Make sure mappings passed to '%' formatting are actually
 +  subscriptable.
  
 -- Issue #8629: Disable some test_ssl tests, since they give different
 -  results with OpenSSL 1.0.0 and higher.
 +- Issue #15604: Update uses of PyObject_IsTrue() to check for and handle
 +  errors correctly.  Patch by Serhiy Storchaka.
 +
 +- Issue #14579: Fix error handling bug in the utf-16 decoder.  Patch by
 +  Serhiy Storchaka.
 +
 +- Issue #15368: An issue that caused bytecode generation to be
 +  non-deterministic when using randomized hashing (-R) has been fixed.
 +
 +- Issue #15897: zipimport.c doesn't check return value of fseek().
 +  Patch by Felipe Cruz.
 +
 +- Issue #16369: Global PyTypeObjects not initialized with PyType_Ready(...).
 +
 +- Issue #15033: Fix the exit status bug when modules invoked using -m switch,
 +  return the proper failure return value (1). Patch contributed by Jeff Knupp.
 +
 +- Issue #12268: File readline, readlines and read() methods no longer lose
 +  data when an underlying read system call is interrupted.  IOError is no
 +  longer raised due to a read system call returning EINTR from within these
 +  methods.
 +
 +- Issue #13512: Create ~/.pypirc securely (CVE-2011-4944).  Initial patch by
 +  Philip Jenvey, tested by Mageia and Debian.
 +
 +- Issue #7719: Make distutils ignore ``.nfs*`` files instead of choking later
 +  on.  Initial patch by SilentGhost and Jeff Ramnani.
 +
 +- Issue #10053: Don't close FDs when FileIO.__init__ fails. Loosely based on
 +  the work by Hirokazu Yamamoto.
 +
 +- Issue #14775: Fix a potential quadratic dict build-up due to the garbage
 +  collector repeatedly trying to untrack dicts.
 +
 +- Issue #14494: Fix __future__.py and its documentation to note that
 +  absolute imports are the default behavior in 3.0 instead of 2.7.
 +  Patch by Sven Marnach.
 +
 +- Issue #14761: Fix potential leak on an error case in the import machinery.
 +
 +- Issue #14699: Fix calling the classmethod descriptor directly.
 +
 +- Issue #11603 (again): Setting __repr__ to __str__ now raises a RuntimeError
 +  when repr() or str() is called on such an object.
 +
 +- Issue #14658: Fix binding a special method to a builtin implementation of a
 +  special method with a different name.
 +
 +- Issue #14612: Fix jumping around with blocks by setting f_lineno.
 +
 +- Issue #13889: Check and (if necessary) set FPU control word before calling
 +  any of the dtoa.c string <-> float conversion functions, on MSVC builds of
 +  Python.  This fixes issues when embedding Python in a Delphi app.
 +
 +- Issue #14505: Fix file descriptor leak when deallocating file objects
 +  created with PyFile_FromString().
 +
 +- Issue #14474: Save and restore exception state in thread.start_new_thread()
 +  while writing error message if the thread leaves a unhandled exception.
 +
 +- Issue #13019: Fix potential reference leaks in bytearray.extend().  Patch
 +  by Suman Saha.
 +
 +- Issue #14378: Fix compiling ast.ImportFrom nodes with a "__future__" string as
 +  the module name that was not interned.
 +
 +- Issue #14331: Use significantly less stack space when importing modules by
 +  allocating path buffers on the heap instead of the stack.
 +
 +- Issue #14334: Prevent in a segfault in type.__getattribute__ when it was not
 +  passed strings. Also fix segfaults in the __getattribute__ and __setattr__
 +  methods of old-style classes.
 +
 +- Issue #14161: fix the __repr__ of file objects to escape the file name.
 +
 +- Issue #1469629: Allow cycles through an object's __dict__ slot to be
 +  collected. (For example if ``x.__dict__ is x``).
 +
 +- Issue #13521: dict.setdefault() now does only one lookup for the given key,
 +  making it "atomic" for many purposes.  Patch by Filip Gruszczyński.
 +
 +- Issue #1602133: on Mac OS X a shared library build (``--enable-shared``)
 +  now fills the ``os.environ`` variable correctly.
 +
 +- Issue #10538: When using the "s*" code with PyArg_ParseTuple() to fill a
 +  Py_buffer structure with data from an object supporting only the old
 +  PyBuffer interface, a reference to the source objects is now properly added
 +  to the Py_buffer.obj member.
 +
 +Library
 +-------
 +
 +- Issue #12718: Fix interaction with winpdb overriding __import__ by setting
 +  importer attribute on BaseConfigurator instance.
 +
 +- Issue #17521: Corrected non-enabling of logger following two calls to
 +  fileConfig().
 +
 +- Issue #17508: Corrected MemoryHandler configuration in dictConfig() where
 +  the target handler wasn't configured first.
 +
 +- Issue #10212: cStringIO and struct.unpack support new buffer objects.
 +
 +- Issue #12098: multiprocessing on Windows now starts child processes
 +  using the same sys.flags as the current process.  Initial patch by
 +  Sergey Mezentsev.
 +
 +- Issue #8862: Fixed curses cleanup when getkey is interrputed by a signal.
 +
 +- Issue #9090: When a socket with a timeout fails with EWOULDBLOCK or EAGAIN,
 +  retry the select() loop instead of bailing out.  This is because select()
 +  can incorrectly report a socket as ready for reading (for example, if it
 +  received some data with an invalid checksum).
 +
 +- Issue #1285086: Get rid of the refcounting hack and speed up urllib.unquote().
 +
 +- Issue #17368: Fix an off-by-one error in the Python JSON decoder that caused
 +  a failure while decoding empty object literals when object_pairs_hook was
 +  specified.
 +
 +- Issue #17278: Fix a crash in heapq.heappush() and heapq.heappop() when
 +  the list is being resized concurrently.
 +
 +- Issue #17018: Make Process.join() retry if os.waitpid() fails with EINTR.
 +
 +- Issue #14720: sqlite3: Convert datetime microseconds correctly.
 +  Patch by Lowe Thiderman.
 +
 +- Issue #17225: JSON decoder now counts columns in the first line starting
 +  with 1, as in other lines.
 +
 +- Issue #7842: backported fix for py_compile.compile() syntax error handling.
 +
 +- Issue #13153: Tkinter functions now raise TclError instead of ValueError when
 +  a unicode argument contains non-BMP character.
 +
 +- Issue #9669: Protect re against infinite loops on zero-width matching in
 +  non-greedy repeat.  Patch by Matthew Barnett.
 +
 +- Issue #13169: The maximal repetition number in a regular expression has been
 +  increased from 65534 to 2147483647 (on 32-bit platform) or 4294967294 (on
 +  64-bit).
 +
 +- Issue #16743: Fix mmap overflow check on 32 bit Windows.
 +
 +- Issue #11311: StringIO.readline(0) now returns an empty string as all other
 +  file-like objects.
 +
 +- Issue #16800: tempfile.gettempdir() no longer left temporary files when
 +  the disk is full.  Original patch by Amir Szekely.
 +
 +- Issue #13555: cPickle now supports files larger than 2 GiB.
 +
 +- Issue #17052: unittest discovery should use self.testLoader.
 +
 +- Issue #4591: Uid and gid values larger than 2**31 are supported now.
 +
 +- Issue #17141: random.vonmisesvariate() no more hangs for large kappas.
 +
 +- Issue #17149: Fix random.vonmisesvariate to always return results in
 +  the range [0, 2*math.pi].
 +
 +- Issue #1470548: XMLGenerator now works with UTF-16 and UTF-32 encodings.
 +
 +- Issue #6975: os.path.realpath() now correctly resolves multiple nested
 +  symlinks on POSIX platforms.
 +
 +- Issue #7358: cStringIO.StringIO now supports writing to and reading from
 +  a stream larger than 2 GiB on 64-bit systems.
 +
 +- Issue #10355: In SpooledTemporaryFile class mode and name properties and
 +  xreadlines method now work for unrolled files.  encoding and newlines
 +  properties now removed as they have no sense and always produced
 +  AttributeError.
 +
 +- Issue #16686: Fixed a lot of bugs in audioop module.  Fixed crashes in
 +  avgpp(), maxpp() and ratecv().  Fixed an integer overflow in add(), bias(),
 +  and ratecv().  reverse(), lin2lin() and ratecv() no more lose precision for
 +  32-bit samples.  max() and rms() no more returns a negative result and
 +  various other functions now work correctly with 32-bit sample -0x80000000.
 +
 +- Issue #17073: Fix some integer overflows in sqlite3 module.
 +
 +- Issue #6083: Fix multiple segmentation faults occured when PyArg_ParseTuple
 +  parses nested mutating sequence.
 +
 +- Issue #5289: Fix ctypes.util.find_library on Solaris.
 +
 +- Issue #17106: Fix a segmentation fault in io.TextIOWrapper when an underlying
 +  stream or a decoder produces data of an unexpected type (i.e. when
 +  io.TextIOWrapper initialized with text stream or use bytes-to-bytes codec).
 +
 +- Issue #13994: Add compatibility alias in distutils.ccompiler for
 +  distutils.sysconfig.customize_compiler.
 +
 +- Issue #15633: httplib.HTTPResponse is now mark closed when the server
 +  sends less than the advertised Content-Length.
 +
 +- Issue #15881: Fixed atexit hook in multiprocessing.
 +
 +- Issue #14340: Upgrade the embedded expat library to version 2.1.0.
 +
 +- Issue #11159: SAX parser now supports unicode file names.
 +
 +- Issue #6972: The zipfile module no longer overwrites files outside of
 +  its destination path when extracting malicious zip files.
 +
 +- Issue #17049: Localized calendar methods now return unicode if a locale
 +  includes an encoding and the result string contains month or weekday (was
 +  regression from Python 2.6).
 +
 +- Issue #4844: ZipFile now raises BadZipfile when opens a ZIP file with an
 +  incomplete "End of Central Directory" record.  Original patch by Guilherme
 +  Polo and Alan McIntyre.
 +
 +- Issue #15505: `unittest.installHandler` no longer assumes SIGINT handler is
 +  set to a callable object.
 +
 +- Issue #17051: Fix a memory leak in os.path.isdir() on Windows. Patch by
 +  Robert Xiao.
 +
 +- Issue #13454: Fix a crash when deleting an iterator created by itertools.tee()
 +  if all other iterators were very advanced before.
 +
 +- Issue #16992: On Windows in signal.set_wakeup_fd, validate the file
 +  descriptor argument.
 +
 +- Issue #15861: tkinter now correctly works with lists and tuples containing
 +  strings with whitespaces, backslashes or unbalanced braces.
 +
 +- Issue #10527: Use poll() instead of select() for multiprocessing pipes.
 +
 +- Issue #9720: zipfile now writes correct local headers for files larger than
 +  4 GiB.
 +
 +- Issue #13899: \A, \Z, and \B now correctly match the A, Z, and B literals
 +  when used inside character classes (e.g. '[\A]').  Patch by Matthew Barnett.
 +
 +- Issue #16398: Optimize deque.rotate() so that it only moves pointers
 +  and doesn't touch the underlying data with increfs and decrefs.
 +
 +- Issue #15109: Fix regression in sqlite3's iterdump method where it would
 +  die with an encoding error if the database contained string values
 +  containing non-ASCII.  (Regression was introduced by fix for 9750).
 +
 +- Issue #15545: Fix regression in sqlite3's iterdump method where it was
 +  failing if the connection used a row factory (such as sqlite3.Row) that
 +  produced unsortable objects. (Regression was introduced by fix for 9750).
 +
 +- Issue #16828: Fix error incorrectly raised by bz2.compress(''). Patch by
 +  Martin Packman.
 +
 +- Issue #9586: Redefine SEM_FAILED on MacOSX to keep compiler happy.
 +
 +- Issue #10527: make multiprocessing use poll() instead of select() if available.
 +
 +- Issue #16485: Now file descriptors are closed if file header patching failed
 +  on closing an aifc file.
 +
 +- Issue #12065: connect_ex() on an SSL socket now returns the original errno
 +  when the socket's timeout expires (it used to return None).
 +
 +- Issue #16713: Fix the parsing of tel url with params using urlparse module.
 +
 +- Issue #16443: Add docstrings to regular expression match objects.
 +  Patch by Anton Kasyanov.
 +
 +- Issue #8853: Allow port to be of type long for socket.getaddrinfo().
 +
 +- Issue #16597: In buffered and text IO, call close() on the underlying stream
 +  if invoking flush() fails.
 +
 +- Issue #15701: Fix HTTPError info method call to return the headers information.
 +
 +- Issue #16646: ftplib.FTP.makeport() might lose socket error details.
 +  (patch by Serhiy Storchaka)
 +
 +- Issue #16626: Fix infinite recursion in glob.glob() on Windows when the
 +  pattern contains a wildcard in the drive or UNC path.  Patch by Serhiy
 +  Storchaka.
 +
 +- Issue #16298: In HTTPResponse.read(), close the socket when there is no
 +  Content-Length and the incoming stream is finished.  Patch by Eran
 +  Rundstein.
 +
 +- Issue #16248: Disable code execution from the user's home directory by
 +  tkinter when the -E flag is passed to Python.  Patch by Zachary Ware.
 +
 +- Issue #16628: Fix a memory leak in ctypes.resize().
 +
 +- Issue #13614: Fix setup.py register failure with invalid rst in description.
 +  Patch by Julien Courteau and Pierre Paul Lefebvre.
 +
 +- Issue #10182: The re module doesn't truncate indices to 32 bits anymore.
 +  Patch by Serhiy Storchaka.
 +
 +- Issue #16573: In 2to3, treat enumerate() like a consuming call, so superfluous
 +  list() calls aren't added to filter(), map(), and zip() which are directly
 +  passed enumerate().
 +
 +- Issue #1160: Fix compiling large regular expressions on UCS2 builds.
 +  Patch by Serhiy Storchaka.
 +
 +- Issue #14313: zipfile now raises NotImplementedError when the compression
 +  type is unknown.
 +
 +- Issue #16408: Fix file descriptors not being closed in error conditions
 +  in the zipfile module.  Patch by Serhiy Storchaka.
 +
 +- Issue #16327: The subprocess module no longer leaks file descriptors
 +  used for stdin/stdout/stderr pipes to the child when fork() fails.
 +
 +- Issue #14396: Handle the odd rare case of waitpid returning 0 when not
 +  expected in subprocess.Popen.wait().
 +
 +- Issue #16411: Fix a bug where zlib.decompressobj().flush() might try to access
 +  previously-freed memory. Patch by Serhiy Storchaka.
 +
 +- Issue #16350: zlib.decompressobj().decompress() now accumulates data from
 +  successive calls after EOF in unused_data, instead of only saving the argument
 +  to the last call. decompressobj().flush() now correctly sets unused_data and
 +  unconsumed_tail. A bug in the handling of MemoryError when setting the
 +  unconsumed_tail attribute has also been fixed. Patch by Serhiy Storchaka.
 +
 +- Issue #12759: sre_parse now raises a proper error when the name of the group
 +  is missing.  Initial patch by Serhiy Storchaka.
 +
 +- Issue #16152: fix tokenize to ignore whitespace at the end of the code when
 +  no newline is found.  Patch by Ned Batchelder.
 +
 +- Issue #16230: Fix a crash in select.select() when one the lists changes
 +  size while iterated on.  Patch by Serhiy Storchaka.
 +
 +- Issue #16228: Fix a crash in the json module where a list changes size
 +  while it is being encoded.  Patch by Serhiy Storchaka.
 +
 +- Issue #14897: Enhance error messages of struct.pack and
 +  struct.pack_into. Patch by Matti Mäki.
 +
 +- Issue #12890: cgitb no longer prints spurious <p> tags in text
 +  mode when the logdir option is specified.
 +
 +- Issue #14398: Fix size truncation and overflow bugs in the bz2 module.
 +
 +- Issue #5148: Ignore 'U' in mode given to gzip.open() and gzip.GzipFile().
 +
 +- Issue #16220: wsgiref now always calls close() on an iterable response.
 +  Patch by Brent Tubbs.
 +
 +- Issue #16461: Wave library should be able to deal with 4GB wav files,
 +  and sample rate of 44100 Hz.
 +
 +- Issue #16176: Properly identify Windows 8 via platform.platform()
 +
 +- Issue #15756: subprocess.poll() now properly handles errno.ECHILD to
 +  return a returncode of 0 when the child has already exited or cannot
 +  be waited on.
 +
 +- Issue #12376: Pass on parameters in TextTestResult.__init__ super call
 +
 +- Issue #15222: Insert blank line after each message in mbox mailboxes
 +
 +- Issue #16013: Fix CSV Reader parsing issue with ending quote characters.
 +  Patch by Serhiy Storchaka.
 +
 +- Issue #15421: fix an OverflowError in Calendar.itermonthdates() after
 +  datetime.MAXYEAR.  Patch by Cédric Krier.
 +
 +- Issue #15970: xml.etree.ElementTree now serializes correctly the empty HTML
 +  elements 'meta' and 'param'.
 +
 +- Issue #15676: Now "mmap" check for empty files before doing the
 +  offset check.  Patch by Steven Willis.
 +
 +- Issue #15340: Fix importing the random module when /dev/urandom cannot
 +  be opened.  This was a regression caused by the hash randomization patch.
 +
 +- Issue #15841: The readable(), writable() and seekable() methods of
 +  io.BytesIO and io.StringIO objects now raise ValueError when the object has
 +  been closed.  Patch by Alessandro Moura.
 +
 +- Issue #16112: platform.architecture does not correctly escape argument to
 +  /usr/bin/file.  Patch by David Benjamin.
 +
 +- Issue #12776,#11839: call argparse type function (specified by add_argument)
 +  only once. Before, the type function was called twice in the case where the
 +  default was specified and the argument was given as well.  This was
 +  especially problematic for the FileType type, as a default file would always
 +  be opened, even if a file argument was specified on the command line.
 +
 +- Issue #15906: Fix a regression in argparse caused by the preceding change,
 +  when action='append', type='str' and default=[].
 +
 +- Issue #13370: Ensure that ctypes works on Mac OS X when Python is
 +  compiled using the clang compiler
 +
 +- Issue #15544: Fix Decimal.__float__ to work with payload-carrying NaNs.
 +
 +- Issue #15199: Fix JavaScript's default MIME type to application/javascript.
 +  Patch by Bohuslav Kabrda.
 +
 +- Issue #15477: In cmath and math modules, add workaround for platforms whose
 +  system-supplied log1p function doesn't respect signs of zeros.
 +
 +- Issue #11062: Fix adding a message from file to Babyl mailbox.
 +
 +- Issue #15646: Prevent equivalent of a fork bomb when using
 +  multiprocessing on Windows without the "if __name__ == '__main__'"
 +  idiom.
 +
 +- Issue #15567: Fix NameError when running threading._test
 +
 +- Issue #15424: Add a __sizeof__ implementation for array objects.
 +  Patch by Ludwig Hähne.
 +
 +- Issue #15538: Fix compilation of the getnameinfo() / getaddrinfo()
 +  emulation code.  Patch by Philipp Hagemeister.
 +
 +- Issue #12288: Consider '0' and '0.0' as valid initialvalue
 +  for tkinter SimpleDialog.
 +
 +- Issue #15489: Add a __sizeof__ implementation for BytesIO objects.
 +  Patch by Serhiy Storchaka.
 +
 +- Issue #15469: Add a __sizeof__ implementation for deque objects.
 +  Patch by Serhiy Storchaka.
 +
 +- Issue #15487: Add a __sizeof__ implementation for buffered I/O objects.
 +  Patch by Serhiy Storchaka.
 +
 +- Issue #15512: Add a __sizeof__ implementation for parser.
 +  Patch by Serhiy Storchaka.
 +
 +- Issue #15402: An issue in the struct module that caused sys.getsizeof to
 +  return incorrect results for struct.Struct instances has been fixed.
 +  Initial patch by Serhiy Storchaka.
 +
 +- Issue #15232: when mangle_from is True, email.Generator now correctly mangles
 +  lines that start with 'From ' that occur in a MIME preamble or epilog.
 +
 +- Issue #13922: argparse no longer incorrectly strips '--'s that appear
 +  after the first one.
 +
 +- Issue #12353: argparse now correctly handles null argument values.
 +
 +- Issue #6493: An issue in ctypes on Windows that caused structure bitfields
 +  of type ctypes.c_uint32 and width 32 to incorrectly be set has been fixed.
 +
 +- Issue #14635: telnetlib will use poll() rather than select() when possible
 +  to avoid failing due to the select() file descriptor limit.
 +
 +- Issue #15247: FileIO now raises an error when given a file descriptor
 +  pointing to a directory.
 +
 +- Issue #14591: Fix bug in Random.jumpahead that could produce an invalid
 +  Mersenne Twister state on 64-bit machines.
 +
 +- Issue #5346: Preserve permissions of mbox, MMDF and Babyl mailbox
 +  files on flush().
 +
 +- Issue #15219: Fix a reference leak when hashlib.new() is called with
 +  invalid parameters.
 +
 +- Issue #9559: If messages were only added, a new file is no longer
 +  created and renamed over the old file when flush() is called on an
 +  mbox, MMDF or Babyl mailbox.
 +
 +- Issue #14653: email.utils.mktime_tz() no longer relies on system
 +  mktime() when timezone offest is supplied.
 +
 +- Issue #6056: Make multiprocessing use setblocking(True) on the
 +  sockets it uses.  Original patch by J Derek Wilson.
 +
 +- Issue #15101: Make pool finalizer avoid joining current thread.
 +
 +- Issue #15054: A bug in tokenize.tokenize that caused string literals
 +  with 'b' and 'br' prefixes to be incorrectly tokenized has been fixed.
 +  Patch by Serhiy Storchaka.
 +
 +- Issue #15036: Mailbox no longer throws an error if a flush is done
 +  between operations when removing or changing multiple items in mbox,
 +  MMDF, or Babyl mailboxes.
 +
 +- Issue #10133: Make multiprocessing deallocate buffer if socket read
 +  fails.  Patch by Hallvard B Furuseth.
 +
 +- Issue #13854: Make multiprocessing properly handle non-integer
 +  non-string argument to SystemExit.
 +
 +- Issue #12157: Make pool.map() empty iterables correctly.  Initial
 +  patch by mouad.
 +
 +- Issue #14036: Add an additional check to validate that port in urlparse does
 +  not go in illegal range and returns None.
 +
 +- Issue #14888: Fix misbehaviour of the _md5 module when called on data
 +  larger than 2**32 bytes.
 +
 +- Issue #15908: Fix misbehaviour of the sha1 module when called on data
 +  larger than 2**32 bytes.
 +
 +- Issue #15910: Fix misbehaviour of _md5 and sha1 modules when "updating"
 +  on data larger than 2**32 bytes.
 +
 +- Issue #14875: Use float('inf') instead of float('1e66666') in the json module.
 +
 +- Issue #14572: Prevent build failures with pre-3.5.0 versions of
 +  sqlite3, such as was shipped with Centos 5 and Mac OS X 10.4.
 +
 +- Issue #14426: Correct the Date format in Expires attribute of Set-Cookie
 +  Header in Cookie.py.
 +
 +- Issue #14721: Send proper header, Content-length: 0 when the body is an empty
 +  string ''. Initial Patch contributed by Arve Knudsen.
 +
 +- Issue #14072: Fix parsing of 'tel' URIs in urlparse by making the check for
 +  ports stricter.
 +
 +- Issue #9374: Generic parsing of query and fragment portions of url for any
 +  scheme. Supported both by RFC3986 and RFC2396.
 +
 +- Issue #14798: Fix the functions in pyclbr to raise an ImportError
 +  when the first part of a dotted name is not a package. Patch by
 +  Xavier de Gaye.
 +
 +- Issue #14832: fixed the order of the argument references in the error
 +  message produced by unittest's assertItemsEqual.
 +
 +- Issue #14829: Fix bisect issues under 64-bit Windows.
 +
 +- Issue #14777: tkinter may return undecoded UTF-8 bytes as a string when
 +  accessing the Tk clipboard.  Modify clipboad_get() to first request type
 +  UTF8_STRING when no specific type is requested in an X11 windowing
 +  environment, falling back to the current default type STRING if that fails.
 +  Original patch by Thomas Kluyver.
 +
 +- Issue #12541: Be lenient with quotes around Realm field with HTTP Basic
 +  Authentation in urllib2.
 +
 +- Issue #14662: Prevent shutil failures on OS X when destination does not
 +  support chflag operations.  Patch by Hynek Schlawack.
 +
 +- Issue #14157: Fix time.strptime failing without a year on February 29th.
 +  Patch by Hynek Schlawack.
 +
 +- Issue #14768: os.path.expanduser('~/a') doesn't works correctly when HOME is '/'.
 +
 +- Issue #13183: Fix pdb skipping frames after hitting a breakpoint and running
 +  step.  Patch by Xavier de Gaye.
 +
 +- Issue #14664: It is now possible to use @unittest.skip{If,Unless} on a
 +  test class that doesn't inherit from TestCase (i.e. a mixin).
 +
 +- Issue #14160: TarFile.extractfile() failed to resolve symbolic links when
 +  the links were not located in an archive subdirectory.
 +
 +- Issue #14638: pydoc now treats non-string __name__ values as if they
 +  were missing, instead of raising an error.
 +
 +- Issue #13684: Fix httplib tunnel issue of infinite loops for certain sites
 +  which send EOF without trailing \r\n.
 +
 +- Issue #14308: Fix an exception when a "dummy" thread is in the threading
 +  module's active list after a fork().
 +
 +- Issue #14538: HTMLParser can now parse correctly start tags that contain
 +  a bare '/'.
 +
 +- Issue #14452: SysLogHandler no longer inserts a UTF-8 BOM into the message.
 +
 +- Issue #13496: Fix potential overflow in bisect.bisect algorithm when applied
 +  to a collection of size > sys.maxsize / 2.
 +
 +- Issue #14399: zipfile now recognizes that the archive has been modified even
 +  if only the comment is changed.  As a consequence of this fix, ZipFile is now
 +  a new style class.
 +
 +- Issue #7978: SocketServer now restarts the select() call when EINTR is
 +  returned.  This avoids crashing the server loop when a signal is received.
 +  Patch by Jerzy Kozera.
 +
 +- Issue #10340: asyncore - properly handle EINVAL in dispatcher constructor on
 +  OSX; avoid to call handle_connect in case of a disconnected socket which
 +  was not meant to connect.
 +
 +- Issue #12757: Fix the skipping of doctests when python is run with -OO so
 +  that it works in unittest's verbose mode as well as non-verbose mode.
 +
 +- Issue #13694: asynchronous connect in asyncore.dispatcher does not set addr
 +  attribute.
 +
 +- Issue #10484: Fix the CGIHTTPServer's PATH_INFO handling problem.
 +
 +- Issue #11199: Fix the with urllib which hangs on particular ftp urls.
 +
 +- Issue #14252: Fix subprocess.Popen.terminate() to not raise an error under
 +  Windows when the child process has already exited.
 +
 +- Issue #14195: An issue that caused weakref.WeakSet instances to incorrectly
 +  return True for a WeakSet instance 'a' in both 'a < a' and 'a > a' has been
 +  fixed.
 +
 +- Issue #14159: Fix the len() of weak sets to return a better approximation
 +  when some objects are dead or dying.  Moreover, the implementation is now
 +  O(1) rather than O(n).
 +
 +- Issue #2945: Make the distutils upload command aware of bdist_rpm products.
 +
 +- Issue #6884: Fix long-standing bugs with MANIFEST.in parsing in distutils
 +  on Windows.
 +
 +- Issue #16441: Avoid excessive memory usage working with large gzip
 +  files using the gzip module.
 +
 +- Issue #15782: Prevent compile errors of OS X Carbon modules _Fm, _Qd, and
 +  _Qdoffs when compiling with an SDK of 10.7 or later.  The OS X APIs they
 +  wrap have long been deprecated and have now been removed with 10.7.
 +  These modules were already empty for 64-bit builds and have been removed
 +  in Python 3.
 +
 +Extension Modules
 +-----------------
 +
 +- Issue #17477: Update the bsddb module to pybsddb 5.3.0, supporting
 +  db-5.x, and dropping support for db-4.1 and db-4.2.
 +
 +- Issue #17192: Update the ctypes module's libffi to v3.0.13.  This
 +  specifically addresses a stack misalignment issue on x86 and issues on
 +  some more recent platforms.
 +
 +- Issue #12268: The io module file object write methods no longer abort early
 +  when a write system calls is interrupted (EINTR).
 +
 +- Fix the leak of a dict in the time module when used in an embedded
 +  interpreter that is repeatedly initialized and shutdown and reinitialized.
 +
 +- Issue #12268: File readline, readlines and read or readall methods
 +  no longer lose data when an underlying read system call is interrupted
 +  within an io module object.  IOError is no longer raised due to a read
 +  system call returning EINTR from within these methods.
 +
 +- Issue #16012: Fix a regression in pyexpat. The parser's UseForeignDTD()
 +  method doesn't require an argument again.
 +
 +- Issue #13590: OS X Xcode 4 - improve support for universal extension modules
 +  In particular, fix extension module build failures when trying to use
 +  32-bit-only installer Pythons on systems with Xcode 4 (currently
 +  OS X 10.8, 10.7, and optionally 10.6).
 +  * Backport 3.3.0 fixes to 2.7 branch (for release in 2.7.4)
 +  * Since Xcode 4 removes ppc support, extension module builds now
 +    check for ppc compiler support and by default remove ppc and
 +    ppc64 archs when they are not available.
 +  * Extension module builds now revert to using system installed
 +    headers and libs (/usr and /System/Library) if the SDK used
 +    to build the interpreter is not installed or has moved.
 +  * Try to avoid building extension modules with deprecated
 +    and problematic Apple llvm-gcc compiler.  If original compiler
 +    is not available, use clang instead by default.
 +
 +IDLE
 +----
 +
 +- IDLE was displaying spurious SystemExit tracebacks when running scripts
 +  that terminated by raising SystemExit (i.e. unittest and turtledemo).
 +
 +- Issue #9290: In IDLE the sys.std* streams now implement io.TextIOBase
 +  interface and support all mandatory methods and properties.
 +
 +- Issue #16829: IDLE printing no longer fails if there are spaces or other
 +  special characters in the file path.
 +
 +- Issue #16819: IDLE method completion now correctly works for unicode literals.
 +
 +- Issue #16504: IDLE now catches SyntaxErrors raised by tokenizer. Patch by
 +  Roger Serwy.
 +
 +- Issue #1207589: Add Cut/Copy/Paste items to IDLE right click Context Menu
 +  Patch by Todd Rovito.
 +
 +- Issue #13052: Fix IDLE crashing when replace string in Search/Replace dialog
 +  ended with '\'. Patch by Roger Serwy.
 +
 +- Issue #9803: Don't close IDLE on saving if breakpoint is open.
 +  Patch by Roger Serwy.
 +
 +- Issue #14958: Change IDLE systax highlighting to recognize all string and byte
 +  literals currently supported in Python 2.7.
 +
 +- Issue #14962: Update text coloring in IDLE shell window after changing
 +  options.  Patch by Roger Serwy.
 +
 +- Issue #10997: Prevent a duplicate entry in IDLE's "Recent Files" menu.
 +
 +- Issue #12510: Attempting to get invalid tooltip no longer closes IDLE.
 +  Original patch by Roger Serwy.
 +
 +- Issue #10365: File open dialog now works instead of crashing
 +  even when parent window is closed. Patch by Roger Serwy.
 +
 +- Issue #14876: Use user-selected font for highlight configuration.
 +  Patch by Roger Serwy.
 +
 +- Issue #14409: IDLE now properly executes commands in the Shell window
 +  when it cannot read the normal config files on startup and
 +  has to use the built-in default key bindings.
 +  There was previously a bug in one of the defaults.
 +
 +- Issue #3573: IDLE hangs when passing invalid command line args
 +  (directory(ies) instead of file(s)) (Patch by Guilherme Polo)
 +
 +- Issue #5219: Prevent event handler cascade in IDLE.
 +
 +Tests
 +-----
 +
 +- Issue #16702: test_urllib2_localnet tests now correctly ignores proxies for
 +  localhost tests.
 +
 +- Issue #13447: Add a test file to host regression tests for bugs in the
 +  scripts found in the Tools directory.
 +
 +- Issue #11420: make test suite pass with -B/DONTWRITEBYTECODE set.
 +  Initial patch by Thomas Wouters.
 +
 +- Issue #17299: Add test coverage for cPickle with file objects and general IO
 +  objects.  Original patch by Aman Shah.
 +
 +- Issue #11963: remove human verification from test_parser and test_subprocess.
 +
 +- Issue #17249: convert a test in test_capi to use unittest and reap threads.
 +
 +- We now run both test_email.py and test_email_renamed.py when running the
 +  test_email regression test.  test_email_renamed contains some tests that
 +  test_email does not.
 +
 +- Issue #17041: Fix testing when Python is configured with the
 +  --without-doc-strings option.
 +
 +- Issue #15539: Added regression tests for Tools/scripts/pindent.py.
 +
 +- Issue #15324: Fix regrtest parsing of --fromfile and --randomize options.
 +
 +- Issue #16618: Add more regression tests for glob.
 +  Patch by Serhiy Storchaka.
 +
 +- Issue #16664: Add regression tests for glob's behaviour concerning entries
 +  starting with a ".".  Patch by Sebastian Kreft.
 +
 +- Issue #15747: ZFS always returns EOPNOTSUPP when attempting to set the
 +  UF_IMMUTABLE flag (via either chflags or lchflags); refactor affected
 +  tests in test_posix.py to account for this.
 +
 +- Issue #16549: Add tests for json.tools.  Initial patch by Berker Peksag
 +  and Serhiy Storchaka.
 +
 +- Issue #16559: Add more tests for the json module, including some from the
 +  official test suite at json.org.  Patch by Serhiy Storchaka.
 +
 +- Issue #16274: Fix test_asyncore on Solaris.  Patch by Giampaolo Rodola'.
 +
 +- Issue #15040: Close files in mailbox tests for PyPy compatibility.
 +  Original patch by Matti Picus.
 +
 +- Issue #15802: Fix test logic in TestMaildir.test_create_tmp. Patch
 +  by Serhiy Storchaka.
 +
 +- Issue #15765: Extend a previous fix to Solaris and OpenBSD for quirky
 +  getcwd() behaviour (issue #9185) to NetBSD as well.
 +
 +- Issue #15615: Add some tests for the json module's handling of invalid
 +  input data.  Patch by Kushal Das.
 +
 +- Issue #15496: Add directory removal helpers for tests on Windows.
 +  Patch by Jeremy Kloth.
 +
 +- Issue #15043: test_gdb is now skipped entirely if gdb security settings
 +  block loading of the gdb hooks
 +
 +- Issue #14589: Update certificate chain for sha256.tbs-internet.com, fixing
 +  a test failure in test_ssl.
 +
 +- Issue #16698: Skip posix test_getgroups when built with OS X
 +  deployment target prior to 10.6.
 +
 +- Issue #17111: Prevent test_surrogates (test_fileio) failure on OS X 10.4.
 +
 +Build
 +-----
 +
 +- Issue #17425: Build against openssl 0.9.8y on Windows.
 +
 +- Issue #16004: Add `make touch`.
 +
 +- Issue #5033: Fix building of the sqlite3 extension module when the
 +  SQLite library version has "beta" in it. Patch by Andreas Pelme.
 +
 +- Issue #17228: Fix building without pymalloc.
 +
 +- Issue #17086: Backport the patches from the 3.3 branch to cross-build
 +  the package.
 +
 +- Issue #3754: fix typo in pthread AC_CACHE_VAL.
 +
 +- Issue #17029: Let h2py search the multiarch system include directory.
 +
 +- Issue #16953: Fix socket module compilation on platforms with
 +  HAVE_BROKEN_POLL. Patch by Jeffrey Armstrong.
 +
 +- Issue #16836: Enable IPv6 support even if IPv6 is disabled on the build host.
 +
 +- Issue #15923: fix a mistake in asdl_c.py that resulted in a TypeError after
 +  2801bf875a24 (see #15801).
 +
 +- Issue #11715: Fix multiarch detection without having Debian development
 +  tools (dpkg-dev) installed.
 +
 +- Issue #15819: Make sure we can build Python out-of-tree from a readonly
 +  source directory.  (Somewhat related to Issue #9860.)
 +
 +- Issue #15822: Ensure 2to3 grammar pickles are properly installed.
 +
 +- Issue #15560: Fix building _sqlite3 extension on OS X with an SDK.
 +
 +- Issue #8847: Disable COMDAT folding in Windows PGO builds.
 +
 +- Issue #14018: Fix OS X Tcl/Tk framework checking when using OS X SDKs.
 +
 +- Issue #16256: OS X installer now sets correct permissions for doc directory.
 +
 +- Issue #8767: Restore building with --disable-unicode.
 +  Patch by Stefano Taschini.
 +
 +- Build against bzip2 1.0.6 and openssl 0.9.8x on Windows.
 +
 +- Issue #14557: Fix extensions build on HP-UX. Patch by Adi Roiban.
 +
 +- Issue #14437: Fix building the _io module under Cygwin.
 +
 +- Issue #15587: Enable Tk high-resolution text rendering on Macs with
 +  Retina displays.  Applies to Tkinter apps, such as IDLE, on OS X
 +  framework builds linked with Cocoa Tk 8.5.
 +
 +- Issue #17161: make install now also installs a python2 and python man page.
 +
 +- Issue #16848: python-config now returns proper --ldflags values for OS X
 +  framework builds.
 +
 +Tools/Demos
 +-----------
 +
 +- Issue #17156: pygettext.py now correctly escapes non-ascii characters.
 +
 +- Issue #15539: Fix a number of bugs in Tools/scripts/pindent.py.  Now
 +  pindent.py works with a "with" statement.  pindent.py no longer produces
 +  improper indentation.  pindent.py now works with continued lines broken after
 +  "class" or "def" keywords and with continuations at the start of line.
 +
 +- Issue #16476: Fix json.tool to avoid including trailing whitespace.
 +
 +- Issue #13301: use ast.literal_eval() instead of eval() in Tools/i18n/msgfmt.py
 +  Patch by Serhiy Storchaka.
 +
 +Documentation
 +-------------
 +
 +- Issue #15041: Update "see also" list in tkinter documentation.
 +
 +- Issue #17412: update 2.7 Doc/make.bat to also use sphinx-1.0.7.
 +
 +- Issue #17047: remove doubled words in docs and docstrings
 +  reported by Serhiy Storchaka and Matthew Barnett.
 +
 +- Issue #16406: combine the pages for uploading and registering to PyPI.
 +
 +- Issue #16403: Document how distutils uses the maintainer field in
 +  PKG-INFO. Patch by Jyrki Pulliainen.
 +
 +- Issue #16695: Document how glob handles filenames starting with a
 +  dot. Initial patch by Jyrki Pulliainen.
 +
 +- Issue #8890: Stop advertising an insecure practice by replacing uses
 +  of the /tmp directory with better alternatives in the documentation.
 +  Patch by Geoff Wilson.
 +
 +- Issue #17203: add long option names to unittest discovery docs.
 +
 +- Issue #13094: add "Why do lambdas defined in a loop with different values
 +  all return the same result?" programming FAQ.
 +
 +- Issue #14901: Update portions of the Windows FAQ.
 +  Patch by Ashish Nitin Patil.
 +
 +- Issue #15990: Improve argument/parameter documentation.
 +
 +- Issue #16400: Update the description of which versions of a given package
 +  PyPI displays.
 +
 +- Issue #15677: Document that zlib and gzip accept a compression level of 0 to
 +  mean 'no compression'. Patch by Brian Brazil.
 +
 +- Issue #8040: added a version switcher to the documentation.  Patch by
 +  Yury Selivanov.
 +
 +- Issue #16115: Improve subprocess.Popen() documentation around args, shell,
 +  and executable arguments.
 +
 +- Issue #15979: Improve timeit documentation.
 +
 +- Issue #16036: Improve documentation of built-in int()'s signature and
 +  arguments.
 +
 +- Issue #15935: Clarification of argparse docs, re: add_argument() type and
 +  default arguments.  Patch contributed by Chris Jerdonek.
 +
 +- Issue #13769: Document the effect of ensure_ascii to the return type
 +  of JSON decoding functions.
 +
 +- Issue #14880: Fix kwargs notation in csv.reader, .writer & .register_dialect.
 +  Patch by Chris Rebert.
 +
 +- Issue #14674: Add a discussion of the json module's standard compliance.
 +  Patch by Chris Rebert.
 +
 +- Issue #15630: Add an example for "continue" stmt in the tutorial. Patch by
 +  Daniel Ellis.
 +
 +- Issue #13557: Clarify effect of giving two different namespaces to exec or
 +  execfile().
 +
 +- Issue #14034: added the argparse tutorial.
 +
 +- Issue #15250: Document that filecmp.dircmp compares files shallowly. Patch
 +  contributed by Chris Jerdonek.
 +
 +- Issue #15116: Remove references to appscript as it is no longer being
 +  supported.
 +
 +
 +What's New in Python 2.7.3 release candidate 2?
 +===============================================
 +
 +*Release date: 2012-03-17*
 +
 +Library
 +-------
 +
 +- Issue #14234: CVE-2012-0876: Randomize hashes of xml attributes in the hash
 +  table internal to the pyexpat module's copy of the expat library to avoid a
 +  denial of service due to hash collisions.  Patch by David Malcolm with some
 +  modifications by the expat project.
 +
 +
 +What's New in Python 2.7.3 release candidate 1?
 +===============================================
 +
 +*Release date: 2012-02-23*
 +
 +Core and Builtins
 +-----------------
 +
 +- Issue #13020: Fix a reference leak when allocating a structsequence object
 +  fails.  Patch by Suman Saha.
 +
 +- Issue #13703: oCERT-2011-003: add -R command-line option and PYTHONHASHSEED
 +  environment variable, to provide an opt-in way to protect against denial of
 +  service attacks due to hash collisions within the dict and set types.  Patch
 +  by David Malcolm, based on work by Victor Stinner.
 +
 +- Issue #11235: Fix OverflowError when trying to import a source file whose
 +  modification time doesn't fit in a 32-bit timestamp.
 +
 +- Issue #11638: Unicode strings in 'name' and 'version' no longer cause
 +  UnicodeDecodeErrors.
 +
 +- Fix the fix for issue #12149: it was incorrect, although it had the side
 +  effect of appearing to resolve the issue.  Thanks to Mark Shannon for
 +  noticing.
 +
 +- Issue #13546: Fixed an overflow issue that could crash the intepreter when
 +  calling sys.setrecursionlimit((1<<31)-1).
 +
 +- Issue #13333: The UTF-7 decoder now accepts lone surrogates (the encoder
 +  already accepts them).
 +
 +- Issue #10519: Avoid unnecessary recursive function calls in
 +  setobject.c.
 +
 +- Issue #13268: Fix the assert statement when a tuple is passed as the message.
 +
 +- Issue #13018: Fix reference leaks in error paths in dictobject.c.
 +  Patch by Suman Saha.
 +
 +- Issue #12604: VTRACE macro expanded to no-op in _sre.c to avoid compiler
 +  warnings. Patch by Josh Triplett and Petri Lehtinen.
 +
 +- Issue #7833: Extension modules built using distutils on Windows will no
 +  longer include a "manifest" to prevent them failing at import time in some
 +  embedded situations.
 +
 +- Issue #13186: Fix __delitem__ on old-style instances when invoked through
 +  PySequence_DelItem.
 +
 +- Issue #13156: Revert the patch for issue #10517 (reset TLS upon fork()),
 +  which was only relevant for the native pthread TLS implementation.
 +
 +- Issue #7732: Fix a crash on importing a module if a directory has the same
 +  name than a Python module (e.g. "__init__.py"): don't close the file twice.
 +
 +- Issue #12973: Fix overflow checks that invoked undefined behaviour in
 +  int.__pow__.  These overflow checks were causing int.__pow__ to produce
 +  incorrect results with recent versions of Clang, as a result of the
 +  compiler optimizing the check away.  Also fix similar overflow checks
 +  in list_repeat (listobject.c) and islice_next (itertoolsmodule.c).  These
 +  bugs caused test failures with recent versions of Clang.
 +
 +- Issue #12266: Fix str.capitalize() to correctly uppercase/lowercase
 +  titlecased and cased non-letter characters.
 +
 +- Issues #12610 and #12609: Verify that user generated AST has correct string
 +  and identifier types before compiling.
 +
 +- Issue #11627: Fix segfault when __new__ on a exception returns a
 +  non-exception class.
 +
 +- Issue #12149: Update the method cache after a type's dictionnary gets
 +  cleared by the garbage collector.  This fixes a segfault when an instance
 +  and its type get caught in a reference cycle, and the instance's
 +  deallocator calls one of the methods on the type (e.g. when subclassing
 +  IOBase).  Diagnosis and patch by Davide Rizzo.
 +
 +- Issue #12501: Remove Py3k warning for callable. callable() is supported
 +  again in Python 3.2.
 +
 +- Issue #9611, #9015: FileIO.read(), FileIO.readinto(), FileIO.write() and
 +  os.write() clamp the length to INT_MAX on Windows.
 +
 +- Issue #1195: my_fgets() now always clears errors before calling fgets(). Fix
 +  the following case: sys.stdin.read() stopped with CTRL+d (end of file),
 +  raw_input() interrupted by CTRL+c.
 +
 +- Issue #10860: httplib now correctly handles an empty port after port
 +  delimiter in URLs.
 +
 +- dict_proxy objects now display their contents rather than just the class
 +  name.
 +
 +Library
 +-------
 +
 +- Issue #8033: sqlite3: Fix 64-bit integer handling in user functions
 +  on 32-bit architectures. Initial patch by Philippe Devalkeneer.
 +
 +- HTMLParser is now able to handle slashes in the start tag.
 +
 +- Issue #14001: CVE-2012-0845: xmlrpc: Fix an endless loop in
 +  SimpleXMLRPCServer upon malformed POST request.
 +
 +- Issue #2489: pty.spawn could consume 100% cpu when it encountered an EOF.
 +
 +- Issue #13014: Fix a possible reference leak in SSLSocket.getpeercert().
 +
 +- Issue #13987: HTMLParser is now able to handle EOFs in the middle of a
 +  construct and malformed start tags.
 +
 +- Issue #13015: Fix a possible reference leak in defaultdict.__repr__.
 +  Patch by Suman Saha.
 +
 +- Issue #13979: A bug in ctypes.util.find_library that caused
 +  the wrong library name to be returned has been fixed.
 +
 +- Issue #1326113: distutils' build_ext command --libraries option now
 +  correctly parses multiple values separated by whitespace or commas.
 +
 +- Issue #13993: HTMLParser is now able to handle broken end tags.
 +
 +- Issue #13960: HTMLParser is now able to handle broken comments.
 +
 +- Issue #9750: Fix sqlite3.Connection.iterdump on tables and fields
 +  with a name that is a keyword or contains quotes. Patch by Marko
 +  Kohtala.
 +
 +- Issue #13994: Earlier partial revert of Distutils enhancements in 2.7
 +  has left two versions of customize_compiler, the original in
 +  distutils.sysconfig and another copy in distutils.ccompiler, with some
 +  parts of distutils calling one and others using the other.
 +  Complete the revert back to only having one in distutils.sysconfig as
 +  is the case in 3.x.
 +
 +- Issue #13590: On OS X 10.7 and 10.6 with Xcode 4.2, building
 +  Distutils-based packages with C extension modules may fail because
 +  Apple has removed gcc-4.2, the version used to build python.org
 +  64-bit/32-bit Pythons.  If the user does not explicitly override
 +  the default C compiler by setting the CC environment variable,
 +  Distutils will now attempt to compile extension modules with clang
 +  if gcc-4.2 is required but not found. Also as a convenience, if
 +  the user does explicitly set CC, substitute its value as the default
 +  compiler in the Distutils LDSHARED configuration variable for OS X.
 +  (Note, the python.org 32-bit-only Pythons use gcc-4.0 and the 10.4u
 +  SDK, neither of which are available in Xcode 4.  This change does not
 +  attempt to override settings to support their use with Xcode 4.)
 +
 +- Issue #9021: Add an introduction to the copy module documentation.
 +
 +- Issue #6005: Examples in the socket library documentation use sendall, where
 +  relevant, instead send method.
 +
 +- Issue #10811: Fix recursive usage of cursors. Instead of crashing,
 +  raise a ProgrammingError now.
 +
 +- Issue #13676: Handle strings with embedded zeros correctly in sqlite3.
 +
 +- Issue #13806: The size check in audioop decompression functions was too
 +  strict and could reject valid compressed data.  Patch by Oleg Plakhotnyuk.
 +
 +- Issue #13885: CVE-2011-3389: the _ssl module would always disable the CBC
 +  IV attack countermeasure.
 +
 +- Issue #6631: Disallow relative file paths in urllib urlopen methods.
 +
 +- Issue #13781: Prevent gzip.GzipFile from using the dummy filename provided by
 +  file objects opened with os.fdopen().
 +
 +- Issue #13589: Fix some serialization primitives in the aifc module.
 +  Patch by Oleg Plakhotnyuk.
 +
 +- Issue #13803: Under Solaris, distutils doesn't include bitness
 +  in the directory name.
 +
 +- Issue #13642: Unquote before b64encoding user:password during Basic
 +  Authentication. Patch contributed by Joonas Kuorilehto and Michele Orrù.
 +
 +- Issue #13636: Weak ciphers are now disabled by default in the ssl module
 +  (except when SSLv2 is explicitly asked for).
 +
 +- Issue #12798: Updated the mimetypes documentation.
 +
 +- Issue #13639: Accept unicode filenames in tarfile.open(mode="w|gz").
 +
 +- Issue #1785: Fix inspect and pydoc with misbehaving descriptors.
 +
 +- Issue #7502: Fix equality comparison for DocTestCase instances.  Patch by
 +  Cédric Krier.
 +
 +- Issue #11870: threading: Properly reinitialize threads internal locks and
 +  condition variables to avoid deadlocks in child processes.
 +
 +- Issue #8035: urllib: Fix a bug where the client could remain stuck after a
 +  redirection or an error.
 +
 +- tarfile.py: Correctly detect bzip2 compressed streams with blocksizes
 +  other than 900k.
 +
 +- Issue #13573: The csv.writer now uses the repr() for floats rather than str().
 +  This allows floats to round-trip without loss of precision.
 +
 +- Issue #13439: Fix many errors in turtle docstrings.
 +
 +- Issue #12856: Ensure child processes do not inherit the parent's random
 +  seed for filename generation in the tempfile module.  Patch by Brian
 +  Harring.
 +
 +- Issue #13458: Fix a memory leak in the ssl module when decoding a
 +  certificate with a subjectAltName.  Patch by Robert Xiao.
 +
 +- Issue #13415: os.unsetenv() doesn't ignore errors anymore.
 +
 +- Issue #13322: Fix BufferedWriter.write() to ensure that BlockingIOError is
 +  raised when the wrapped raw file is non-blocking and the write would block.
 +  Previous code assumed that the raw write() would raise BlockingIOError, but
 +  RawIOBase.write() is defined to returned None when the call would block.
 +  Patch by sbt.
 +
 +- Issue #13358: HTMLParser now calls handle_data only once for each CDATA.
 +
 +- Issue #4147: minidom's toprettyxml no longer adds whitespace around a text
 +  node when it is the only child of an element.  Initial patch by Dan
 +  Kenigsberg.
 +
 +- Issues #1745761, #755670, #13357, #12629, #1200313: HTMLParser now correctly
 +  handles non-valid attributes, including adjacent and unquoted attributes.
 +
 +- Issue #13373: multiprocessing.Queue.get() could sometimes block indefinitely
 +  when called with a timeout.  Patch by Arnaud Ysmal.
 +
 +- Issue #3067: Enhance the documentation and docstring of
 +  locale.setlocale().
 +
 +- Issue #13254: Fix Maildir initialization so that maildir contents
 +  are read correctly.
 +
 +- Issue #13140: Fix the daemon_threads attribute of ThreadingMixIn.
 +
 +- Issue #2892: preserve iterparse events in case of SyntaxError.
 +
 +- Issue #670664: Fix HTMLParser to correctly handle the content of
 +  ``<script>...</script>`` and ``<style>...</style>``.
 +
 +- Issue #10817: Fix urlretrieve function to raise ContentTooShortError even
 +  when reporthook is None. Patch by Jyrki Pulliainen.
 +
 +- Issue #7334: close source files on ElementTree.parse and iterparse.
 +
 +- Issue #13232: logging: Improved logging of exceptions in the presence of
 +  multiple encodings.
 +
 +- Issue #10332: multiprocessing: fix a race condition when a Pool is closed
 +  before all tasks have completed.
 +
 +- Issue #1548891: The cStringIO.StringIO() constructor now encodes unicode
 +  arguments with the system default encoding just like the write() method
 +  does, instead of converting it to a raw buffer.  This also fixes handling of
 +  unicode input in the shlex module (#6988, #1170).
 +
 +- Issue #9168: now smtpd is able to bind privileged port.
 +
 +- Issue #12529: fix cgi.parse_header issue on strings with double-quotes and
 +  semicolons together. Patch by Ben Darnell and Petri Lehtinen.
 +
 +- Issue #6090: zipfile raises a ValueError when a document with a timestamp
 +  earlier than 1980 is provided. Patch contributed by Petri Lehtinen.
 +
 +- Issue #13194: zlib.compressobj().copy() and zlib.decompressobj().copy() are
 +  now available on Windows.
 +
 +- Issue #13114: Fix the distutils commands check and register when the
 +  long description is a Unicode string with non-ASCII characters.
 +
 +- Issue #7367: Fix pkgutil.walk_paths to skip directories whose
 +  contents cannot be read.
 +
 +- Issue #7425: Prevent pydoc -k failures due to module import errors.
 +  (Backport to 2.7 of existing 3.x fix)
 +
 +- Issue #13099: Fix sqlite3.Cursor.lastrowid under a Turkish locale.
 +  Reported and diagnosed by Thomas Kluyver.
 +
 +- Issue #7689: Allow pickling of dynamically created classes when their
 +  metaclass is registered with copy_reg.  Patch by Nicolas M. Thiéry and
 +  Craig Citro.
 +
 +- Issue #13058: ossaudiodev: fix a file descriptor leak on error. Patch by
 +  Thomas Jarosch.
 +
 +- Issue #12931: xmlrpclib now encodes Unicode URI to ISO-8859-1, instead of
 +  failing with a UnicodeDecodeError.
 +
 +- Issue #8933: distutils' PKG-INFO files will now correctly report
 +  Metadata-Version: 1.1 instead of 1.0 if a Classifier or Download-URL field is
 +  present.
 +
 +- Issue #8286: The distutils command sdist will print a warning message instead
 +  of crashing when an invalid path is given in the manifest template.
 +
 +- Issue #12841: tarfile unnecessarily checked the existence of numerical user
 +  and group ids on extraction. If one of them did not exist the respective id
 +  of the current user (i.e. root) was used for the file and ownership
 +  information was lost.
 +
 +- Issue #10946: The distutils commands bdist_dumb, bdist_wininst and bdist_msi
 +  now respect a --skip-build option given to bdist.
 +
 +- Issue #12287: Fix a stack corruption in ossaudiodev module when the FD is
 +  greater than FD_SETSIZE.
 +
 +- Issue #12839: Fix crash in zlib module due to version mismatch.
 +  Fix by Richard M. Tew.
 +
 +- Issue #12786: Set communication pipes used by subprocess.Popen CLOEXEC to
 +  avoid them being inherited by other subprocesses.
 +
 +- Issue #4106: Fix occasional exceptions printed out by multiprocessing on
 +  interpreter shutdown.
 +
 +- Issue #11657: Fix sending file descriptors over 255 over a multiprocessing
 +  Pipe.
 +
 +- Issue #12213: Fix a buffering bug with interleaved reads and writes that
 +  could appear on io.BufferedRandom streams.
 +
 +- Issue #12326: sys.platform is now always 'linux2' on Linux, even if Python
 +  is compiled on Linux 3.
 +
 +- Issue #13007: whichdb should recognize gdbm 1.9 magic numbers.
 +
 +- Issue #9173: Let shutil._make_archive work if the logger argument is None.
 +
 +- Issue #12650: Fix a race condition where a subprocess.Popen could leak
 +  resources (FD/zombie) when killed at the wrong time.
 +
 +- Issue #12752: Fix regression which prevented locale.normalize() from
 +  accepting unicode strings.
 +
 +- Issue #12683: urlparse updated to include svn as schemes that uses relative
 +  paths. (svn from 1.5 onwards support relative path).
 +
 +- Issue #11933: Fix incorrect mtime comparison in distutils.
 +
 +- Issues #11104, #8688: Fix the behavior of distutils' sdist command with
 +  manually-maintained MANIFEST files.
 +
 +- Issue #8887: "pydoc somebuiltin.somemethod" (or help('somebuiltin.somemethod')
 +  in Python code) now finds the doc of the method.
 +
 +- Issue #12603: Fix pydoc.synopsis() on files with non-negative st_mtime.
 +
 +- Issue #12514: Use try/finally to assure the timeit module restores garbage
 +  collections when it is done.
 +
 +- Issue #12607: In subprocess, fix issue where if stdin, stdout or stderr is
 +  given as a low fd, it gets overwritten.
 +
 +- Issue #12102: Document that buffered files must be flushed before being used
 +  with mmap. Patch by Steffen Daode Nurpmeso.
 +
 +- Issue #12560: Build libpython.so on OpenBSD. Patch by Stefan Sperling.
 +
 +- Issue #1813: Fix codec lookup and setting/getting locales under Turkish
 +  locales.
 +
 +- Issue #10883: Fix socket leaks in urllib when using FTP.
 +
 +- Issue #12592: Make Python build on OpenBSD 5 (and future major releases).
 +
 +- Issue #12372: POSIX semaphores are broken on AIX: don't use them.
 +
 +- Issue #12571: Add a plat-linux3 directory mirroring the plat-linux2
 +  directory, so that "import DLFCN" and other similar imports work on
 +  Linux 3.0.
 +
 +- Issue #7484: smtplib no longer puts <> around addresses in VRFY and EXPN
 +  commands; they aren't required and in fact postfix doesn't support that form.
 +
 +- Issue #11603: Fix a crash when __str__ is rebound as __repr__.  Patch by
 +  Andreas Stührk.
 +
 +- Issue #12502: asyncore: fix polling loop with AF_UNIX sockets.
 +
 +- Issue #4376: ctypes now supports nested structures in a endian different than
 +  the parent structure. Patch by Vlad Riscutia.
 +
 +- Issue #12493: subprocess: Popen.communicate() now also handles EINTR errors
 +  if the process has only one pipe.
 +
 +- Issue #12467: warnings: fix a race condition if a warning is emitted at
 +  shutdown, if globals()['__file__'] is None.
 +
 +- Issue #12352: Fix a deadlock in multiprocessing.Heap when a block is freed by
 +  the garbage collector while the Heap lock is held.
 +
 +- Issue #9516: On Mac OS X, change Distutils to no longer globally attempt to
 +  check or set the MACOSX_DEPLOYMENT_TARGET environment variable for the
 +  interpreter process.  This could cause failures in non-Distutils subprocesses
 +  and was unreliable since tests or user programs could modify the interpreter
 +  environment after Distutils set it.  Instead, have Distutils set the
 +  deployment target only in the environment of each build subprocess.  It is
 +  still possible to globally override the default by setting
 +  MACOSX_DEPLOYMENT_TARGET before launching the interpreter; its value must be
 +  greater or equal to the default value, the value with which the interpreter
 +  was built.
 +
 +- Issue #11802:  The cache in filecmp now has a maximum size of 100 so that
 +  it won't grow without bound.
 +
 +- Issue #12404: Remove C89 incompatible code from mmap module. Patch by Akira
 +  Kitada.
 +
 +- Issue #11700: mailbox proxy object close methods can now be called multiple
 +  times without error, and _ProxyFile now closes the wrapped file.
 +
 +- Issue #12133: AbstractHTTPHandler.do_open() of urllib.request closes the HTTP
 +  connection if its getresponse() method fails with a socket error. Patch
 +  written by Ezio Melotti.
 +
 +- Issue #9284: Allow inspect.findsource() to find the source of doctest
 +  functions.
 +
 +- Issue #10694: zipfile now ignores garbage at the end of a zipfile.
 +
 +- Issue #11583: Speed up os.path.isdir on Windows by using GetFileAttributes
 +  instead of os.stat.
 +
 +- Issue #12080: Fix a performance issue in Decimal._power_exact that caused
 +  some corner-case Decimal.__pow__ calls to take an unreasonably long time.
 +
 +- Named tuples now work correctly with vars().
 +
 +- sys.setcheckinterval() now updates the current ticker count as well as
 +  updating the check interval, so if the user decreases the check interval,
 +  the ticker doesn't have to wind down to zero from the old starting point
 +  before the new interval takes effect.  And if the user increases the
 +  interval, it makes sure the new limit takes effect right away rather have an
 +  early task switch before recognizing the new interval.
 +
 +- Issue #12085: Fix an attribute error in subprocess.Popen destructor if the
 +  constructor has failed, e.g. because of an undeclared keyword argument. Patch
 +  written by Oleg Oshmyan.
 +
 +Extension Modules
 +-----------------
 +
 +- Issue #9041: An issue in ctypes.c_longdouble, ctypes.c_double, and
 +  ctypes.c_float that caused an incorrect exception to be returned in the
 +  case of overflow has been fixed.
 +
 +- bsddb module: Erratic behaviour of "DBEnv->rep_elect()" because a typo.
 +  Possible crash.
 +
 +- Issue #13774: json: Fix a SystemError when a bogus encoding is passed to
 +  json.loads().
 +
 +- Issue #9975: socket: Fix incorrect use of flowinfo and scope_id. Patch by
 +  Vilmos Nebehaj.
 +
 +- Issue #13159: FileIO, BZ2File, and the built-in file class now use a
 +  linear-time buffer growth strategy instead of a quadratic one.
 +
 +- Issue #13070: Fix a crash when a TextIOWrapper caught in a reference cycle
 +  would be finalized after the reference to its underlying BufferedRWPair's
 +  writer got cleared by the GC.
 +
 +- Issue #12881: ctypes: Fix segfault with large structure field names.
 +
 +- Issue #13013: ctypes: Fix a reference leak in PyCArrayType_from_ctype.
 +  Thanks to Suman Saha for finding the bug and providing a patch.
 +
 +- Issue #13022: Fix: _multiprocessing.recvfd() doesn't check that
 +  file descriptor was actually received.
 +
 +- Issue #12483: ctypes: Fix a crash when the destruction of a callback
 +  object triggers the garbage collector.
 +
 +- Issue #12950: Fix passing file descriptors in multiprocessing, under
 +  OpenIndiana/Illumos.
 +
 +- Issue #12764: Fix a crash in ctypes when the name of a Structure field is not
 +  a string.
 +
 +- Issue #9651: Fix a crash when ctypes.create_string_buffer(0) was passed to
 +  some functions like file.write().
 +
 +- Issue #10309: Define _GNU_SOURCE so that mremap() gets the proper
 +  signature.  Without this, architectures where sizeof void* != sizeof int are
 +  broken.  Patch given by Hallvard B Furuseth.
 +
 +IDLE
 +----
 +
 +- Issue #964437 Make IDLE help window non-modal.
 +  Patch by Guilherme Polo and Roger Serwy.
 +
 +- Issue #13933: IDLE auto-complete did not work with some imported
 +  module, like hashlib.  (Patch by Roger Serwy)
 +
 +- Issue #13506: Add '' to path for IDLE Shell when started and restarted with Restart Shell.
 +  Original patches by Marco Scataglini and Roger Serwy.
 +
 +- Issue #4625: If IDLE cannot write to its recent file or breakpoint
 +  files, display a message popup and continue rather than crash.
 +  (original patch by Roger Serwy)
 +
 +- Issue #8793: Prevent IDLE crash when given strings with invalid hex escape
 +  sequences.
 +
 +- Issue #13296: Fix IDLE to clear compile __future__ flags on shell restart.
 +  (Patch by Roger Serwy)
 +
 +Build
 +-----
 +
 +- Issue #6807: Run msisupport.mak earlier.
 +
 +- Issue #10580: Minor grammar change in Windows installer.
 +
 +- Issue #12627: Implement PEP 394 for Python 2.7 ("python2").
 +
 +- Issue #8746: Correct faulty configure checks so that os.chflags() and
 +  os.lchflags() are once again built on systems that support these
 +  functions (*BSD and OS X).  Also add new stat file flags for OS X
 +  (UF_HIDDEN and UF_COMPRESSED).
 +
 +Tools/Demos
 +-----------
 +
 +- Issue #14053: patchcheck.py ("make patchcheck") now works with MQ patches.
 +  Patch by Francisco Martín Brugué.
 +
 +- Issue #13930: 2to3 is now able to write its converted output files to another
 +  directory tree as well as copying unchanged files and altering the file
 +  suffix.  See its new -o, -W and --add-suffix options.  This makes it more
 +  useful in many automated code translation workflows.
 +
 +- Issue #10639: reindent.py no longer converts newlines and will raise
 +  an error if attempting to convert a file with mixed newlines.
 +
 +- Issue #13628: python-gdb.py is now able to retrieve more frames in the Python
 +  traceback if Python is optimized.
 +
 +Tests
 +-----
 +
 +- Issue #15467: Move helpers for __sizeof__ tests into test_support.
 +  Patch by Serhiy Storchaka.
 +
 +- Issue #11689: Fix a variable scoping error in an sqlite3 test.
 +  Initial patch by Torsten Landschoff.
 +
 +- Issue #10881: Fix test_site failures with OS X framework builds.
 +
 +- Issue #13901: Prevent test_distutils failures on OS X with --enable-shared.
 +
 +- Issue #13304: Skip test case if user site-packages disabled (-s or
 +  PYTHONNOUSERSITE).  (Patch by Carl Meyer)
 +
 +- Issue #13218: Fix test_ssl failures on Debian/Ubuntu.
 +
 +- Issue #12821: Fix test_fcntl failures on OpenBSD 5.
 +
 +- Issue #12331: The test suite for lib2to3 can now run from an installed
 +  Python.
 +
 +- Issue #12549: Correct test_platform to not fail when OS X returns 'x86_64'
 +  as the processor type on some Mac systems.
 +
 +- Skip network tests when getaddrinfo() returns EAI_AGAIN, meaning a temporary
 +  failure in name resolution.
 +
 +- Issue #11812: Solve transient socket failure to connect to 'localhost'
 +  in test_telnetlib.py.
 +
 +- Solved a potential deadlock in test_telnetlib.py. Related to issue #11812.
 +
 +- Avoid failing in test_robotparser when mueblesmoraleda.com is flaky and
 +  an overzealous DNS service (e.g. OpenDNS) redirects to a placeholder
 +  Web site.
 +
 +- Avoid failing in test_urllibnet.test_bad_address when some overzealous
 +  DNS service (e.g. OpenDNS) resolves a non-existent domain name.  The test
 +  is now skipped instead.
 +
 +- Issue #8716: Avoid crashes caused by Aqua Tk on OSX when attempting to run
 +  test_tk or test_ttk_guionly under a username that is not currently logged
 +  in to the console windowserver (as may be the case under buildbot or ssh).
 +
 +- Issue #12141: Install a copy of template C module file so that
 +  test_build_ext of test_distutils is no longer silently skipped when
 +  run outside of a build directory.
 +
 +- Issue #8746: Add additional tests for os.chflags() and os.lchflags().
 +  Patch by Garrett Cooper.
 +
 +- Issue #10736: Fix test_ttk test_widgets failures with Cocoa Tk 8.5.9
 +  on Mac OS X.  (Patch by Ronald Oussoren)
 +
 +- Issue #12057: Add tests for ISO 2022 codecs (iso2022_jp, iso2022_jp_2,
 +  iso2022_kr).
 +
 +Documentation
 +-------------
 +
 +- Issues #13491 and #13995: Fix many errors in sqlite3 documentation.
 +  Initial patch for #13491 by Johannes Vogel.
 +
 +- Issue #13402: Document absoluteness of sys.executable.
 +
 +- Issue #13883: PYTHONCASEOK also works on OS X, OS/2, and RiscOS.
 +
 +- Issue #2134: The tokenize documentation has been clarified to explain why
 +  all operator and delimiter tokens are treated as token.OP tokens.
 +
 +- Issue #13513: Fix io.IOBase documentation to correctly link to the
 +  io.IOBase.readline method instead of the readline module.
 +
 +- Issue #13237: Reorganise subprocess documentation to emphasise convenience
 +  functions and the most commonly needed arguments to Popen.
 +
 +- Issue #13141: Demonstrate recommended style for SocketServer examples.
 +
 +
 +What's New in Python 2.7.2?
 +===========================
 +
 +*Release date: 2011-06-11*
 +
 +Library
 +-------
 +
 +- Issue #12009: Fixed regression in netrc file comment handling.
 +
 +Extension Modules
 +-----------------
 +
 +- Issue #1221: Make pyexpat.__version__ equal to the Python version.
 +
 +
 +What's New in Python 2.7.2 release candidate 1?
 +===============================================
 +
 +*Release date: 2011-05-29*
 +
 +Core and Builtins
 +-----------------
 +
 +- Issue #9670: Increase the default stack size for secondary threads on
 +  Mac OS X and FreeBSD to reduce the chances of a crash instead of a
 +  "maximum recursion depth" RuntimeError exception.
 +  (patch by Ronald Oussoren)
 +
 +- Correct lookup of __dir__ on objects. This allows old-style classes to have
 +  __dir__. It also causes errors besides AttributeError found on lookup to be
 +  propagated.
 +
 +- Issue #1195: Fix input() if it is interrupted by CTRL+d and then CTRL+c,
 +  clear the end-of-file indicator after CTRL+d.
 +
 +- Issue #8651: PyArg_Parse*() functions raise an OverflowError if the file
 +  doesn't have PY_SSIZE_T_CLEAN define and the size doesn't fit in an int
 +  (length bigger than 2^31-1 bytes).
 +
 +- Issue #8651: Fix "z#" format of PyArg_Parse*() function: the size was not
 +  written if PY_SSIZE_T_CLEAN is defined.
 +
 +- Issue #9756: When calling a method descriptor or a slot wrapper descriptor,
 +  the check of the object type doesn't read the __class__ attribute anymore.
 +  Fix a crash if a class override its __class__ attribute (e.g. a proxy of the
 +  str type). Patch written by Andreas Stührk.
 +
 +- Issue #10517: After fork(), reinitialize the TLS used by the PyGILState_*
 +  APIs, to avoid a crash with the pthread implementation in RHEL 5.  Patch
 +  by Charles-François Natali.
 +
 +- Issue #6780: fix starts/endswith error message to mention that tuples are
 +  accepted too.
 +
 +- Issue #5057: fix a bug in the peepholer that led to non-portable pyc files
 +  between narrow and wide builds while optimizing BINARY_SUBSCR on non-BMP
 +  chars (e.g. u"\U00012345"[0]).
 +
 +- Issue #11650: PyOS_StdioReadline() retries fgets() if it was interrupted
 +  (EINTR), for example if the program is stopped with CTRL+z on Mac OS X. Patch
 +  written by Charles-Francois Natali.
 +
 +- Issue #11144: Ensure that int(a_float) returns an int whenever possible.
 +  Previously, there were some corner cases where a long was returned even
 +  though the result was within the range of an int.
 +
 +- Issue #11450: Don't truncate hg version info in Py_GetBuildInfo() when
 +  there are many tags (e.g. when using mq).  Patch by Nadeem Vawda.
 +
 +- Issue #10451: memoryview objects could allow to mutate a readable buffer.
 +  Initial patch by Ross Lagerwall.
 +
 +- Issue #10892: Don't segfault when trying to delete __abstractmethods__ from a
 +  class.
 +
 +- Issue #8020: Avoid a crash where the small objects allocator would read
 +  non-Python managed memory while it is being modified by another thread.
 +  Patch by Matt Bandy.
 +
 +- Issue #11004: Repaired edge case in deque.count().
 +
 +- Issue #8278: On Windows and with a NTFS filesystem, os.stat() and os.utime()
 +  can now handle dates after 2038.
 +
 +- Issue #4236: Py_InitModule4 now checks the import machinery directly
 +  rather than the Py_IsInitialized flag, avoiding a Fatal Python
 +  error in certain circumstances when an import is done in __del__.
 +
 +- Issue #11828: startswith and endswith don't accept None as slice index.
 +  Patch by Torsten Becker.
 +
 +- Issue #10674: Remove unused 'dictmaker' rule from grammar.
 +
 +- Issue #10596: Fix float.__mod__ to have the same behaviour as
 +  float.__divmod__ with respect to signed zeros.  -4.0 % 4.0 should be
 +  0.0, not -0.0.
 +
 +- Issue #11386: bytearray.pop() now throws IndexError when the bytearray is
 +  empty, instead of OverflowError.
 +
 +Library
 +-------
 +
 +- Issue #12161: Cause StringIO.getvalue() to raise a ValueError when used on a
 +  closed StringIO instance.
 +
 +- Issue #12182: Fix pydoc.HTMLDoc.multicolumn() if Python uses the new (true)
 +  division (python -Qnew). Patch written by Ralf W. Grosse-Kunstleve.
 +
 +- Issue #12175: RawIOBase.readall() now returns None if read() returns None.
 +
 +- Issue #12175: FileIO.readall() now raises a ValueError instead of an IOError
 +  if the file is closed.
 +
 +- Issue #1441530: In imaplib, use makefile() to wrap the SSL socket to avoid
 +  heap fragmentation and MemoryError with some malloc implementations.
 +
 +- Issue #12100: Don't reset incremental encoders of CJK codecs at each call to
 +  their encode() method anymore, but continue to call the reset() method if the
 +  final argument is True.
 +
 +- Issue #12124: zipimport doesn't keep a reference to zlib.decompress() anymore
 +  to be able to unload the module.
 +
 +- Issue #10154, #10090: change the normalization of UTF-8 to "UTF-8" instead
 +  of "UTF8" in the locale module as the latter is not supported MacOSX and OpenBSD.
 +
 +- Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is
 +  set in shell.
 +
 +- Issue #12050: zlib.decompressobj().decompress() now clears the unconsumed_tail
 +  attribute when called without a max_length argument.
 +
 +- Issue #12062: In the `io` module, fix a flushing bug when doing a certain
 +  type of I/O sequence on a file opened in read+write mode (namely: reading,
 +  seeking a bit forward, writing, then seeking before the previous write but
 +  still within buffered data, and writing again).
 +
 +- Issue #8498: In socket.accept(), allow to specify 0 as a backlog value in
 +  order to accept exactly one connection.  Patch by Daniel Evers.
 +
 +- Issue #12012: ssl.PROTOCOL_SSLv2 becomes optional.
 +
 +- Issue #11927: SMTP_SSL now uses port 465 by default as documented.  Patch
 +  by Kasun Herath.
 +
 +- Issue #11999: fixed sporadic sync failure mailbox.Maildir due to its trying to
 +  detect mtime changes by comparing to the system clock instead of to the
 +  previous value of the mtime.
 +
 +- Issue #10684: shutil.move used to delete a folder on case insensitive
 +  filesystems when the source and destination name where the same except
 +  for the case.
 +
 +- Issue #11982: fix json.loads('""') to return u'' rather than ''.
 +
 +- Issue #11277: mmap.mmap() calls fcntl(fd, F_FULLFSYNC) on Mac OS X to get
 +  around a mmap bug with sparse files. Patch written by Steffen Daode Nurpmeso.
 +
 +- Issue #10761: Fix tarfile.extractall failure  when symlinked files are
 +  present. Initial patch by Scott Leerssen.
 +
 +- Issue #11763: don't use difflib in TestCase.assertMultiLineEqual if the
 +  strings are too long.
 +
 +- Issue #11236: getpass.getpass responds to ctrl-c or ctrl-z on terminal.
 +
 +- Issue #11768: The signal handler of the signal module only calls
 +  Py_AddPendingCall() for the first signal to fix a deadlock on reentrant or
 +  parallel calls. PyErr_SetInterrupt() writes also into the wake up file.
 +
 +- Issue #11875: collections.OrderedDict's __reduce__ was temporarily
 +  mutating the object instead of just working on a copy.
 +
 +- Issue #11442: Add a charset parameter to the Content-type in SimpleHTTPServer
 +  to avoid XSS attacks.
 +
 +- Issue #11467: Fix urlparse behavior when handling urls which contains scheme
 +  specific part only digits. Patch by Santoso Wijaya.
 +
 +- collections.Counter().copy() now works correctly for subclasses.
 +
 +- Issue #11474: Fix the bug with url2pathname() handling of '/C|/' on Windows.
 +  Patch by Santoso Wijaya.
 +
 +- Issue #9233: Fix json.loads('{}') to return a dict (instead of a list), when
 +  _json is not available.
 +
 +- Issue #11703: urllib2.geturl() does not return correct url when the original
 +  url contains #fragment.
 +
 +- Issue #10019: Fixed regression in json module where an indent of 0 stopped
 +  adding newlines and acted instead like 'None'.
 +
 +- Issue #5162: Treat services like frozen executables to allow child spawning
 +  from multiprocessing.forking on Windows.
 +
 +- Issue #4877: Fix a segfault in xml.parsers.expat while attempting to parse
 +  a closed file.
 +
 +- Issue #11830: Remove unnecessary introspection code in the decimal module.
 +  It was causing a failed import in the Turkish locale where the locale
 +  sensitive str.upper() method caused a name mismatch.
 +
 +- Issue #8428: Fix a race condition in multiprocessing.Pool when terminating
 +  worker processes: new processes would be spawned while the pool is being
 +  shut down.  Patch by Charles-François Natali.
 +
 +- Issue #7311: Fix HTMLParser to accept non-ASCII attribute values.
 +
 +- Issue #10963: Ensure that subprocess.communicate() never raises EPIPE.
 +
 +- Issue #11662: Make urllib and urllib2 ignore redirections if the
 +  scheme is not HTTP, HTTPS or FTP (CVE-2011-1521).
 +
 +- Issue #11256: Fix inspect.getcallargs on functions that take only keyword
 +  arguments.
 +
 +- Issue #11696: Fix ID generation in msilib.
 +
 +- Issue #9696: Fix exception incorrectly raised by xdrlib.Packer.pack_int when
 +  trying to pack a negative (in-range) integer.
 +
 +- Issue #11675: multiprocessing.[Raw]Array objects created from an integer size
 +  are now zeroed on creation.  This matches the behaviour specified by the
 +  documentation.
 +
 +- Issue #7639: Fix short file name generation in bdist_msi.
 +
 +- Issue #11666: let help() display named tuple attributes and methods
 +  that start with a leading underscore.
 +
 +- Issue #11673: Fix multiprocessing Array and RawArray constructors to accept a
 +  size of type 'long', rather than only accepting 'int'.
 +
 +- Issue #10042: Fixed the total_ordering decorator to handle cross-type
 +  comparisons that could lead to infinite recursion.
 +
 +- Issue #10979: unittest stdout buffering now works with class and module
 +  setup and teardown.
 +
 +- Issue #11569: use absolute path to the sysctl command in multiprocessing to
 +  ensure that it will be found regardless of the shell PATH. This ensures
 +  that multiprocessing.cpu_count works on default installs of MacOSX.
 +
 +- Issue #11500: Fixed a bug in the os x proxy bypass code for fully qualified
 +  IP addresses in the proxy exception list.
 +
 +- Issue #11131: Fix sign of zero in plus and minus operations when
 +  the context rounding mode is ROUND_FLOOR.
 +
 +- Issue #5622: Fix curses.wrapper to raise correct exception if curses
 +  initialization fails.
 +
 +- Issue #11391: Writing to a mmap object created with
 +  ``mmap.PROT_READ|mmap.PROT_EXEC`` would segfault instead of raising a
 +  TypeError.  Patch by Charles-François Natali.
 +
 +- Issue #11306: mailbox in certain cases adapts to an inability to open
 +  certain files in read-write mode.  Previously it detected this by
 +  checking for EACCES, now it also checks for EROFS.
 +
 +- Issue #11265: asyncore now correctly handles EPIPE, EBADF and EAGAIN errors
 +  on accept(), send() and recv().
 +
 +- Issue #11326: Add the missing connect_ex() implementation for SSL sockets,
 +  and make it work for non-blocking connects.
 +
 +- Issue #10956: Buffered I/O classes retry reading or writing after a signal
 +  has arrived and the handler returned successfully.
 +
 +- Issue #10680: Fix mutually exclusive arguments for argument groups in
 +  argparse.
 +
 +- Issue #4681: Allow mmap() to work on file sizes and offsets larger than
 +  4GB, even on 32-bit builds.  Initial patch by Ross Lagerwall, adapted for
 +  32-bit Windows.
 +
 +- Issue #10360: In WeakSet, do not raise TypeErrors when testing for
 +  membership of non-weakrefable objects.
 +
 +- Issue #10549: Fix pydoc traceback when text-documenting certain classes.
 +
 +- Issue #940286: pydoc.Helper.help() ignores input/output init parameters.
 +
 +- Issue #11171: Fix detection of config/Makefile when --prefix !=
 +  --exec-prefix, which caused Python to not start.
 +
 +- Issue #11116: any error during addition of a message to a mailbox now causes
 +  a rollback, instead of leaving the mailbox partially modified.
 +
 +- Issue #8275: Fix passing of callback arguments with ctypes under Win64.
 +  Patch by Stan Mihai.
 +
 +- Issue #10949: Improved robustness of rotating file handlers.
 +
 +- Issue #10955: Fix a potential crash when trying to mmap() a file past its
 +  length.  Initial patch by Ross Lagerwall.
 +
 +- Issue #10898: Allow compiling the posix module when the C library defines
 +  a symbol named FSTAT.
 +
 +- Issue #10916: mmap should not segfault when a file is mapped using 0 as
 +  length and a non-zero offset, and an attempt to read past the end of file
 +  is made (IndexError is raised instead).  Patch by Ross Lagerwall.
 +
 +- Issue #10875: Update Regular Expression HOWTO; patch by 'SilentGhost'.
 +
 +- Issue #10827: Changed the rules for 2-digit years.  The time.asctime
 +  function will now format any year when ``time.accept2dyear`` is
 +  false and will accept years >= 1000 otherwise.  The year range
 +  accepted by ``time.mktime`` and ``time.strftime`` is still system
 +  dependent, but ``time.mktime`` will now accept full range supported
 +  by the OS.  Conversion of 2-digit years to 4-digit is deprecated.
 +
 +- Issue #10869: Fixed bug where ast.increment_lineno modified the root
 +  node twice.
 +
 +- Issue #7858: Raise an error properly when os.utime() fails under Windows
 +  on an existing file.
 +
 +- Issue #3839: wsgiref should not override a Content-Length header set by
 +  the application.  Initial patch by Clovis Fabricio.
 +
 +- Issue #10806, issue #9905: Fix subprocess pipes when some of the standard
 +  file descriptors (0, 1, 2) are closed in the parent process.  Initial
 +  patch by Ross Lagerwall.
 +
 +- Issue #4662: os.tempnam(), os.tmpfile() and os.tmpnam() now raise a py3k
 +  DeprecationWarning.
 +
 +- Subclasses of collections.OrderedDict now work correctly with __missing__.
 +
 +- Issue #10753 - Characters ';', '=' and ',' in the PATH_INFO environment
 +  variable won't be quoted when the URI is constructed by the wsgiref.util 's
 +  request_uri method. According to RFC 3986, these characters can be a part of
 +  params in PATH component of URI and need not be quoted.
 +
 +- Issue #10738: Fix webbrowser.Opera.raise_opts
 +
 +- Issue #9824: SimpleCookie now encodes , and ; in values to cater to how
 +  browsers actually parse cookies.
 +
 +- Issue #1379416: eliminated a source of accidental unicode promotion in
 +  email.header.Header.encode.
 +
 +- Issue #5258/#10642: if site.py encounters a .pth file that generates an error,
 +  it now prints the filename, line number, and traceback to stderr and skips
 +  the rest of that individual file, instead of stopping processing entirely.
 +
 +- Issue #10750: The ``raw`` attribute of buffered IO objects is now read-only.
 +
 +- Issue #10242: unittest.TestCase.assertItemsEqual makes too many assumptions
 +  about input.
 +
 +- Issue #10611: SystemExit should not cause a unittest test run to exit.
 +
 +- Issue #6791: Limit header line length (to 65535 bytes) in http.client,
 +  to avoid denial of services from the other party.
 +
 +- Issue #9907: Fix tab handling on OSX when using editline by calling
 +  rl_initialize first, then setting our custom defaults, then reading .editrc.
 +
 +- Issue #4188: Avoid creating dummy thread objects when logging operations
 +  from the threading module (with the internal verbose flag activated).
 +
 +- Issue #9721: Fix the behavior of urljoin when the relative url starts with a
 +  ';' character. Patch by Wes Chow.
 +
 +- Issue #10714: Limit length of incoming request in http.server to 65536 bytes
 +  for security reasons.  Initial patch by Ross Lagerwall.
 +
 +- Issue #9558: Fix distutils.command.build_ext with VS 8.0.
 +
 +- Issue #10695: passing the port as a string value to telnetlib no longer
 +  causes debug mode to fail.
 +
 +- Issue #10478: Reentrant calls inside buffered IO objects (for example by
 +  way of a signal handler) now raise a RuntimeError instead of freezing the
 +  current process.
 +
 +- Issue #10497: Fix incorrect use of gettext in argparse.
 +
 +- Issue #10464: netrc now correctly handles lines with embedded '#' characters.
 +
 +- Issue #1731717: Fixed the problem where subprocess.wait() could cause an
 +  OSError exception when The OS had been told to ignore SIGCLD in our process
 +  or otherwise not wait for exiting child processes.
 +
 +- Issue #9509: argparse now properly handles IOErrors raised by
 +  argparse.FileType.
 +
 +- Issue #9348: Raise an early error if argparse nargs and metavar don't match.
 +
 +- Issue #8982: Improve the documentation for the argparse Namespace object.
 +
 +- Issue #9343: Document that argparse parent parsers must be configured before
 +  their children.
 +
 +- Issue #9026: Fix order of argparse sub-commands in help messages.
 +
 +- Issue #9347: Fix formatting for tuples in argparse type= error messages.
 +
 +Extension Modules
 +-----------------
 +
 +- Stop using the old interface for providing methods and attributes in the _sre
 +  module. Among other things, this gives these classes ``__class__``
 +  attributes. (See #12099)
 +
 +- Issue #10169: Fix argument parsing in socket.sendto() to avoid error masking.
 +
 +- Issue #12051: Fix segfault in json.dumps() while encoding highly-nested
 +  objects using the C accelerations.
 +
 +- Issue #12017: Fix segfault in json.loads() while decoding highly-nested
 +  objects using the C accelerations.
 +
 +- Issue #1838: Prevent segfault in ctypes, when _as_parameter_ on a class is set
 +  to an instance of the class.
 +
 +- Issue #678250: Make mmap flush a noop on ACCESS_READ and ACCESS_COPY.
 +
 +IDLE
 +----
 +
 +- Issue #11718: IDLE's open module dialog couldn't find the __init__.py
 +  file in a package.
 +
 +- Issue #12590: IDLE editor window now always displays the first line
 +  when opening a long file.  With Tk 8.5, the first line was hidden.
 +
 +- Issue #11088: don't crash when using F5 to run a script in IDLE on MacOSX
 +  with Tk 8.5.
 +
 +- Issue #10940: Workaround an IDLE hang on Mac OS X 10.6 when using the
 +  menu accelerators for Open Module, Go to Line, and New Indent Width.
 +  The accelerators still work but no longer appear in the menu items.
 +
 +- Issue #10907: Warn OS X 10.6 IDLE users to use ActiveState Tcl/Tk 8.5, rather
 +  than the currently problematic Apple-supplied one, when running with the
 +  64-/32-bit installer variant.
 +
 +- Issue #11052: Correct IDLE menu accelerators on Mac OS X for Save
 +  commands.
 +
 +- Issue #6075: IDLE on Mac OS X now works with both Carbon AquaTk and
 +  Cocoa AquaTk.
 +
 +- Issue #10404: Use ctl-button-1 on OSX for the context menu in Idle.
 +
 +- Issue #10107: Warn about unsaved files in IDLE on OSX.
 +
 +- Issue #10406: Enable Rstrip IDLE extension on OSX (just like on other
 +  platforms).
 +
 +Build
 +-----
 +
 +- Issue #11217: For 64-bit/32-bit Mac OS X universal framework builds,
 +  ensure "make install" creates symlinks in --prefix bin for the "-32"
 +  files in the framework bin directory like the installer does.
 +
 +- Issue #11411: Fix 'make DESTDIR=' with a relative destination.
 +
 +- Issue #10709: Add updated AIX notes in Misc/README.AIX.
 +
 +- Issue #11184: Fix large-file support on AIX.
 +
 +- Issue #941346: Fix broken shared library build on AIX.
 +
 +- Issue #11268: Prevent Mac OS X Installer failure if Documentation
 +  package had previously been installed.
 +
 +- Issue #11079: The /Applications/Python x.x folder created by the Mac
 +  OS X installers now includes a link to the installed documentation.
 +
 +- Issue #11054: Allow Mac OS X installer builds to again work on 10.5 with
 +  the system-provided Python.
 +
 +- Issue #10843: Update third-party library versions used in OS X
 +  32-bit installer builds: bzip2 1.0.6, readline 6.1.2, SQLite 3.7.4
 +  (with FTS3/FTS4 and RTREE enabled), and ncursesw 5.5 (wide-char
 +  support enabled).
 +
 +- Don't run pgen twice when using make -j.
 +
 +- Issue #7716: Under Solaris, don't assume existence of /usr/xpg4/bin/grep in
 +  the configure script but use $GREP instead.  Patch by Fabian Groffen.
 +
 +- Issue #10475: Don't hardcode compilers for LDSHARED/LDCXXSHARED on NetBSD
 +  and DragonFly BSD.  Patch by Nicolas Joly.
 +
 +- Issue #10655: Fix the build on PowerPC on Linux with GCC when building with
 +  timestamp profiling (--with-tsc): the preprocessor test for the PowerPC
 +  support now looks for "__powerpc__" as well as "__ppc__": the latter seems to
 +  only be present on OS X; the former is the correct one for Linux with GCC.
 +
 +- Issue #1099: Fix the build on MacOSX when building a framework with pydebug
 +  using GCC 4.0.
 +
 +Tests
 +-----
 +
 +- Issue #11164: Remove obsolete allnodes test from minidom test.
 +
 +- Issue #12205: Fix test_subprocess failure due to uninstalled test data.
 +
 +- Issue #5723: Improve json tests to be executed with and without accelerations.
 +
 +- Issue #11910: Fix test_heapq to skip the C tests when _heapq is missing.
 +
 +- Fix test_startfile to wait for child process to terminate before finishing.
 +
 +- Issue #11719: Fix message about unexpected test_msilib skip on non-Windows
 +  platforms. Patch by Nadeem Vawda.
 +
 +- Issue #7108: Fix test_commands to not fail when special attributes ('@'
 +  or '.') appear in 'ls -l' output.
 +
 +- Issue #11490: test_subprocess:test_leaking_fds_on_error no longer gives a
 +  false positive if the last directory in the path is inaccessible.
 +
 +- Issue #10822: Fix test_posix:test_getgroups failure under Solaris.  Patch
 +  by Ross Lagerwall.
 +
 +- Issue #6293: Have regrtest.py echo back sys.flags.  This is done by default
 +  in whole runs and enabled selectively using ``--header`` when running an
 +  explicit list of tests.  Original patch by Collin Winter.
 +
 +- Issue #775964: test_grp now skips YP/NIS entries instead of failing when
 +  encountering them.
 +
 +- Issue #7110: regrtest now sends test failure reports and single-failure
 +  tracebacks to stderr rather than stdout.
 +
 +
 +What's New in Python 2.7.1?
 +===========================
 +
 +*Release date: 2010-11-27*
 +
 +Library
 +-------
 +
 +- Issue #2236: distutils' mkpath ignored the mode parameter.
 +
 +- Fix typo in one sdist option (medata-check).
 +
 +- Issue #10323: itertools.islice() now consumes the minimum number of
 +  inputs before stopping.  Formerly, the final state of the underlying
 +  iterator was undefined.
 +
 +- Issue #10565: The collections.Iterator ABC now checks for both
 +  ``__iter__`` and ``next``.
 +
 +- Issue #10092: Properly reset locale in calendar.Locale*Calendar classes.
 +
 +- Issue #10459: Update CJK character names to Unicode 5.2.
 +
 +- Issue #6098: Don't claim DOM level 3 conformance in minidom.
 +
 +- Issue #10561: In pdb, clear the breakpoints by the breakpoint number.
 +
 +- Issue #5762: Fix AttributeError raised by ``xml.dom.minidom`` when an empty
 +  XML namespace attribute is encountered.
 +
 +- Issue #1710703: Write structures for an empty ZIP archive when a ZipFile is
 +  created in modes 'a' or 'w' and then closed without adding any files. Raise
 +  BadZipfile (rather than IOError) when opening small non-ZIP files.
 +
 +- Issue #4493: urllib2 adds '/' in front of path components which does not
 +  start with '/. Common behavior exhibited by browsers and other clients.
 +
 +- Issue #10407: Fix one NameError in distutils.
 +
 +- Issue #10198: fix duplicate header written to wave files when writeframes()
 +  is called without data.
 +
 +- Issue #10467: Fix BytesIO.readinto() after seeking into a position after the
 +  end of the file.
 +
 +- Issue #5111: IPv6 Host in the Header is wrapped inside [ ]. Patch by Chandru.
 +
 +IDLE
 +----
 +
 +- Issue #6378: idle.bat now runs with the appropriate Python version rather than
 +  the system default. Patch by Sridhar Ratnakumar.
 +
 +Build
 +-----
 +
 +- Backport r83399 to allow test_distutils to pass on installed versions.
 +
 +- Issue #1303434: Generate ZIP file containing all PDBs.
 +
 +Tests
 +-----
 +
 +- Issue #9424: Replace deprecated assert* methods in the Python test suite.
 +
 +Documentation
 +-------------
 +
 +- Issue #10299: List the built-in functions in a table in functions.rst.
 +
 +
 +What's New in Python 2.7.1 release candidate 1?
 +===============================================
 +
 +*Release date: 2010-11-13*
 +
 +Core and Builtins
 +-----------------
 +
 +- Issue #10221: dict.pop(k) now has a key error message that includes the
 +  missing key (same message d[k] returns for missing keys).
 +
 +- Issue #10125: Don't segfault when the iterator passed to
 +  ``file.writelines()`` closes the file.
 +
 +- Issue #10186: Fix the SyntaxError caret when the offset is equal to the
 +  length of the offending line.
 +
 +- Issue #9997: Don't let the name "top" have special significance in scope
 +  resolution.
 +
 +- Issue #9862: Compensate for broken PIPE_BUF in AIX by hard coding
 +  its value as the default 512 when compiling on AIX.
 +
 +- Issue #9675: CObject use is marked as a Py3k warning, not a deprecation
 +  warning.
 +
 +- Issue #10068: Global objects which have reference cycles with their module's
 +  dict are now cleared again. This causes issue #7140 to appear again.
 +
 +- Issue #9869: Make long() and PyNumber_Long return something of type
 +  long for a class whose __long__ method returns a plain int.  This
 +  fixes an interpreter crash when initializing an instance of a long
 +  subclass from an object whose __long__ method returns a plain int.
 +
 +- Issue #10006: type.__abstractmethods__ now raises an AttributeError.
 +
 +- Issue #9797: pystate.c wrongly assumed that zero couldn't be a valid
 +  thread-local storage key.
 +
 +- Issue #4947: The write() method of sys.stdout and sys.stderr uses their
 +  encoding and errors attributes instead of using utf-8 in strict mode, to get
 +  the same behaviour than the print statement.
 +
 +- Issue #9737: Fix a crash when trying to delete a slice or an item from
 +  a memoryview object.
 +
 +- Restore GIL in nis_cat in case of error.
 +
 +- Issue #9688: __basicsize__ and __itemsize__ must be accessed as Py_ssize_t.
 +
 +- Issue #8530: Prevent stringlib fastsearch from reading beyond the front
 +  of an array.
 +
 +- Issue #83755:  Implicit set-to-frozenset conversion was not thread-safe.
 +
 +- Issue #9416: Fix some issues with complex formatting where the
 +  output with no type specifier failed to match the str output:
 +
 +    - format(complex(-0.0, 2.0), '-') omitted the real part from the output,
 +    - format(complex(0.0, 2.0), '-') included a sign and parentheses.
 +
 +- Issue #7616: Fix copying of overlapping memoryview slices with the Intel
 +  compiler.
 +
 +Library
 +-------
 +
 +- Issue #9926: Wrapped TestSuite subclass does not get __call__ executed
 +
 +- Issue #4471: Properly shutdown socket in IMAP.shutdown().  Patch by
 +  Lorenzo M. Catucci.
 +
 +- Issue #10126: Fix distutils' test_build when Python was built with
 +  --enable-shared.
 +
 +- Fix typo in one sdist option (medata-check).
 +
 +- Issue #9199: Fix incorrect use of distutils.cmd.Command.announce.
 +
 +- Issue #1718574: Fix options that were supposed to accept arguments but did
 +  not in build_clib.
 +
 +- Issue #9281: Prevent race condition with mkdir in distutils.  Patch by
 +  Arfrever.
 +
 +- Issue #10229: Fix caching error in gettext.
 +
 +- Issue #10252: Close file objects in a timely manner in distutils code and
 +  tests.  Patch by Brian Brazil, completed by Éric Araujo.
 +
 +- Issue #10311: The signal module now restores errno before returning from
 +  its low-level signal handler.  Patch by Hallvard B Furuseth.
 +
 +- Issue #10038: json.loads() on str should always return unicode (regression
 +  from Python 2.6).  Patch by Walter Dörwald.
 +
 +- Issue #120176: Wrapped TestSuite subclass does not get __call__ executed.
 +
 +- Issue #6706: asyncore accept() method no longer raises
 +  EWOULDBLOCK/ECONNABORTED on incomplete connection attempt but returns None
 +  instead.
 +
 +- Issue #10266: uu.decode didn't close in_file explicitly when it was given
 +  as a filename.  Patch by Brian Brazil.
 +
 +- Issue #10246: uu.encode didn't close file objects explicitly when filenames
 +  were given to it.  Patch by Brian Brazil.
 +
 +- Issue #10253: FileIO leaks a file descriptor when trying to open a file
 +  for append that isn't seekable.  Patch by Brian Brazil.
 +
 +- Issue #6105: json.dumps now respects OrderedDict's iteration order.
 +
 +- Issue #9295: Fix a crash under Windows when calling close() on a file
 +  object with custom buffering from two threads at once.
 +
 +- Issue #5027: The standard ``xml`` namespace is now understood by
 +  xml.sax.saxutils.XMLGenerator as being bound to
 +  http://www.w3.org/XML/1998/namespace.  Patch by Troy J. Farrell.
 +
 +- Issue #10163: Skip unreadable registry keys during mimetypes
 +  initialization.
 +
 +- Issue #5117: Fixed root directory related issue on posixpath.relpath() and
 +  ntpath.relpath().
 +
 +- Issue #9409: Fix the regex to match all kind of filenames, for interactive
 +  debugging in doctests.
 +
 +- Issue #6612: Fix site and sysconfig to catch os.getcwd() error, eg. if the
 +  current directory was deleted. Patch written by W. Trevor King.
 +
 +- Issue #10045: Improved performance when writing after seeking past the
 +  end of the "file" in cStringIO.
 +
 +- Issue #9948: Fixed problem of losing filename case information.
 +
 +- Issue #9437: Fix building C extensions with non-default LDFLAGS.
 +
 +- Issue #9759: GzipFile now raises ValueError when an operation is attempted
 +  after the file is closed.  Patch by Jeffrey Finkelstein.
 +
 +- Issue #9042: Fix interaction of custom translation classes and caching in
 +  gettext.
 +
 +- Issue #9065: tarfile no longer uses "root" as the default for the uname and
 +  gname field.
 +
 +- Issue #1050268: parseaddr now correctly quotes double quote and backslash
 +  characters that appear inside quoted strings in email addresses.
 +
 +- Issue #10004: quoprimime no longer generates a traceback when confronted
 +  with invalid characters after '=' in a Q-encoded word.
 +
 +- Issue #9950: Fix socket.sendall() crash or misbehaviour when a signal is
 +  received.  Now sendall() properly calls signal handlers if necessary,
 +  and retries sending if these returned successfully, including on sockets
 +  with a timeout.
 +
 +- Issue #9947: logging: Fixed locking bug in stopListening.
 +
 +- Issue #9945: logging: Fixed locking bugs in addHandler/removeHandler.
 +
 +- Issue #9936: Fixed executable lines' search in the trace module.
 +
 +- Issue #9928: Properly initialize the types exported by the bz2 module.
 +
 +- Issue #9854: The default read() implementation in io.RawIOBase now
 +  handles non-blocking readinto() returning None correctly.
 +
 +- Issue #9729: Fix the signature of SSLSocket.recvfrom() and
 +  SSLSocket.sendto() to match the corresponding socket methods.  Also,
 +  fix various SSLSocket methods to raise socket.error rather than an
 +  unhelpful TypeError when called on an unconnected socket.  Original patch
 +  by Andrew Bennetts.
 +
 +- Issue #9826: OrderedDict.__repr__ can now handle self-referential
 +  values:   d['x'] = d.
 +
 +- Issue #767645: Set os.path.supports_unicode_filenames to True on Mac OS X.
 +
 +- Issue #9837: The read() method of ZipExtFile objects (as returned by
 +  ZipFile.open()) could return more bytes than requested.
 +
 +- Issue #9825: removed __del__ from the definition of collections.OrderedDict.
 +  This prevents user-created self-referencing ordered dictionaries from
 +  becoming permanently uncollectable GC garbage.  The downside is that
 +  removing __del__ means that the internal doubly-linked list has to wait for
 +  GC collection rather than freeing memory immediately when the refcnt drops
 +  to zero.
 +
 +- Issue #9816: random.Random.jumpahead(n) did not produce a sufficiently
 +  different internal state for small values of n.  Fixed by salting the
 +  value.
 +
 +- Issue #9792: In case of connection failure, socket.create_connection()
 +  would swallow the exception and raise a new one, making it impossible
 +  to fetch the original errno, or to filter timeout errors.  Now the
 +  original error is re-raised.
 +
 +- Issue #9758: When fcntl.ioctl() was called with mutable_flag set to True,
 +  and the passed buffer was exactly 1024 bytes long, the buffer wouldn't
 +  be updated back after the system call.  Original patch by Brian Brazil.
 +
 +- Issue #1100562: Fix deep-copying of objects derived from the list and
 +  dict types.  Patch by Michele Orrù and Björn Lindqvist.
 +
 +- Issue #7005: Fixed output of None values for RawConfigParser.write and
 +  ConfigParser.write.
 +
 +- Issue #808164: Fixed socket.close to avoid references to globals, to
 +  avoid issues when socket.close is called from a __del__ method.
 +
 +- Issue #2986: difflib.SequenceMatcher gets a new parameter, autojunk, which
 +  can be set to False to turn off the previously undocumented 'popularity'
 +  heuristic. Patch by Terry Reedy and Eli Bendersky
 +
 +- Issue #8797: urllib2 does a retry for Basic Authentication failure instead of
 +  falling into recursion.
 +
 +- Issue #1194222: email.utils.parsedate now returns RFC2822 compliant four
 +  character years even if the message contains RFC822 two character years.
 +
 +- Issue #8750: Fixed MutableSet's methods to correctly handle
 +  reflexive operations, namely x -= x and x ^= x.
 +
 +- Issue #9129: smtpd.py is vulnerable to DoS attacks deriving from missing
 +  error handling when accepting a new connection.
 +
 +- Issue #658749: asyncore's connect() method now correctly interprets winsock
 +  errors.
 +
 +- Issue #9501: Fixed logging regressions in cleanup code.
 +
 +- Issue #9214: Set operations on KeysView or ItemsView in the collections
 +  module now correctly return a set.  (Patch by Eli Bendersky.)
 +
 +- Issue #9617: Signals received during a low-level write operation aren't
 +  ignored by the buffered IO layer anymore.
 +
 +- Issue #2521: Use weakrefs on for caching in the abc module, so that classes
 +  are not held onto after they are deleted elsewhere.
 +
 +- Issue #9626: the view methods for collections.OrderedDict() were returning
 +  the unordered versions inherited from dict.  Those methods are now
 +  overridden to provide ordered views.
 +
 +- Issue #8688: MANIFEST files created by distutils now include a magic
 +  comment indicating they are generated.  Manually maintained MANIFESTs
 +  without this marker will not be overwritten or removed.
 +
 +- Issue #7467: when reading a file from a ZIP archive, its CRC is checked
 +  and a BadZipfile error is raised if it doesn't match (as used to be the
 +  case in Python 2.5 and earlier).
 +
 +- Issue #9550: a BufferedReader could issue an additional read when the
 +  original read request had been satisfied, which could block indefinitely
 +  when the underlying raw IO channel was e.g. a socket.  Report and original
 +  patch by Jason V. Miller.
 +
 +- Issue #9551: Don't raise TypeError when setting the value to None for
 +  SafeConfigParser instances constructed with allow_no_value == True.
 +
 +- Issue #6915: Under Windows, os.listdir() didn't release the Global
 +  Interpreter Lock around all system calls.  Original patch by Ryan Kelly.
 +
 +- Issue #3757: thread-local objects now support cyclic garbage collection.
 +  Thread-local objects involved in reference cycles will be deallocated
 +  timely by the cyclic GC, even if the underlying thread is still running.
 +
 +- Issue #6231: Fix xml.etree.ElementInclude to include the tail of the
 +  current node.
 +
 +- Issue #6869: Fix a refcount problem in the _ctypes extension.
 +
 +- Issue5504 - ctypes should now work with systems where mmap can't be
 +  PROT_WRITE and PROT_EXEC.
 +
 +- Fix Issue8280 - urllib2's Request method will remove fragements in the url.
 +  This is how it is supposed to work, wget and curl do the same.  Previous
 +  behavior was wrong.
 +
 +- Issue #2944: asyncore doesn't handle connection refused correctly.
 +
 +- Issue #3196: email header decoding is now forgiving if an RFC2047
 +  encoded word encoded in base64 is lacking padding.
 +
 +- Issue #9444: Argparse now uses the first element of prefix_chars as
 +  the option character for the added 'h/help' option if prefix_chars
 +  does not contain a '-', instead of raising an error.
 +
 +- Issue #9354: Provide getsockopt() in asyncore's file_wrapper.
 +
 +- Issue #9428: Fix running scripts with the profile/cProfile modules from
 +  the command line.
 +
 +- Issue #7781: Fix restricting stats by entry counts in the pstats
 +  interactive browser.
 +
 +- Issue #9209: Do not crash in the pstats interactive browser on invalid
 +  regular expressions.
 +
 +- Issue #7372: Fix pstats regression when stripping paths from profile
 +  data generated with the profile module.
 +
 +- Issue #4108: In urllib.robotparser, if there are multiple 'User-agent: *'
 +  entries, consider the first one.
 +
 +- Issue #8397: Raise an error when attempting to mix iteration and regular
 +  reads on a BZ2File object, rather than returning incorrect results.
 +
 +- Issue #5294: Fix the behavior of pdb's "continue" command when called
 +  in the top-level debugged frame.
 +
 +- Issue #5727: Restore the ability to use readline when calling into pdb
 +  in doctests.
 +
 +- Issue #6719: In pdb, do not stop somewhere in the encodings machinery
 +  if the source file to be debugged is in a non-builtin encoding.
 +
 +- Issue #8048: Prevent doctests from failing when sys.displayhook has
 +  been reassigned.
 +
 +- Issue #8015: In pdb, do not crash when an empty line is entered as
 +  a breakpoint command.
 +
 +- Issue #9448: Fix a leak of OS resources (mutexes or semaphores) when
 +  re-initializing a buffered IO object by calling its ``__init__`` method.
 +
 +- Issue #7909: Do not touch paths with the special prefixes ``\\.\``
 +  or ``\\?\`` in ntpath.normpath().
 +
 +- Issue #5146: Handle UID THREAD command correctly in imaplib.
 +
 +- Issue #5147: Fix the header generated for cookie files written by
 +  http.cookiejar.MozillaCookieJar.
 +
 +- Issue #8198: In pydoc, output all help text to the correct stream
 +  when sys.stdout is reassigned.
 +
 +- Issue #7395: Fix tracebacks in pstats interactive browser.
 +
 +- Issue #8230: Fix Lib/test/sortperf.py.
 +
 +- Issue #1713: Fix os.path.ismount(), which returned true for symbolic links
 +  across devices.
 +
 +- Issue #8826: Properly load old-style "expires" attribute in http.cookies.
 +
 +- Issue #1690103: Fix initial namespace for code run with trace.main().
 +
 +- Issue #8471: In doctest, properly reset the output stream to an empty
 +  string when Unicode was previously output.
 +
 +- Issue #8620: when a Cmd is fed input that reaches EOF without a final
 +  newline, it no longer truncates the last character of the last command line.
 +
 +- Issue #6213: Implement getstate() and setstate() methods of utf-8-sig and
 +  utf-16 incremental encoders.
 +
 +- Issue #7113: Speed up loading in ConfigParser. Patch by Łukasz Langa.
 +
 +- Issue #3704: cookielib was not properly handling URLs with a / in the
 +  parameters.
 +
 +- Issue #9032: XML-RPC client retries the request on EPIPE error. The EPIPE
 +  error occurs when the server closes the socket and the client sends a big
 +  XML-RPC request.
 +
 +- Issue #5542: Remove special logic that closes HTTPConnection socket on EPIPE.
 +
 +- Issue #4629: getopt raises an error if an argument ends with = whereas getopt
 +  doesn't except a value (eg. --help= is rejected if getopt uses ['help='] long
 +  options).
 +
 +- Issue #7895: platform.mac_ver() no longer crashes after calling os.fork()
 +
 +- Issue #5395: array.fromfile() would raise a spurious EOFError when an
 +  I/O error occurred.  Now an IOError is raised instead.  Patch by chuck
 +  (Jan Hosang).
 +
 +- Issue #7646: The fnmatch pattern cache no longer grows without bound.
 +
 +- Issue #9136: Fix 'dictionary changed size during iteration'
 +  RuntimeError produced when profiling the decimal module.  This was
 +  due to a dangerous iteration over 'locals()' in Context.__init__.
 +
 +- Fix extreme speed issue in Decimal.pow when the base is an exact
 +  power of 10 and the exponent is tiny (for example,
 +  Decimal(10) ** Decimal('1e-999999999')).
 +
 +- Issue #9161: Fix regression in optparse's acceptance of unicode
 +  strings in add_option calls.
 +
 +- Issue #9130: Fix validation of relative imports in parser module.
 +
 +- Issue #9128: Fix validation of class decorators in parser module.
 +
 +- Issue #9164: Ensure sysconfig handles dupblice archs while building on OSX
 +
 +- Issue #9315: Fix for the trace module to record correct class name
 +  for tracing methods.
 +
 +Extension Modules
 +-----------------
 +
 +- Issue #9054: Fix a crash occurring when using the pyexpat module
 +  with expat version 2.0.1.
 +
 +- Issue #10003: Allow handling of SIGBREAK on Windows. Fixes a regression
 +  introduced by issue #9324.
 +
 +- Issue #8734: Avoid crash in msvcrt.get_osfhandle() when an invalid file
 +  descriptor is provided.  Patch by Pascal Chambon.
 +
 +- Issue #7736: Release the GIL around calls to opendir() and closedir()
 +  in the posix module.  Patch by Marcin Bachry.
 +
 +- As a result of issue #2521, the _weakref module is now compiled into the
 +  interpreter by default.
 +
 +- Issue #9324: Add parameter validation to signal.signal on Windows in order
 +  to prevent crashes.
 +
 +- Issue #9526: Remove some outdated (int) casts that were preventing
 +  the array module from working correctly with arrays of more than
 +  2**31 elements.
 +
 +- Fix memory leak in ssl._ssl._test_decode_cert.
 +
 +- Issue #8065: Fix memory leak in readline module (from failure to
 +  free the result of history_get_history_state()).
 +
 +- Issue #9450: Fix memory leak in readline.replace_history_item and
 +  readline.remove_history_item for readline version >= 5.0.
 +
 +- Issue #8105: Validate file descriptor passed to mmap.mmap on Windows.
 +
 +- Issue #1019882: Fix IndexError when loading certain hotshot stats.
 +
 +- Issue #9422: Fix memory leak when re-initializing a struct.Struct object.
 +
 +- Issue #7900: The getgroups(2) system call on MacOSX behaves rather oddly
 +  compared to other unix systems. In particular, os.getgroups() does
 +  not reflect any changes made using os.setgroups() but basicly always
 +  returns the same information as the id command.
 +
 +  os.getgroups() can now return more than 16 groups on MacOSX.
 +
 +- Issue #9277: Fix bug in struct.pack for bools in standard mode
 +  (e.g., struct.pack('>?')):  if conversion to bool raised an exception
 +  then that exception wasn't properly propagated on machines where
 +  char is unsigned.
 +
 +- Issue #7567: Don't call `setupterm' twice.
 +
 +
 +Tools/Demos
 +-----------
 +
 +- Issue #7287: Demo/imputil/knee.py was removed.
 +
 +- Issue #9188: The gdb extension now handles correctly narrow (UCS2) as well
 +  as wide (UCS4) unicode builds for both the host interpreter (embedded
 +  inside gdb) and the interpreter under test.
 +
 +Build
 +-----
 +
 +- Issue #8852: Allow the socket module to build on OpenSolaris.
 +
 +- Issue #10054: Some platforms provide uintptr_t in inttypes.h.  Patch by
 +  Akira Kitada.
 +
 +- Issue #10055: Make json C89-compliant in UCS4 mode.
 +
 +- Issue #1633863: Don't ignore $CC under AIX.
 +
 +- Issue #9810: Compile bzip2 source files in python's project file
 +  directly. It used to be built with bzip2's makefile.
 +
 +- Issue #941346: Improve the build process under AIX and allow Python to
 +  be built as a shared library.  Patch by Sébastien Sablé.
 +
 +- Issue #4026: Make the fcntl extension build under AIX.  Patch by Sébastien
 +  Sablé.
 +
 +- Issue #3101: Helper functions _add_one_to_index_C() and
 +  _add_one_to_index_F() become _Py_add_one_to_index_C() and
 +  _Py_add_one_to_index_F(), respectively.
 +
 +- Issue #9700: define HAVE_BROKEN_POSIX_SEMAPHORES under AIX 6.x.  Patch by
 +  Sébastien Sablé.
 +
 +- Issue #9280: Make sharedinstall depend on sharedmods.
 +
 +- Issue #9275: The OSX installer once again installs links to binaries in
 +  ``/usr/local/bin``.
 +
 +- Issue #9392: A framework build on OSX  will once again use a versioned name
 +  of the ``2to3`` tool, that is you can use ``2to3-2.7`` to select the Python
 +  2.7 edition of 2to3.
 +
 +- Issue #9701: The MacOSX installer can patch the shell profile to ensure that
 +  the "bin" directory inside the framework is on the shell's search path. This
 +  feature now also supports the ZSH shell.
 +
 +- Issue #7473: avoid link errors when building a framework with a different
 +  set of architectures than the one that is currently installed.
 +
 +Tests
 +-----
 +
 +- Issue #9978: Wait until subprocess completes initialization. (Win32KillTests
 +  in test_os)
 +
 +- Issue #9894: Do not hardcode ENOENT in test_subprocess.
 +
 +- Issue #9323: Make test.regrtest.__file__ absolute, this was not always the
 +  case when running profile or trace, for example.
 +
 +- Issue #9315: Added tests for the trace module.  Patch by Eli Bendersky.
 +
 +- Strengthen test_unicode with explicit type checking for assertEqual tests.
 +
 +- Issue #8857: Provide a test case for socket.getaddrinfo.
 +
 +- Issue #7564: Skip test_ioctl if another process is attached to /dev/tty.
 +
 +- Issue #8433: Fix test_curses failure with newer versions of ncurses.
 +
 +- Issue #9496: Provide a test suite for the rlcompleter module.  Patch by
 +  Michele Orrù.
 +
 +- Issue #8605: Skip test_gdb if Python is compiled with optimizations.
 +
 +- Issue #9568: Fix test_urllib2_localnet on OS X 10.3.
 +
 +Documentation
 +-------------
 +
 +- Issue #9817: Add expat COPYING file; add expat, libffi and expat licenses
 +  to Doc/license.rst.
 +
 +- Issue #9524: Document that two CTRL* signals are meant for use only
 +  with os.kill.
 +
 +- Issue #9255: Document that the 'test' package is for internal Python use
 +  only.
 +
 +- Issue #7829: Document in dis that bytecode is an implementation detail.
 +
 +
 +What's New in Python 2.7?
 +=========================
 +
 +*Release date: 2010-07-03*
 +
 +Core and Builtins
 +-----------------
 +
 +- Prevent assignment to set literals.
 +
 +Library
 +-------
 +
 +- Issue #1868: Eliminate subtle timing issues in thread-local objects by
 +  getting rid of the cached copy of thread-local attribute dictionary.
 +
 +- Issue #9125: Add recognition of 'except ... as ...' syntax to parser module.
 +
 +Extension Modules
 +-----------------
 +
 +- Issue #7673: Fix security vulnerability (CVE-2010-2089) in the audioop module,
 +  ensure that the input string length is a multiple of the frame size.
 +
 +- Issue #9075: In the ssl module, remove the setting of a ``debug`` flag
 +  on an OpenSSL structure.
 +
 +
 +What's New in Python 2.7 release candidate 2?
 +=============================================
 +
 +*Release date: 2010-06-20*
 +
 +Core and Builtins
 +-----------------
 +
 +- Issue #9058: Remove assertions about INT_MAX in UnicodeDecodeError.
 +
 +- Issue #8202: Previous change to ``sys.argv[0]`` handling for -m command line
 +  option reverted due to unintended side effects on handling of ``sys.path``.
 +  See tracker issue for details.
 +
 +- Issue #8941: decoding big endian UTF-32 data in UCS-2 builds could crash
 +  the interpreter with characters outside the Basic Multilingual Plane
 +  (higher than 0x10000).
 +
 +- In the unicode/str.format(), raise a ValueError when indexes to arguments are
 +  too large.
 +
 +Build
 +-----
 +
 +- Issue #8854: Fix finding Visual Studio 2008 on Windows x64.
 +
 +Library
 +-------
 +
 +- Issue #6589: cleanup asyncore.socket_map in case smtpd.SMTPServer constructor
 +  raises an exception.
 +
 +- Issue #8959: fix regression caused by using unmodified libffi
 +  library on Windows.  ctypes does now again check the stack before
 +  and after calling foreign functions.
 +
 +- Issue #8720: fix regression caused by fix for #4050 by making getsourcefile
 +  smart enough to find source files in the linecache.
 +
 +- Issue #8986: math.erfc was incorrectly raising OverflowError for
 +  values between -27.3 and -30.0 on some platforms.
 +
 +- Issue #8924: logging: Improved error handling for Unicode in exception text.
 +
 +- Issue #8948: cleanup functions and class / module setups and teardowns are
 +  now honored in unittest debug methods.
 +
 +Documentation
 +-------------
 +
 +- Issues #8909: Added the size of the bitmap used in the installer created by
 +  distutils' bdist_wininst. Patch by Anatoly Techtonik.
 +
 +Misc
 +----
 +
 +- Issue #8362: Add maintainers.rst: list of module maintainers
 +
 +
 +What's New in Python 2.7 Release Candidate 1?
 +=============================================
 +
 +*Release date: 2010-06-05*
 +
 +Core and Builtins
 +-----------------
 +
 +- Issue #8271: during the decoding of an invalid UTF-8 byte sequence, only the
 +  start byte and the continuation byte(s) are now considered invalid, instead
 +  of the number of bytes specified by the start byte.
 +  E.g.: '\xf1\x80AB'.decode('utf-8', 'replace') now returns u'\ufffdAB' and
 +  replaces with U+FFFD only the start byte ('\xf1') and the continuation byte
 +  ('\x80') even if '\xf1' is the start byte of a 4-bytes sequence.
 +  Previous versions returned a single u'\ufffd'.
 +
 +- Issue #8627: Remove bogus "Overriding __cmp__ blocks inheritance of
 +  __hash__ in 3.x" warning.  Also fix "XXX undetected error" that
 +  arises from the "Overriding __eq__ blocks inheritance ..." warning
 +  when turned into an exception: in this case the exception simply
 +  gets ignored.
 +
 +- Issue #8748: Fix two issues with comparisons between complex and integer
 +  objects.  (1) The comparison could incorrectly return True in some cases
 +  (2**53+1 == complex(2**53) == 2**53), breaking transivity of equality.
 +  (2) The comparison raised an OverflowError for large integers, leading
 +  to unpredictable exceptions when combining integers and complex objects
 +  in sets or dicts.
 +
 +- Issue #5211: Implicit coercion for the complex type is now completely
 +  removed.  (Coercion for arithmetic operations was already removed in 2.7
 +  alpha 4, but coercion for rich comparisons was accidentally left in.)
 +
 +- Issue #3798: Write sys.exit() message to sys.stderr to use stderr encoding
 +  and error handler, instead of writing to the C stderr file in utf-8
 +
 +- Issue #7902: When using explicit relative import syntax, don't try implicit
 +  relative import semantics.
 +
 +- Issue #7079: Fix a possible crash when closing a file object while using it
 +  from another thread.  Patch by Daniel Stutzbach.
 +
 +- Issue #8868: Fix that ensures that python scripts have access to the
 +  Window Server again in a framework build on MacOSX 10.5 or earlier.
 +
 +C-API
 +-----
 +
 +- Issue #5753: A new C API function, :cfunc:`PySys_SetArgvEx`, allows embedders
 +  of the interpreter to set sys.argv without also modifying sys.path.  This
 +  helps fix `CVE-2008-5983
 +  <http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-5983>`_.
 +
 +Library
 +-------
 +
 +- Issue #8302: SkipTest in unittest.TestCase.setUpClass or setUpModule is now
 +  reported as a skip rather than an error.
 +
 +- Issue #8351: Excessively large diffs due to
 +  unittest.TestCase.assertSequenceEqual are no longer included in failure
 +  reports.
 +
 +- Issue #8899: time.struct_time now has class and atribute docstrings.
 +
 +- Issue #4487: email now accepts as charset aliases all codec aliases
 +  accepted by the codecs module.
 +
 +- Issue #6470: Drop UNC prefix in FixTk.
 +
 +- Issue #5610: feedparser no longer eats extra characters at the end of
 +  a body part if the body part ends with a \r\n.
 +
 +- Issue #8833: tarfile created hard link entries with a size field != 0 by
 +  mistake.
 +
 +- Issue #1368247: set_charset (and therefore MIMEText) now automatically
 +  encodes a unicode _payload to the output_charset.
 +
 +- Issue #7150: Raise OverflowError if the result of adding or subtracting
 +  timedelta from date or datetime falls outside of the MINYEAR:MAXYEAR range.
 +
 +- Issue #6662: Fix parsing of malformatted charref (&#bad;), patch written by
 +  Fredrik Håård
 +
 +- Issue #8016: Add the CP858 codec.
 +
 +- Issue #3924: Ignore cookies with invalid "version" field in cookielib.
 +
 +- Issue #6268: Fix seek() method of codecs.open(), don't read or write the BOM
 +  twice after seek(0). Fix also reset() method of codecs, UTF-16, UTF-32 and
 +  StreamWriter classes.
 +
 +- Issue #5640: Fix Shift-JIS incremental encoder for error handlers different
 +  than 'strict'.
 +
 +- Issue #8782: Add a trailing newline in linecache.updatecache to the last line
 +  of files without one.
 +
 +- Issue #8729: Return NotImplemented from ``collections.Mapping.__eq__()`` when
 +  comparing to a non-mapping.
 +
 +- Issue #8759: Fix user paths in sysconfig for posix and os2 schemes.
 +
 +- Issue #1285086: Speed up ``urllib.quote()`` and urllib.unquote for simple
 +  cases.
 +
 +- Issue #8688: Distutils now recalculates MANIFEST every time.
 +
 +- Issue #5099: The ``__del__()`` method of ``subprocess.Popen`` (and the methods
 +  it calls) referenced global objects, causing errors to pop up during
 +  interpreter shutdown.
 +
 +Extension Modules
 +-----------------
 +
 +- Issue #7384: If the system readline library is linked against ncurses,
 +  the curses module must be linked against ncurses as well. Otherwise it
 +  is not safe to load both the readline and curses modules in an application.
 +
 +- Issue #2810: Fix cases where the Windows registry API returns
 +  ERROR_MORE_DATA, requiring a re-try in order to get the complete result.
 +
 +- Issue #8674: Fixed a number of incorrect or undefined-behaviour-inducing
 +  overflow checks in the ``audioop`` module.
 +
 +Tests
 +-----
 +
 +- Issue #8889: test_support.transient_internet rewritten so that the new
 +  checks also work on FreeBSD, which lacks EAI_NODATA.
 +
 +- Issue #8835: test_support.transient_internet() catches gaierror(EAI_NONAME)
 +  and gaierror(EAI_NODATA)
 +
 +- Issue #7449: Skip test_socketserver if threading support is disabled
 +
 +- On darwin, ``test_site`` assumed that a framework build was being used,
 +  leading to a failure where four directories were expected for site-packages
 +  instead of two in a non-framework build.
 +
 +Build
 +-----
 +
 +- Display installer warning that Windows 2000 won't be supported in future
 +  releases.
 +
 +- Issues #1759169, #8864: Drop _XOPEN_SOURCE on Solaris, define it for
 +  multiprocessing only.
 +
 +Tools/Demos
 +-----------
 +
 +- Issue #5464: Implement plural forms in msgfmt.py.
 +
 +
 +What's New in Python 2.7 beta 2?
 +================================
 +
 +*Release date: 2010-05-08*
 +
 +Core and Builtins
 +-----------------
 +
 +- Run Clang 2.7's static analyzer for ``Objects/`` and ``Python/``.
 +
 +- Issue #1533: Fix inconsistency in range function argument processing: any
 +  non-float non-integer argument is now converted to an integer (if possible)
 +  using its __int__ method.  Previously, only small arguments were treated this
 +  way; larger arguments (those whose __int__ was outside the range of a C long)
 +  would produce a TypeError.
 +
 +- Issue #8202: ``sys.argv[0]`` is now set to '-m' instead of '-c' when searching
 +  for the module file to be executed with the -m command line option.
 +
 +- Issue #7319: When -Q is used, do not silence DeprecationWarning.
 +
 +- Issue #7332: Remove the 16KB stack-based buffer in
 +  ``PyMarshal_ReadLastObjectFromFile``, which doesn't bring any noticeable
 +  benefit compared to the dynamic memory allocation fallback.  Patch by
 +  Charles-François Natali.
 +
 +- Issue #8417: Raise an OverflowError when an integer larger than sys.maxsize is
 +  passed to bytearray.
 +
 +- Issue #7072: ``isspace(0xa0)`` is true on Mac OS X.
 +
 +- Issue #8404: Fix set operations on dictionary views.
 +
 +- Issue #8084: PEP 370 now conforms to system conventions for framework builds
 +  on MacOS X. That is, ``python setup.py install --user`` will install into
 +  ``~/Library/Python/2.7`` instead of ``~/.local``.
 +
 +Library
 +-------
 +
 +- Issue #8681: Make the zlib module's error messages more informative when the
 +  zlib itself doesn't give any detailed explanation.
 +
 +- Issue #8571: Fix an internal error when compressing or decompressing a chunk
 +  larger than 1GB with the zlib module's compressor and decompressor objects.
 +
 +- Issue #8573: asyncore ``_strerror()`` function might throw ValueError.
 +
 +- Issue #8483: asyncore.dispatcher's __getattr__ method produced confusing error
 +  messages when accessing undefined class attributes because of the cheap
 +  inheritance with the underlying socket object.  The cheap inheritance has been
 +  deprecated.
 +
 +- Issue #4265: ``shutil.copyfile()`` was leaking file descriptors when disk
 +  fills.  Patch by Tres Seaver.
 +
 +- Issue #7755: Use an unencumbered audio file for tests.
 +
 +- Issue #8621: ``uuid.uuid4()`` returned the same sequence of values in the
 +  parent and any children created using ``os.fork`` on Mac OS X 10.6.
 +
 +- Issue #8313: ``traceback.format_exception_only()`` encodes unicode message to
 +  ASCII with backslashreplace error handler if ``str(value)`` failed.
 +
 +- Issue #8567: Fix precedence of signals in Decimal module: when a Decimal
 +  operation raises multiple signals and more than one of those signals is
 +  trapped, the specification determines the order in which the signals should be
 +  handled.  In many cases this order wasn't being followed, leading to the wrong
 +  Python exception being raised.
 +
 +- Issue #7865: The close() method of :mod:`io` objects should not swallow
 +  exceptions raised by the implicit flush().  Also ensure that calling close()
 +  several times is supported.  Patch by Pascal Chambon.
 +
 +- Issue #8576: logging updated to remove usage of find_unused_port().
 +
 +- Issue #4687: Fix accuracy of garbage collection runtimes displayed with
 +  gc.DEBUG_STATS.
 +
 +- Issue #8354: The siginterrupt setting is now preserved for all signals, not
 +  just SIGCHLD.
 +
 +- Issue #7192: ``webbrowser.get("firefox")`` now works on Mac OS X, as does
 +  ``webbrowser.get("safari")``.
 +
 +- Issue #8577: ``distutils.sysconfig.get_python_inc()`` now makes a difference
 +  between the build dir and the source dir when looking for "python.h" or
 +  "Include".
 +
 +- Issue #8464: tarfile no longer creates files with execute permissions set when
 +  mode="w|" is used.
 +
 +- Issue #7834: Fix connect() of Bluetooth L2CAP sockets with recent versions of
 +  the Linux kernel.  Patch by Yaniv Aknin.
 +
 +- Issue #6312: Fix http HEAD request when the transfer encoding is chunked.  It
 +  should correctly return an empty response now.
 +
 +- Issue #7490: To facilitate sharing of doctests between 2.x and 3.x test
 +  suites, the ``IGNORE_EXCEPTION_DETAIL`` directive now also ignores the module
 +  location of the raised exception.  Based on initial patch by Lennart Regebro.
 +
 +- Issue #8086: In :func:`ssl.DER_cert_to_PEM_cert()`, fix missing newline before
 +  the certificate footer.  Patch by Kyle VanderBeek.
 +
 +- Issue #8546: Reject None given as the buffering argument to ``_pyio.open()``.
 +
 +- Issue #8549: Fix compiling the _ssl extension under AIX.  Patch by Sridhar
 +  Ratnakumar.
 +
 +- Issue #6656: Fix locale.format_string to handle escaped percents and mappings.
 +
 +- Issue #2302: Fix a race condition in SocketServer.BaseServer.shutdown, where
 +  the method could block indefinitely if called just before the event loop
 +  started running.  This also fixes the occasional freezes witnessed in
 +  test_httpservers.
 +
 +- Issue #5103: SSL handshake would ignore the socket timeout and block
 +  indefinitely if the other end didn't respond.
 +
 +- The do_handshake() method of SSL objects now adjusts the blocking mode of the
 +  SSL structure if necessary (as other methods already do).
 +
 +- Issue #7507: Quote "!" in pipes.quote(); it is special to some shells.
 +
 +- Issue #5238: Calling makefile() on an SSL object would prevent the underlying
 +  socket from being closed until all objects get truely destroyed.
 +
 +- Issue #7943: Fix circular reference created when instantiating an SSL socket.
 +  Initial patch by Péter Szabó.
 +
 +- Issue #8451: Syslog module now uses basename(sys.argv[0]) instead of the
 +  string "python" as the *ident*.  openlog() arguments are all optional and
 +  keywords.
 +
 +- Issue #8108: Fix the unwrap() method of SSL objects when the socket has a
 +  non-infinite timeout.  Also make that method friendlier with applications
 +  wanting to continue using the socket in clear-text mode, by disabling
 +  OpenSSL's internal readahead.  Thanks to Darryl Miles for guidance.
 +
 +- Issue #8484: Load all ciphers and digest algorithms when initializing the _ssl
 +  extension, such that verification of some SSL certificates doesn't fail
 +  because of an "unknown algorithm".
 +
 +- Issue #8437: Fix test_gdb failures, patch written by Dave Malcolm
 +
 +- Issue #4814: The timeout parameter is now applied also for connections
 +  resulting from PORT/EPRT commands.
 +
 +- Issue #8463: Add missing reference to bztar in shutil's documentation.
 +
 +- Issue #8438: Remove reference to the missing "surrogateescape" encoding error
 +  handler from the new IO library.
 +
 +- Issue #3817: ftplib.FTP.abort() method now considers 225 a valid response code
 +  as stated in RFC-959 at chapter 5.4.
 +
 +- Issue #8279: Fix test_gdb failures.
 +
 +- Issue #8322: Add a *ciphers* argument to SSL sockets, so as to change the
 +  available cipher list.  Helps fix test_ssl with OpenSSL 1.0.0.
 +
 +- Issue #2987: RFC 2732 support for urlparse (IPv6 addresses).  Patch by Tony
 +  Locke and Hans Ulrich Niedermann.
 +
 +- Issue #7585: difflib context and unified diffs now place a tab between
 +  filename and date, conforming to the 'standards' they were originally designed
 +  to follow.  This improves compatibility with patch tools.
 +
 +- Issue #7472: Fixed typo in email.encoders module; messages using ISO-2022
 +  character sets will now consistently use a Content-Transfer-Encoding of 7bit
 +  rather than sometimes being marked as 8bit.
 +
 +- Issue #8330: Fix expected output in test_gdb.
 +
 +- Issue #8374: Update the internal alias table in the :mod:`locale` module to
 +  cover recent locale changes and additions.
 +
 +Extension Modules
 +-----------------
 +
 +- Issue #8644: Improved accuracy of ``timedelta.total_seconds()``.
 +
 +- Use Clang 2.7's static analyzer to find places to clean up some code.
 +
 +- Build the ossaudio extension on GNU/kFreeBSD.
 +
 +- On Windows, ctypes does no longer check the stack before and after calling a
 +  foreign function.  This allows to use the unmodified libffi library.
 +
 +Tests
 +-----
 +
 +- Issue #8672: Add a zlib test ensuring that an incomplete stream can be handled
 +  by a decompressor object without errors (it returns incomplete uncompressed
 +  data).
 +
 +- Issue #8490: asyncore now has a more solid test suite which actually tests its
 +  API.
  
  - Issue #8576: Remove use of find_unused_port() in test_smtplib and
    test_multiprocessing.  Patch by Paul Moore.