]> granicus.if.org Git - python/commitdiff
#11420: merge with 3.2.
authorEzio Melotti <ezio.melotti@gmail.com>
Sat, 16 Mar 2013 19:49:20 +0000 (21:49 +0200)
committerEzio Melotti <ezio.melotti@gmail.com>
Sat, 16 Mar 2013 19:49:20 +0000 (21:49 +0200)
1  2 
Lib/test/test_imp.py
Lib/test/test_import.py
Lib/test/test_importlib/source/test_file_loader.py
Lib/test/test_runpy.py
Misc/NEWS

index 65c9f25c8386dd362b9ead2f9ef8d45a0b99617d,5df891539902221a3f4c4365e0aa59289febcaa8..72ae145f68204cc3fd5773e7cafa62a3b26b8826
@@@ -155,16 -150,14 +155,18 @@@ class ImportTests(unittest.TestCase)
                  mod = imp.load_module(temp_mod_name, file, filename, info)
                  self.assertEqual(mod.a, 1)
  
 -            mod = imp.load_source(temp_mod_name, temp_mod_name + '.py')
 +            with warnings.catch_warnings():
 +                warnings.simplefilter('ignore')
 +                mod = imp.load_source(temp_mod_name, temp_mod_name + '.py')
              self.assertEqual(mod.a, 1)
  
 -            if not sys.dont_write_bytecode:
 -                mod = imp.load_compiled(
 -                    temp_mod_name,
 -                    imp.cache_from_source(temp_mod_name + '.py'))
 -                self.assertEqual(mod.a, 1)
 +            with warnings.catch_warnings():
 +                warnings.simplefilter('ignore')
-                 mod = imp.load_compiled(
-                     temp_mod_name, imp.cache_from_source(temp_mod_name + '.py'))
++                if not sys.dont_write_bytecode:
++                    mod = imp.load_compiled(
++                        temp_mod_name,
++                        imp.cache_from_source(temp_mod_name + '.py'))
 +            self.assertEqual(mod.a, 1)
  
              if not os.path.exists(test_package_name):
                  os.mkdir(test_package_name)
index b0e5a95b23aa8ca69b00388d96c9d27431865110,1aa665a1b269d579b1d58e2bd6d44f9a170b833b..81ddf45330781b8c59c891b32ecfb092c806ab82
@@@ -24,12 -20,27 +24,16 @@@ from test.support import 
  from test import script_helper
  
  
 -def _files(name):
 -    return (name + os.extsep + "py",
 -            name + os.extsep + "pyc",
 -            name + os.extsep + "pyo",
 -            name + os.extsep + "pyw",
 -            name + "$py.class")
 -
 -def chmod_files(name):
 -    for f in _files(name):
 -        try:
 -            os.chmod(f, 0o600)
 -        except OSError as exc:
 -            if exc.errno != errno.ENOENT:
 -                raise
 -
+ skip_if_dont_write_bytecode = unittest.skipIf(
+         sys.dont_write_bytecode,
+         "test meaningful only when writing bytecode")
  def remove_files(name):
 -    for f in _files(name):
 +    for f in (name + ".py",
 +              name + ".pyc",
 +              name + ".pyo",
 +              name + ".pyw",
 +              name + "$py.class"):
          unlink(f)
      rmtree('__pycache__')
  
@@@ -120,6 -111,92 +124,7 @@@ class ImportTests(unittest.TestCase)
          finally:
              del sys.path[0]
  
 -    @unittest.skipUnless(os.name == 'posix',
 -                         "test meaningful only on posix systems")
+     @skip_if_dont_write_bytecode
 -    def test_execute_bit_not_copied(self):
 -        # Issue 6070: under posix .pyc files got their execute bit set if
 -        # the .py file had the execute bit set, but they aren't executable.
 -        with temp_umask(0o022):
 -            sys.path.insert(0, os.curdir)
 -            try:
 -                fname = TESTFN + os.extsep + "py"
 -                open(fname, 'w').close()
 -                os.chmod(fname, (stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH |
 -                                 stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH))
 -                fn = imp.cache_from_source(fname)
 -                unlink(fn)
 -                __import__(TESTFN)
 -                if not os.path.exists(fn):
 -                    self.fail("__import__ did not result in creation of "
 -                              "either a .pyc or .pyo file")
 -                s = os.stat(fn)
 -                self.assertEqual(stat.S_IMODE(s.st_mode),
 -                                 stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH)
 -            finally:
 -                del sys.path[0]
 -                remove_files(TESTFN)
 -                unload(TESTFN)
 -
 -    @skip_if_dont_write_bytecode
 -    def test_rewrite_pyc_with_read_only_source(self):
 -        # Issue 6074: a long time ago on posix, and more recently on Windows,
 -        # a read only source file resulted in a read only pyc file, which
 -        # led to problems with updating it later
 -        sys.path.insert(0, os.curdir)
 -        fname = TESTFN + os.extsep + "py"
 -        try:
 -            # Write a Python file, make it read-only and import it
 -            with open(fname, 'w') as f:
 -                f.write("x = 'original'\n")
 -            # Tweak the mtime of the source to ensure pyc gets updated later
 -            s = os.stat(fname)
 -            os.utime(fname, (s.st_atime, s.st_mtime-100000000))
 -            os.chmod(fname, 0o400)
 -            m1 = __import__(TESTFN)
 -            self.assertEqual(m1.x, 'original')
 -            # Change the file and then reimport it
 -            os.chmod(fname, 0o600)
 -            with open(fname, 'w') as f:
 -                f.write("x = 'rewritten'\n")
 -            unload(TESTFN)
 -            m2 = __import__(TESTFN)
 -            self.assertEqual(m2.x, 'rewritten')
 -            # Now delete the source file and check the pyc was rewritten
 -            unlink(fname)
 -            unload(TESTFN)
 -            if __debug__:
 -                bytecode_name = fname + "c"
 -            else:
 -                bytecode_name = fname + "o"
 -            os.rename(imp.cache_from_source(fname), bytecode_name)
 -            m3 = __import__(TESTFN)
 -            self.assertEqual(m3.x, 'rewritten')
 -        finally:
 -            chmod_files(TESTFN)
 -            remove_files(TESTFN)
 -            unload(TESTFN)
 -            del sys.path[0]
 -
 -    def test_imp_module(self):
 -        # Verify that the imp module can correctly load and find .py files
 -        # XXX (ncoghlan): It would be nice to use support.CleanImport
 -        # here, but that breaks because the os module registers some
 -        # handlers in copy_reg on import. Since CleanImport doesn't
 -        # revert that registration, the module is left in a broken
 -        # state after reversion. Reinitialising the module contents
 -        # and just reverting os.environ to its previous state is an OK
 -        # workaround
 -        orig_path = os.path
 -        orig_getenv = os.getenv
 -        with EnvironmentVarGuard():
 -            x = imp.find_module("os")
 -            self.addCleanup(x[0].close)
 -            new_os = imp.load_module("os", *x)
 -            self.assertIs(os, new_os)
 -            self.assertIs(orig_path, new_os.path)
 -            self.assertIsNot(orig_getenv, new_os.getenv)
 -
      def test_bug7732(self):
          source = TESTFN + '.py'
          os.mkdir(source)
              del sys.path[0]
              remove_files(TESTFN)
  
 +    def test_bogus_fromlist(self):
 +        try:
 +            __import__('http', fromlist=['blah'])
 +        except ImportError:
 +            self.fail("fromlist must allow bogus names")
 +
 +
++@skip_if_dont_write_bytecode
 +class FilePermissionTests(unittest.TestCase):
 +    # tests for file mode on cached .pyc/.pyo files
 +
 +    @unittest.skipUnless(os.name == 'posix',
 +                         "test meaningful only on posix systems")
 +    def test_creation_mode(self):
 +        mask = 0o022
 +        with temp_umask(mask), _ready_to_import() as (name, path):
 +            cached_path = imp.cache_from_source(path)
 +            module = __import__(name)
 +            if not os.path.exists(cached_path):
 +                self.fail("__import__ did not result in creation of "
 +                          "either a .pyc or .pyo file")
 +            stat_info = os.stat(cached_path)
 +
 +        # Check that the umask is respected, and the executable bits
 +        # aren't set.
 +        self.assertEqual(oct(stat.S_IMODE(stat_info.st_mode)),
 +                         oct(0o666 & ~mask))
 +
 +    @unittest.skipUnless(os.name == 'posix',
 +                         "test meaningful only on posix systems")
 +    def test_cached_mode_issue_2051(self):
 +        # permissions of .pyc should match those of .py, regardless of mask
 +        mode = 0o600
 +        with temp_umask(0o022), _ready_to_import() as (name, path):
 +            cached_path = imp.cache_from_source(path)
 +            os.chmod(path, mode)
 +            __import__(name)
 +            if not os.path.exists(cached_path):
 +                self.fail("__import__ did not result in creation of "
 +                          "either a .pyc or .pyo file")
 +            stat_info = os.stat(cached_path)
 +
 +        self.assertEqual(oct(stat.S_IMODE(stat_info.st_mode)), oct(mode))
 +
 +    @unittest.skipUnless(os.name == 'posix',
 +                         "test meaningful only on posix systems")
 +    def test_cached_readonly(self):
 +        mode = 0o400
 +        with temp_umask(0o022), _ready_to_import() as (name, path):
 +            cached_path = imp.cache_from_source(path)
 +            os.chmod(path, mode)
 +            __import__(name)
 +            if not os.path.exists(cached_path):
 +                self.fail("__import__ did not result in creation of "
 +                          "either a .pyc or .pyo file")
 +            stat_info = os.stat(cached_path)
 +
 +        expected = mode | 0o200 # Account for fix for issue #6074
 +        self.assertEqual(oct(stat.S_IMODE(stat_info.st_mode)), oct(expected))
 +
 +    def test_pyc_always_writable(self):
 +        # Initially read-only .pyc files on Windows used to cause problems
 +        # with later updates, see issue #6074 for details
 +        with _ready_to_import() as (name, path):
 +            # Write a Python file, make it read-only and import it
 +            with open(path, 'w') as f:
 +                f.write("x = 'original'\n")
 +            # Tweak the mtime of the source to ensure pyc gets updated later
 +            s = os.stat(path)
 +            os.utime(path, (s.st_atime, s.st_mtime-100000000))
 +            os.chmod(path, 0o400)
 +            m = __import__(name)
 +            self.assertEqual(m.x, 'original')
 +            # Change the file and then reimport it
 +            os.chmod(path, 0o600)
 +            with open(path, 'w') as f:
 +                f.write("x = 'rewritten'\n")
 +            unload(name)
 +            importlib.invalidate_caches()
 +            m = __import__(name)
 +            self.assertEqual(m.x, 'rewritten')
 +            # Now delete the source file and check the pyc was rewritten
 +            unlink(path)
 +            unload(name)
 +            importlib.invalidate_caches()
 +            if __debug__:
 +                bytecode_only = path + "c"
 +            else:
 +                bytecode_only = path + "o"
 +            os.rename(imp.cache_from_source(path), bytecode_only)
 +            m = __import__(name)
 +            self.assertEqual(m.x, 'rewritten')
 +
  
  class PycRewritingTests(unittest.TestCase):
      # Test that the `co_filename` attribute on code objects always points
index fefefc42850c466091650d7e2674e9e51b7bef7f,6f0a840f3bb9d6dbbe5c945191ace39d1dcf8b03..2ddba3413a2aa652de70e0e3fcfadcb3227354ca
@@@ -255,15 -252,14 +255,16 @@@ class RunModuleTestCase(unittest.TestCa
          try:
              if verbose > 1: print("Running from source:", mod_name)
              self.check_code_execution(create_ns, expected_ns)
 +            importlib.invalidate_caches()
              __import__(mod_name)
              os.remove(mod_fname)
-             make_legacy_pyc(mod_fname)
-             unload(mod_name)  # In case loader caches paths
-             importlib.invalidate_caches()
-             if verbose > 1: print("Running from compiled:", mod_name)
-             self._fix_ns_for_legacy_pyc(expected_ns, alter_sys)
-             self.check_code_execution(create_ns, expected_ns)
+             if not sys.dont_write_bytecode:
+                 make_legacy_pyc(mod_fname)
+                 unload(mod_name)  # In case loader caches paths
++                importlib.invalidate_caches()
+                 if verbose > 1: print("Running from compiled:", mod_name)
+                 self._fix_ns_for_legacy_pyc(expected_ns, alter_sys)
+                 self.check_code_execution(create_ns, expected_ns)
          finally:
              self._del_pkg(pkg_dir, depth, mod_name)
          if verbose > 1: print("Module executed successfully")
          try:
              if verbose > 1: print("Running from source:", pkg_name)
              self.check_code_execution(create_ns, expected_ns)
 +            importlib.invalidate_caches()
              __import__(mod_name)
              os.remove(mod_fname)
-             make_legacy_pyc(mod_fname)
-             unload(mod_name)  # In case loader caches paths
-             if verbose > 1: print("Running from compiled:", pkg_name)
-             importlib.invalidate_caches()
-             self._fix_ns_for_legacy_pyc(expected_ns, alter_sys)
-             self.check_code_execution(create_ns, expected_ns)
+             if not sys.dont_write_bytecode:
+                 make_legacy_pyc(mod_fname)
+                 unload(mod_name)  # In case loader caches paths
+                 if verbose > 1: print("Running from compiled:", pkg_name)
++                importlib.invalidate_caches()
+                 self._fix_ns_for_legacy_pyc(expected_ns, alter_sys)
+                 self.check_code_execution(create_ns, expected_ns)
          finally:
              self._del_pkg(pkg_dir, depth, pkg_name)
          if verbose > 1: print("Package executed successfully")
@@@ -348,19 -345,18 +350,20 @@@ from ..uncle.cousin import nephe
              self.assertIn("sibling", d1)
              self.assertIn("nephew", d1)
              del d1 # Ensure __loader__ entry doesn't keep file open
 +            importlib.invalidate_caches()
              __import__(mod_name)
              os.remove(mod_fname)
-             make_legacy_pyc(mod_fname)
-             unload(mod_name)  # In case the loader caches paths
-             if verbose > 1: print("Running from compiled:", mod_name)
-             importlib.invalidate_caches()
-             d2 = run_module(mod_name, run_name=run_name) # Read from bytecode
-             self.assertEqual(d2["__name__"], expected_name)
-             self.assertEqual(d2["__package__"], pkg_name)
-             self.assertIn("sibling", d2)
-             self.assertIn("nephew", d2)
-             del d2 # Ensure __loader__ entry doesn't keep file open
+             if not sys.dont_write_bytecode:
+                 make_legacy_pyc(mod_fname)
+                 unload(mod_name)  # In case the loader caches paths
+                 if verbose > 1: print("Running from compiled:", mod_name)
++                importlib.invalidate_caches()
+                 d2 = run_module(mod_name, run_name=run_name) # Read from bytecode
+                 self.assertEqual(d2["__name__"], expected_name)
+                 self.assertEqual(d2["__package__"], pkg_name)
+                 self.assertIn("sibling", d2)
+                 self.assertIn("nephew", d2)
+                 del d2 # Ensure __loader__ entry doesn't keep file open
          finally:
              self._del_pkg(pkg_dir, depth, mod_name)
          if verbose > 1: print("Module executed successfully")
diff --cc Misc/NEWS
index 6ec7c66256a0ea34033d772c8579e84bf8039d72,6bde852f075ed1644c4761b4531f9ca8912e9c39..a52f4cef4f950198450b71dd62eea5154d75b407
+++ b/Misc/NEWS
@@@ -575,187 -542,3063 +575,190 @@@ Librar
  
  - Issue #16176: Properly identify Windows 8 via platform.platform()
  
 -- Issue #16114: The subprocess module no longer provides a misleading
 -  error message stating that args[0] did not exist when either the cwd or
 -  executable keyword arguments specified a path that did not exist.
 -
 -- 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 #16114: The subprocess module no longer provides a misleading error
 +  message stating that args[0] did not exist when either the cwd or executable
 +  keyword arguments specified a path that did not exist.
  
 -- Issue #12376: Pass on parameters in TextTestResult.__init__ super call
 +- Issue #16169: Fix ctypes.WinError()'s confusion between errno and winerror.
  
 -- 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 #16076: Made _elementtree.Element pickleable in a way that is compatible
 +  with the Python Element. Pickling/unpickling of xml.etree.ElementTree.Element
 +  works again - this was a temporary regression from 3.2 where the by-default
 +  imported _elementtree had no pickling capability.
  
 -- Issue #15421: fix an OverflowError in Calendar.itermonthdates() after
 -  datetime.MAXYEAR.  Patch by Cédric Krier.
 +- Issue #16089: Allow ElementTree.TreeBuilder to work again with a non-Element
 +  element_factory (fixes a regression in SimpleTAL).
  
 -- Issue #15970: xml.etree.ElementTree now serializes correctly the empty HTML
 -  elements 'meta' and 'param'.
 +- Issue #16913: Fix Element.itertext()'s handling of text with XML entities.,
  
 -- Issue #15842: the SocketIO.{readable,writable,seekable} methods now
 -  raise ValueError when the file-like object is closed.  Patch by Alessandro
 -  Moura.
 +- Issue #16034: Fix performance regressions in the new `bz2.BZ2File`
 +  implementation.  Initial patch by Serhiy Storchaka.
  
 -- Issue #15881: Fixed atexit hook in multiprocessing.  Original patch
 -  by Chris McDonough.
 +- Issue #16112: platform.architecture does not correctly escape argument to
 +  /usr/bin/file.  Patch by David Benjamin.
  
 -- Issue #15340: Fix importing the random module when /dev/urandom cannot
 -  be opened.  This was a regression caused by the hash randomization patch.
 +- 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 #15841: The readable(), writable() and seekable() methods of BytesIO
 -  and StringIO objects now raise ValueError when the object has been closed.
 -  Patch by Alessandro Moura.
 +- Issue #15323: Improve failure message of `Mock.assert_called_once_with()`.
  
 -- Issue #15509: webbrowser.UnixBrowser no longer passes empty arguments to
 -  Popen when %action substitutions produce empty strings.
 +- Issue #16064: ``unittest -m`` claims executable is "python", not "python3".
  
 -- Issue #16112: platform.architecture does not correctly escape argument to
 -  /usr/bin/file.  Patch by David Benjamin.
 +- Issue #12376: Pass on parameters in `TextTestResult.__init__()` super call.
  
 -- 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 #15222: Insert blank line after each message in mbox mailboxes.
  
 -- Issue #15906: Fix a regression in argparse caused by the preceding change,
 -  when action='append', type='str' and default=[].
 +- Issue #16013: Fix `csv.Reader` parsing issue with ending quote characters.
 +  Patch by Serhiy Storchaka.
  
 -- Issue #13370: Ensure that ctypes works on Mac OS X when Python is
 -  compiled using the clang compiler
 +- Issue #15421: Fix an OverflowError in `Calendar.itermonthdates()` after
 +  `datetime.MAXYEAR`.  Patch by Cédric Krier.
  
 -- Issue #15544: Fix Decimal.__float__ to work with payload-carrying NaNs.
 +- Issue #15970: `xml.etree.ElementTree` now serializes correctly the empty HTML
 +  elements 'meta' and 'param'.
  
 -- Issue #15249: BytesGenerator now correctly mangles From lines (when
 -  requested) even if the body contains undecodable bytes.
 +- Issue #15842: The `SocketIO.{readable,writable,seekable}` methods now raise
 +  ValueError when the file-like object is closed.  Patch by Alessandro Moura.
  
 -- Issue #15777: Fix a refleak in _posixsubprocess.
 +- Issue #15876: Fix a refleak in the `curses` module: window.encoding.
  
 -- Issue #15199: Fix JavaScript's default MIME type to application/javascript.
 -  Patch by Bohuslav Kabrda.
 +- Issue #15881: Fix `atexit` hook in `multiprocessing`.  Original patch by Chris
 +  McDonough.
  
 -- Issue #13579: string.Formatter now understands the 'a' conversion specifier.
 +- 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 #15793: Stack corruption in ssl.RAND_egd().
 +- Issue #16126: PyErr_Format format mismatch in _testcapimodule.c.
    Patch by Serhiy Storchaka.
  
 -- Issue #15595: Fix subprocess.Popen(universal_newlines=True)
 -  for certain locales (utf-16 and utf-32 family). Patch by Chris Jerdonek.
 +- Issue #15447: Use `subprocess.DEVNULL` in webbrowser, instead of opening
 +  `os.devnull` explicitly and leaving it open.
  
 -- 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 #15509: `webbrowser.UnixBrowser` no longer passes empty arguments to
 +  Popen when ``%action`` substitutions produce empty strings.
  
 -- Issue #15646: Prevent equivalent of a fork bomb when using
 -  multiprocessing on Windows without the "if __name__ == '__main__'"
 -  idiom.
 +- Issue #12776, issue #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 #15424: Add a __sizeof__ implementation for array objects.
 -  Patch by Ludwig Hähne.
 +- Issue #15906: Fix a regression in `argparse` caused by the preceding change,
 +  when ``action='append'``, ``type='str'`` and ``default=[]``.
  
 -- Issue #15546: Fix handling of pathological input data in the peek() method
 -  of the GzipFile class.
 +- Issue #12268: The io module file object write methods no longer abort early
 +  when one of its write system calls is interrupted (EINTR).
  
 -- Issue #13052: Fix IDLE crashing when replace string in Search/Replace dialog
 -  ended with '\'. Patch by Roger Serwy.
 +Tests
 +-----
  
 -- Issue #15538: Fix compilation of the getnameinfo() / getaddrinfo()
 -  emulation code.  Patch by Philipp Hagemeister.
++- Issue #11420: make test suite pass with -B/DONTWRITEBYTECODE set.
++  Initial patch by Thomas Wouters.
 -- Issue #9803: Don't close IDLE on saving if breakpoint is open.
 -  Patch by Roger Serwy.
 +- Issue #10652: make tcl/tk tests run after __all__ test, patch by
 +  Zachary Ware.
  
 -- Issue #12288: Consider '0' and '0.0' as valid initialvalue
 -  for tkinter SimpleDialog.
 +- Issue #11963: remove human verification from test_parser and test_subprocess.
  
 -- Issue #15512: Add a __sizeof__ implementation for parser.
 -  Patch by Serhiy Storchaka.
 +- Issue #11732: add a new suppress_crash_popup() context manager to test.support
 +  that disables crash popups on Windows and use it in test_faulthandler and
 +  test_capi.
  
 -- Issue #15469: Add a __sizeof__ implementation for deque objects.
 -  Patch by Serhiy Storchaka.
 +- Issue #13898: test_ssl no longer prints a spurious stack trace on Ubuntu.
  
 -- Issue #15489: Add a __sizeof__ implementation for BytesIO objects.
 -  Patch by Serhiy Storchaka.
 +- Issue #17249: convert a test in test_capi to use unittest and reap threads.
  
 -- Issue #15487: Add a __sizeof__ implementation for buffered I/O objects.
 -  Patch by Serhiy Storchaka.
 +- Issue #17041: Fix testing when Python is configured with the
 +  --without-doc-strings.
  
 -- Issue #6056: Make multiprocessing use setblocking(True) on the
 -  sockets it uses.  Original patch by J Derek Wilson.
 +- Issue #16923: Fix ResourceWarnings in test_ssl.
  
 -- Issue #15041: update "see also" list in tkinter documentation.
 +- Issue #15539: Added regression tests for Tools/scripts/pindent.py.
  
 -- 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 #17066: test_robotparser now works with unittest test discovery.
 +  Patch by Zachary Ware.
  
 -- Issue #15232: when mangle_from is True, email.Generator now correctly mangles
 -  lines that start with 'From ' that occur in a MIME preamble or epilogue.
 +- Issue #17334: test_index now works with unittest test discovery.
 +  Patch by Zachary Ware.
  
 -- Issue #13922: argparse no longer incorrectly strips '--'s that appear
 -  after the first one.
 +- Issue #17333: test_imaplib now works with unittest test discovery.
 +  Patch by Zachary Ware.
  
 -- Issue #12353: argparse now correctly handles null argument values.
 +- Issue #17082: test_dbm* now work with unittest test discovery.
 +  Patch by Zachary Ware.
  
 -- Issues #10017 and #14998: Fix TypeError using pprint on dictionaries with
 -  user-defined types as keys or other unorderable keys.
 +- Issue #17079: test_ctypes now works with unittest test discovery.
 +  Patch by Zachary Ware.
  
 -- Issue #14635: telnetlib will use poll() rather than select() when possible
 -  to avoid failing due to the select() file descriptor limit.
 +- Issue #17304: test_hash now works with unittest test discovery.
 +  Patch by Zachary Ware.
  
 -- Issue #15180: Clarify posixpath.join() error message when mixing str & bytes
 +- Issue #17303: test_future* now work with unittest test discovery.
 +  Patch by Zachary Ware.
  
 -- Issue #15230: runpy.run_path now correctly sets __package__ as described
 -  in the documentation
 +- Issue #17163: test_file now works with unittest test discovery.
 +  Patch by Zachary Ware.
  
 -- Issue #14990: Correctly fail with SyntaxError on invalid encoding
 -  declaration.
 +- Issue #16925: test_configparser now works with unittest test discovery.
 +  Patch by Zachary Ware.
  
 -- Issue #15247: FileIO now raises an error when given a file descriptor
 -  pointing to a directory.
 +- Issue #16918: test_codecs now works with unittest test discovery.
 +  Patch by Zachary Ware.
  
 -- Issue #5346: Preserve permissions of mbox, MMDF and Babyl mailbox
 -  files on flush().
 +- Issue #16919: test_crypt now works with unittest test discovery.
 +  Patch by Zachary Ware.
  
 -- Issue #10571: Fix the "--sign" option of distutils' upload command.
 -  Patch by Jakub Wilk.
 +- Issue #16910: test_bytes, test_unicode, and test_userstring now work with
 +  unittest test discovery.  Patch by Zachary Ware.
  
 -- 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 #16905: test_warnings now works with unittest test discovery.
 +  Initial patch by Berker Peksag.
  
 -- Issue #14653: email.utils.mktime_tz() no longer relies on system
 -  mktime() when timezone offest is supplied.
 +- Issue #16898: test_bufio now works with unittest test discovery.
 +  Patch by Zachary Ware.
  
 -- Fix GzipFile's handling of filenames given as bytes objects.
 +- Issue #16888: test_array now works with unittest test discovery.
 +  Patch by Zachary Ware.
  
 -- Issue #15101: Make pool finalizer avoid joining current thread.
 +- Issue #16896: test_asyncore now works with unittest test discovery.
 +  Patch by Zachary Ware.
  
 -- 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 #16897: test_bisect now works with unittest test discovery.
 +  Initial patch by Zachary Ware.
  
 -- Issue #10133: Make multiprocessing deallocate buffer if socket read
 -  fails.  Patch by Hallvard B Furuseth.
 +- Issue #16852: test_genericpath, test_posixpath, test_ntpath, and test_macpath
 +  now work with unittest test discovery.  Patch by Zachary Ware.
  
 -- Issue #13854: Make multiprocessing properly handle non-integer
 -  non-string argument to SystemExit.
 +- Issue #16748: test_heapq now works with unittest test discovery.
  
 -- Issue #12157: Make pool.map() empty iterables correctly.  Initial
 -  patch by mouad.
 +- Issue #15324: Fix regrtest parsing of --fromfile, --match, and --randomize
 +  options.
  
 -- Issue #14992: os.makedirs(path, exist_ok=True) would raise an OSError
 -  when the path existed and had the S_ISGID mode bit set when it was
 -  not explicitly asked for.  This is no longer an exception as mkdir
 -  cannot control if the OS sets that bit for it or not.
 +- Issue #16664: Add regression tests for glob's behaviour concerning entries
 +  starting with a ".".  Patch by Sebastian Kreft.
  
 -- Issue #14962: Update text coloring in IDLE shell window after changing
 -  options.  Patch by Roger Serwy.
 +- Issue #16559: Add more tests for the json module, including some from the
 +  official test suite at json.org.  Patch by Serhiy Storchaka.
  
 -- Issue #10997: Prevent a duplicate entry in IDLE's "Recent Files" menu.
 +- Issue #16661: Fix the `os.getgrouplist()` test by not assuming that it gives
 +  the same output as :command:`id -G`.
  
 -- Issue #14443: Tell rpmbuild to use the correct version of Python in
 -  bdist_rpm. Initial patch by Ross Lagerwall.
 +- Issue #16115: Add some tests for the executable argument to
 +  subprocess.Popen().  Initial patch by Kushal Das.
  
 -- Issue #14929: Stop Idle 3.x from closing on Unicode decode errors when
 -  grepping. Patch by Roger Serwy.
 +- Issue #15304: Fix warning message when `os.chdir()` fails inside
 +  `test.support.temp_cwd()`.  Patch by Chris Jerdonek.
  
 -- Issue #12510: Attempting to get invalid tooltip no longer closes Idle.
 -  Other tooltipss have been corrected or improved and the number of tests
 -  has been tripled. Original patch by Roger Serwy.
 +- Issue #15802: Fix test logic in `TestMaildir.test_create_tmp()`. Patch by
 +  Serhiy Storchaka.
  
 -- Issue #10365: File open dialog now works instead of crashing even when
 -  the parent window is closed before the dialog. Patch by Roger Serwy.
 +- Issue #15557: Add a test suite for the `webbrowser` module, thanks to Anton
 +  Barkovsky.
  
 -- Issue #14876: Use user-selected font for highlight configuration.
 -
 -- Issue #14920: Fix the help(urllib.parse) failure on locale C on terminals.
 -  Have ascii characters in help.
 -
 -- Issue #14863: Update the documentation of os.fdopen() to reflect the
 -  fact that it's only a thin wrapper around open() anymore.
 -
 -- Issue #14036: Add an additional check to validate that port in urlparse does
 -  not go in illegal range and returns None.
 -
 -- Issue #14875: Use float('inf') instead of float('1e66666') in the json module.
 -
 -- Issue #14426: Correct the Date format in Expires attribute of Set-Cookie
 -  Header in Cookie.py.
 -
 -- Issue #14721: Send the correct 'Content-length: 0' header 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 #14829: Fix bisect and range() indexing with large indices
 -  (>= 2 ** 32) 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 of 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 #14741: Fix missing support for Ellipsis ('...') in parser module.
 -
 -- Issue #14697: Fix missing support for set displays and set comprehensions in
 -  parser module.
 -
 -- Issue #14701: Fix missing support for 'raise ... from' in parser module.
 -
 -- Issue #13183: Fix pdb skipping frames after hitting a breakpoint and running
 -  step.  Patch by Xavier de Gaye.
 -
 -- Issue #14696: Fix parser module to understand 'nonlocal' declarations.
 -
 -- Issue #10941: Fix imaplib.Internaldate2tuple to produce correct result near
 -  the DST transition.  Patch by Joe Peterson.
 -
 -- Issue #9154: Fix parser module to understand function annotations.
 -
 -- 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 #14629: Raise SyntaxError in tokenizer.detect_encoding if the
 -  first two lines have non-UTF-8 characters without an encoding declaration.
 -
 -- 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.  In addition, the TypeError that results from
 -  trying to set a non-binary value as a comment is now raised at the time
 -  the comment is set rather than at the time the zipfile is written.
 -
 -- 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 #14496: Fix wrong name in idlelib/tabbedpages.py.
 -  Patch by Popa Claudiu.
 -
 -- Issue #14482: Raise a ValueError, not a NameError, when trying to create
 -  a multiprocessing Client or Listener with an AF_UNIX type address under
 -  Windows.  Patch by Popa Claudiu.
 -
 -- Issue #14151: Raise a ValueError, not a NameError, when trying to create
 -  a multiprocessing Client or Listener with an AF_PIPE type address under
 -  non-Windows platforms.  Patch by Popa Claudiu.
 -
 -- Issue #13872: socket.detach() now marks the socket closed (as mirrored
 -  in the socket repr()).  Patch by Matt Joiner.
 -
 -- Issue #14406: Fix a race condition when using ``concurrent.futures.wait(
 -  return_when=ALL_COMPLETED)``.  Patch by Matt Joiner.
 -
 -- 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 #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 #3573: IDLE hangs when passing invalid command line args
 -  (directory(ies) instead of file(s)) (Patch by Guilherme Polo)
 -
 -- Issue #13694: asynchronous connect in asyncore.dispatcher does not set addr
 -  attribute.
 -
 -- Issue #11686: Added missing entries to email package __all__ lists
 -  (mostly the new Bytes classes).
 -
 -- Issue #10484: Fix the CGIHTTPServer's PATH_INFO handling problem.
 -
 -- Issue #11199: Fix the with urllib which hangs on particular ftp urls.
 -
 -- Issue #14062: Header objects now correctly respect the 'linesep' setting
 -  when processed by BytesParser (which smtplib.SMTP.send_message uses).
 -
 -- Issue #14291: Email now defaults to utf-8 for non-ASCII unicode headers
 -  instead of raising an error.  This fixes a regression relative to 2.7.
 -
 -- Issue #5219: Prevent event handler cascade in IDLE.
 -
 -- Issue #14184: Increase the default stack size for secondary threads on
 -  Mac OS X to avoid interpreter crashes when using threads on 10.7.
 -
 -- Issue #10543: Fix unittest test discovery with Jython bytecode files.
 -
 -- 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 #14177: marshal.loads() now raises TypeError when given an unicode
 -  string.  Patch by Guilherme Gonçalves.
 -
 -- Issue #14159: Fix the len() of weak containers (WeakSet, WeakKeyDictionary,
 -  WeakValueDictionary) to return a better approximation when some objects
 -  are dead or dying.  Moreover, the implementation is now O(1) rather than
 -  O(n).
 -
 -- Issue #13125: Silence spurious test_lib2to3 output when in non-verbose mode.
 -  Patch by Mikhail Novikov.
 -
 -- Issue #13447: Add a test file to host regression tests for bugs in the
 -  scripts found in the Tools directory.
 -
 -- Issue #8033: sqlite3: Fix 64-bit integer handling in user functions
 -  on 32-bit architectures. Initial patch by Philippe Devalkeneer.
 -
 -- 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 3.2 branch (for release in 3.2.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.
 -
 -Extension Modules
 ------------------
 -
 -- Issue #12268: The io module file object write methods no longer abort early
 -  when one of its 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 #16012: Fix a regression in pyexpat. The parser's UseForeignDTD()
 -  method doesn't require an argument again.
 -
 -- Issue #15676: Now "mmap" check for empty files before doing the
 -  offset check.  Patch by Steven Willis.
 -
 -- 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 #15000: Support the "unique" x32 architecture in _posixsubprocess.c.
 -
 -- 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.
 -
 -- Issue #14212: The re module didn't retain a reference to buffers it was
 -  scanning, resulting in segfaults.
 -
 -Tests
 ------
 -
 -- Issue #11420: make test suite pass with -B/DONTWRITEBYTECODE set.
 -  Initial patch by Thomas Wouters.
 -
 -- Issue #10652: make tcl/tk tests run after __all__ test, patch by
 -  Zachary Ware.
 -
 -- Issue #11963: remove human verification from test_parser and test_subprocess.
 -
 -- Issue #11732: add a new suppress_crash_popup() context manager to test.support
 -  that disables crash popups on Windows and use it in test_capi.
 -
 -- Issue #13898: test_ssl no longer prints a spurious stack trace on Ubuntu.
 -
 -- Issue #17249: convert a test in test_capi to use unittest and reap threads.
 -
 -- Issue #17041: Fix testing when Python is configured with the
 -  --without-doc-strings.
 -
 -- Issue #15539: Added regression tests for Tools/scripts/pindent.py.
 -
 -- Issue #15324: Fix regrtest parsing of --fromfile, --match, and --randomize
 -  options.
 -
 -- Issue #16664: Add regression tests for glob's behaviour concerning entries
 -  starting with a ".".  Patch by Sebastian Kreft.
 -
 -- Issue #15872: Add tests for a 3.3 regression which caused the new fd-based
 -  shutil.rmtree not ignore all errors. Also add a test ensuring that rmtree
 -  fails when being called on a symlink. Patch by 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 #15304: Fix warning message when os.chdir() fails inside
 -  test.support.temp_cwd().  Patch by Chris Jerdonek.
 -
 -- Issue #15802: Fix test logic in TestMaildir.test_create_tmp. Patch
 -  by Serhiy Storchaka.
 -
 -- 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 #15285: Refactor the approach for testing connect timeouts using
 -  two external hosts that have been configured specifically for this type
 -  of test.
 -
 -- 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 #15467: Move helpers for __sizeof__ tests into test_support.
 -  Patch by Serhiy Storchaka.
 -
 -- Issue #15320: Make iterating the list of tests thread-safe when running
 -  tests in multiprocess mode. Patch by Chris Jerdonek.
 -
 -- Issue #15230: Adopted a more systematic approach in the runpy tests
 -
 -- Issue #15300: Ensure the temporary test working directories are in the same
 -  parent folder when running tests in multiprocess mode from a Python build.
 -  Patch by Chris Jerdonek.
 -
 -- test_nntplib now tolerates being run from behind NNTP gateways that add
 -  "X-Antivirus" headers to articles
 -
 -- Issue #15043: test_gdb is now skipped entirely if gdb security settings
 -  block loading of the gdb hooks
 -
 -- Issue #14026: In test_cmd_line_script, check that sys.argv is populated
 -  correctly for the various invocation approaches (Patch by Jason Yeo)
 -
 -- Issue #14032: Fix incorrect variable name in test_cmd_line_script debugging
 -  message (Patch by Jason Yeo)
 -
 -- 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.
 -
 -Build
 ------
 -
 -- Issue #5033: Fix building of the sqlite3 extension module when the
 -  SQLite library version has "beta" in it. Patch by Andreas Pelme.
 -
 -- 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 #16593: Have BSD 'make -s' do the right thing, thanks to Daniel Shahaf
 -
 -- Issue #16262: fix out-of-src-tree builds, if mercurial is not installed.
 -
 -- 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 #14197: For OS X framework builds, ensure links to the shared
 -  library are created with the proper ABI suffix.
 -
 -- Issue #14472: Update .gitignore. Patch by Matej Cepl.
 -
 -- The Windows build now uses OpenSSL 1.0.0j and bzip2 1.0.6.
 -
 -- Issue #14557: Fix extensions build on HP-UX. Patch by Adi Roiban.
 -
 -- Issue #14437: Fix building the _io module under Cygwin.
 -
 -- Issue #14387: Do not include accu.h from Python.h.
 -
 -- Issue #14359: Only use O_CLOEXEC in _posixmodule.c if it is defined.
 -  Based on patch from Hervé Coatanhay.
 -
 -- 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 #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 python3 man page.
 -
 -Tools/Demos
 ------------
 -
 -- Issue #13301: use ast.literal_eval() instead of eval() in Tools/i18n/msgfmt.py
 -  Patch by Serhiy Storchaka.
 -
 -Documentation
 --------------
 -
 -- 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 #13538: Improve str() and object.__str__() 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 #13498: Clarify docs of os.makedirs()'s exist_ok argument.  Done with
 -  great native-speaker help from R. David Murray.
 -
 -- Issue #15533: Clarify docs and add tests for subprocess.Popen()'s cwd
 -  argument.
 -
 -- 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 #11964: Document a change in v3.2 to the behavior of the indent
 -  parameter of json encoding operations.
 -
 -- 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 #15444: Use proper spelling for non-ASCII contributor names.  Patch
 -  by Serhiy Storchaka.
 -
 -- Issue #15482: Properly document the default 'level' value for __import__()
 -  while warning about using negative values.
 -
 -- Issue #15230: Clearly document some of the limitations of the runpy
 -  module and nudge readers towards importlib when appropriate.
 -
 -- Issue #13557: Clarify effect of giving two different namespaces to exec or
 -  execfile().
 -
 -- Issue #8799: Fix and improve the threading.Condition documentation.
 -
 -- Issue #14943: Correct a default argument value for winreg.OpenKey
 -  and correctly list the argument names in the function's explanation.
 -
 -- 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.
 -
 -Tools/Demos
 ------------
 -
 -- 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 #15378: Fix Tools/unicode/comparecodecs.py.  Patch by Serhiy Storchaka.
 -
 -- Issue #14695: Fix missing support for starred assignments in
 -  Tools/parser/unparse.py.
 -
 -
 -What's New in Python 3.2.3?
 -===========================
 -
 -*Release date: 10-Apr-2012*
 -
 -Build
 ------
 -
 -- Issue #14387: Work around a problem building extension modules under Windows
 -  by undefining ``small`` before use in the Python headers.
 -
 -
 -What's New in Python 3.2.3 release candidate 2?
 -===============================================
 -
 -*Release date: 18-Mar-2012*
 -
 -Library
 --------
 -
 -- Issue #6884: Fix long-standing bugs with MANIFEST.in parsing in distutils
 -  on Windows.
 -
 -Extension Modules
 ------------------
 -
 -- 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 3.2.3 release candidate 1?
 -===============================================
 -
 -*Release date: 24-Feb-2012*
 -
 -Core and Builtins
 ------------------
 -
 -- 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 #14084: Fix a file descriptor leak when importing a module with a
 -  bad encoding.
 -
 -- Issue #13020: Fix a reference leak when allocating a structsequence object
 -  fails.  Patch by Suman Saha.
 -
 -- Issue #13908: Ready types returned from PyType_FromSpec.
 -
 -- Issue #11235: Fix OverflowError when trying to import a source file whose
 -  modification time doesn't fit in a 32-bit timestamp.
 -
 -- Fix the builtin module initialization code to store the init function for
 -  future reinitialization.
 -
 -- Issue #8052: The posix subprocess module would take a long time closing
 -  all possible file descriptors in the child process rather than just open
 -  file descriptors.  It now closes only the open fds if possible for the
 -  default close_fds=True behavior.
 -
 -- Issue #13629: Renumber the tokens in token.h so that they match the indexes
 -  into _PyParser_TokenNames.
 -
 -- 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 #13505: Pickle bytes objects in a way that is compatible with
 -  Python 2 when using protocols <= 2.
 -
 -- Issue #11147: Fix an unused argument in _Py_ANNOTATE_MEMORY_ORDER.  (Fix
 -  given by Campbell Barton).
 -
 -- Issue #7111: Python can now be run without a stdin, stdout or stderr
 -  stream.  It was already the case with Python 2.  However, the corresponding
 -  sys module entries are now set to None (instead of an unusable file object).
 -
 -- Issue #13436: Fix a bogus error message when an AST object was passed
 -  an invalid integer value.
 -
 -- Issue #13338: Handle all enumerations in _Py_ANNOTATE_MEMORY_ORDER
 -  to allow compiling extension modules with -Wswitch-enum on gcc.
 -  Initial patch by Floris Bruynooghe.
 -
 -- Issue #13333: The UTF-7 decoder now accepts lone surrogates (the encoder
 -  already accepts them).
 -
 -- Issue #13342: input() used to ignore sys.stdin's and sys.stdout's unicode
 -  error handler in interactive mode (when calling into PyOS_Readline()).
 -
 -- Issue #13343: Fix a SystemError when a lambda expression uses a global
 -  variable in the default value of a keyword-only argument:
 -  (lambda *, arg=GLOBAL_NAME: None)
 -
 -- Issue #10519: Avoid unnecessary recursive function calls in
 -  setobject.c.
 -
 -- Issue #10363: Deallocate global locks in Py_Finalize().
 -
 -- Issue #13018: Fix reference leaks in error paths in dictobject.c.
 -  Patch by Suman Saha.
 -
 -- Issue #1294232: In a few cases involving metaclass inheritance, the
 -  interpreter would sometimes invoke the wrong metaclass when building a new
 -  class object. These cases now behave correctly. Patch by Daniel Urban.
 -
 -- Issue #12604: VTRACE macro expanded to no-op in _sre.c to avoid compiler
 -  warnings. Patch by Josh Triplett and Petri Lehtinen.
 -
 -- Issue #13188: When called without an explicit traceback argument,
 -  generator.throw() now gets the traceback from the passed exception's
 -  ``__traceback__`` attribute.  Patch by 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 #13063: the Windows error ERROR_NO_DATA (numbered 232 and described
 -  as "The pipe is being closed") is now mapped to POSIX errno EPIPE
 -  (previously EINVAL).
 -
 -- Issue #12911: Fix memory consumption when calculating the repr() of huge
 -  tuples or lists.
 -
 -- Issue #7732: Don't open a directory as a file anymore while importing a
 -  module. Ignore the direcotry if its name matchs the module name (e.g.
 -  "__init__.py") and raise a ImportError instead.
 -
 -- Issue #13021: Missing decref on an error path.  Thanks to Suman Saha for
 -  finding the bug and providing a patch.
 -
 -- Issue #12973: Fix overflow checks that relied on undefined behaviour in
 -  list_repeat (listobject.c) and islice_next (itertoolsmodule.c).  These bugs
 -  caused test failures with recent versions of Clang.
 -
 -- Issue #12802: the Windows error ERROR_DIRECTORY (numbered 267) is now
 -  mapped to POSIX errno ENOTDIR (previously EINVAL).
 -
 -- Issue #9200: The str.is* methods now work with strings that contain non-BMP
 -  characters even in narrow Unicode builds.
 -
 -- Issue #12791: Break reference cycles early when a generator exits with
 -  an exception.
 -
 -- Issue #12266: Fix str.capitalize() to correctly uppercase/lowercase
 -  titlecased and cased non-letter characters.
 -
 -Library
 --------
 -
 -- 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 #13015: Fix a possible reference leak in defaultdict.__repr__.
 -  Patch by Suman Saha.
 -
 -- Issue #1326113: distutils' build_ext command --libraries option now
 -  correctly parses multiple values separated by whitespace or commas.
 -
 -- Issue #10287: nntplib now queries the server's CAPABILITIES first before
 -  sending MODE READER, and only sends it if not already in READER mode.
 -  Patch by Hynek Schlawack.
 -
 -- Issue #13979: A bug in ctypes.util.find_library that caused
 -  the wrong library name to be returned has been fixed.
 -
 -- Issue #13993: HTMLParser is now able to handle broken end tags when
 -  strict=False.
 -
 -- 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 #10287: nntplib now queries the server's CAPABILITIES again after
 -  authenticating (since the result may change, according to RFC 4643).
 -  Patch by Hynek Schlawack.
 -
 -- Issue #13989: Document that GzipFile does not support text mode, and give a
 -  more helpful error message when opened with an invalid mode string.
 -
 -- 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 #13960: HTMLParser is now able to handle broken comments when
 -  strict=False.
 -
 -- 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 #10881: Fix test_site failure with OS X framework builds.
 -
 -- Issue #964437: Make IDLE help window non-modal.
 -  Patch by Guilherme Polo and Roger Serwy.
 -
 -- Issue #2945: Make the distutils upload command aware of bdist_rpm products.
 -
 -- Issue #13933: IDLE auto-complete did not work with some imported
 -  module, like hashlib.  (Patch by Roger Serwy)
 -
 -- Issue #13901: Prevent test_distutils failures on OS X with --enable-shared.
 -
 -- Issue #13676: Handle strings with embedded zeros correctly in sqlite3.
 -
 -- Issue #13506: Add '' to path for IDLE Shell when started and restarted with Restart Shell.
 -  Original patches by Marco Scataglini and Roger Serwy.
 -
 -- Issue #13848: open() and the FileIO constructor now check for NUL
 -  characters in the file name.  Patch by Hynek Schlawack.
 -
 -- Issue #13806: The size check in audioop decompression functions was too
 -  strict and could reject valid compressed data.  Patch by Oleg Plakhotnyuk.
 -
 -- Issue #13812: When a multiprocessing Process child raises an exception,
 -  flush stderr after printing the exception traceback.
 -
 -- Issue #13885: CVE-2011-3389: the _ssl module would always disable the CBC
 -  IV attack countermeasure.
 -
 -- Issue #13772: In os.symlink() under Windows, do not try to guess the link
 -  target's type (file or directory).  The detection was buggy and made the
 -  call non-atomic (therefore prone to race conditions).
 -
 -- Issue #6631: Disallow relative file paths in urllib urlopen methods.
 -
 -- Issue #13722: Avoid silencing ImportErrors when initializing the codecs
 -  registry.
 -
 -- Issue #13781: Fix GzipFile bug that caused an exception to be raised when
 -  opening for writing using a fileobj returned by os.fdopen().
 -
 -- Issue #13803: Under Solaris, distutils doesn't include bitness
 -  in the directory name.
 -
 -- Issue #13589: Fix some serialization primitives in the aifc module.
 -  Patch by Oleg Plakhotnyuk.
 -
 -- Issue #13642: Unquote before b64encoding user:password during Basic
 -  Authentication. Patch contributed by Joonas Kuorilehto.
 -
 -- Issue #13726: Fix the ambiguous -S flag in regrtest. It is -o/--slow for slow
 -  tests.
 -
 -- Issue #12364: Fix a hang in concurrent.futures.ProcessPoolExecutor.
 -  The hang would occur when retrieving the result of a scheduled future after
 -  the executor had been shut down.
 -
 -- Issue #13502: threading: Fix a race condition in Event.wait() that made it
 -  return False when the event was set and cleared right after.
 -
 -- Issue #12926: Fix a bug in tarfile's link extraction.
 -
 -- Issue #13696: Fix the 302 Relative URL Redirection problem.
 -
 -- 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 #11006: Don't issue low level warning in subprocess when pipe2() fails.
 -
 -- Issue #11829: Fix code execution holes in inspect.getattr_static for
 -  metaclasses with metaclasses. Patch by Andreas Stührk.
 -
 -- Issue #1785: Fix inspect and pydoc with misbehaving descriptors.
 -
 -- Issue #11813: Fix inspect.getattr_static for modules. Patch by Andreas
 -  Stührk.
 -
 -- 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.
 -
 -- Issue #10350: Read and save errno before calling a function which might
 -  overwrite it.  Original patch by Hallvard B Furuseth.
 -
 -- Issue #13591: A bug in importlib has been fixed that caused import_module
 -  to load a module twice.
 -
 -- 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 #5905: time.strftime() is now using the locale encoding, instead of
 -  UTF-8, if the wcsftime() function is not available.
 -
 -- Issue #8641: Update IDLE 3 syntax coloring to recognize b".." and not u"..".
 -  Patch by Tal Einat.
 -
 -- tarfile.py: Correctly detect bzip2 compressed streams with blocksizes
 -  other than 900k.
 -
 -- Issue #13439: Fix many errors in turtle docstrings.
 -
 -- Issue #13487: Make inspect.getmodule robust against changes done to
 -  sys.modules while it is iterating over it.
 -
 -- Issue #12618: Fix a bug that prevented py_compile from creating byte
 -  compiled files in the current directory.  Initial patch by Sjoerd de Vries.
 -
 -- Issue #13444: When stdout has been closed explicitly, we should not attempt
 -  to flush it at shutdown and print an error.
 -
 -- 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 #13193: Fix distutils.filelist.FileList under Windows.
 -
 -- Issue #13384: Remove unnecessary __future__ import in Lib/random.py
 -
 -- Issue #13373: multiprocessing.Queue.get() could sometimes block indefinitely
 -  when called with a timeout.  Patch by Arnaud Ysmal.
 -
 -- Issue #13254: Fix Maildir initialization so that maildir contents
 -  are read correctly.
 -
 -- Issue #3067: locale.setlocale() now raises TypeError if the second
 -  argument is an invalid iterable. Its documentation and docstring
 -  were also updated. Initial patch by Jyrki Pulliainen.
 -
 -- Issue #13140: Fix the daemon_threads attribute of ThreadingMixIn.
 -
 -- Issue #13339: Fix compile error in posixmodule.c due to missing semicolon.
 -  Thanks to Robert Xiao.
 -
 -- Issue #10570: curses.putp() and curses.tparm() are now expecting a byte
 -  string, instead of a Unicode string.
 -
 -- 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 #13296: Fix IDLE to clear compile __future__ flags on shell restart.
 -  (Patch by Roger Serwy)
 -
 -- Issue #13293: Better error message when trying to marshal bytes using
 -  xmlrpc.client.
 -
 -- Issue #13291: NameError in xmlrpc package.
 -
 -- Issue #13258: Use callable() built-in in the standard library.
 -
 -- Issue #13273: fix a bug that prevented HTMLParser to properly detect some
 -  tags when strict=False.
 -
 -- Issue #10332: multiprocessing: fix a race condition when a Pool is closed
 -  before all tasks have completed.
 -
 -- Issue #13255: wrong docstrings in array module.
 -
 -- 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 #12448: smtplib now flushes stdout while running ``python -m smtplib``
 -  in order to display the prompt correctly.
 -
 -- 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 #13158: Fix decoding and encoding of GNU tar specific base-256 number
 -  fields in tarfile.
 -
 -- Issue #13177:  Functools lru_cache() no longer calls the original function
 -  inside an exception handler.  This makes tracebacks easier to read because
 -  chained exceptions are avoided.
 -
 -- Issue #13025: mimetypes is now reading MIME types using the UTF-8 encoding,
 -  instead of the locale encoding.
 -
 -- Issue #10653: On Windows, use strftime() instead of wcsftime() because
 -  wcsftime() doesn't format time zone correctly.
 -
 -- Issue #11171: Fix distutils.sysconfig.get_makefile_filename when Python was
 -  configured with different prefix and exec-prefix.
 -
 -- Issue #11254: Teach distutils to compile .pyc and .pyo files in
 -  PEP 3147-compliant __pycache__ directories.
 -
 -- Issue #11250: Back port fix from 3.3 branch, so that 2to3 can handle files
 -  with line feeds.  This was ported from the sandbox to the 3.3 branch, but
 -  didn't make it into 3.2.
 -
 -- Issue #7367: Fix pkgutil.walk_paths to skip directories whose
 -  contents cannot be read.
 -
 -- Issue #13099: Fix sqlite3.Cursor.lastrowid under a Turkish locale.
 -  Reported and diagnosed by Thomas Kluyver.
 -
 -- Issue #13087: BufferedReader.seek() now always raises UnsupportedOperation
 -  if the underlying raw stream is unseekable, even if the seek could be
 -  satisfied using the internal buffer.  Patch by John O'Connor.
 -
 -- Issue #7689: Allow pickling of dynamically created classes when their
 -  metaclass is registered with copyreg.  Patch by Nicolas M. Thiéry and Craig
 -  Citro.
 -
 -- Issue #4147: minidom's toprettyxml no longer adds whitespace to text nodes.
 -
 -- Issue #13034: When decoding some SSL certificates, the subjectAltName
 -  extension could be unreported.
 -
 -- Issue #9871: Prevent IDLE 3 crash when given byte stings
 -  with invalid hex escape sequences, like b'\x0'.
 -  (Original patch by Claudiu Popa.)
 -
 -- 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 #9561: distutils now reads and writes egg-info files using UTF-8,
 -  instead of the locale encoding.
 -
 -- Issue #12888: Fix a bug in HTMLParser.unescape that prevented it to escape
 -  more than 128 entities.  Patch by Peter Otten.
 -
 -- Issue #12878: Expose a __dict__ attribute on io.IOBase and its subclasses.
 -
 -- Issue #12636: IDLE reads the coding cookie when executing a Python script.
 -
 -- Issue #12847: Fix a crash with negative PUT and LONG_BINPUT arguments in
 -  the C pickle implementation.
 -
 -- Issue #11564: Avoid crashes when trying to pickle huge objects or containers
 -  (more than 2**31 items).  Instead, in most cases, an OverflowError is raised.
 -
 -- Issue #12287: Fix a stack corruption in ossaudiodev module when the FD is
 -  greater than FD_SETSIZE.
 -
 -- Issue #11657: Fix sending file descriptors over 255 over a multiprocessing
 -  Pipe.
 -
 -- Issue #13007: whichdb should recognize gdbm 1.9 magic numbers.
 -
 -- Issue #12213: Fix a buffering bug with interleaved reads and writes that
 -  could appear on BufferedRandom streams.
 -
 -- Issue #12650: Fix a race condition where a subprocess.Popen could leak
 -  resources (FD/zombie) when killed at the wrong time.
 -
 -- Issue #10860: http.client now correctly handles an empty port after port
 -  delimiter in URLs.
 -
 -Build
 ------
 -
 -- Issue #6807: Run msisupport.mak earlier.
 -
 -- Issue #10580: Minor grammar change in Windows installer.
 -
 -- Issue #13326: Clean __pycache__ directories correctly on OpenBSD.
 -
 -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 #13628: python-gdb.py is now able to retrieve more frames in the Python
 -  traceback if Python is optimized.
 -
 -Tests
 ------
 -
 -- Issue #11689: Fix a variable scoping error in an sqlite3 test
 -
 -- Issue #13786: Remove unimplemented 'trace' long option from regrtest.py.
 -
 -- Issue #13725: Fix regrtest to recognize the documented -d flag.
 -  Patch by Erno Tukia.
 -
 -- 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.
 -
 -- Re-enable lib2to3's test_parser.py tests, though with an expected failure
 -  (see issue 13125).
 -
 -Extension Modules
 ------------------
 -
 -- Issue #13840: The error message produced by ctypes.create_string_buffer
 -  when given a Unicode string has been fixed.
 -
 -- Issue #9975: socket: Fix incorrect use of flowinfo and scope_id. Patch by
 -  Vilmos Nebehaj.
 -
 -- Issue #13159: FileIO and BZ2File now use a linear-time buffer growth
 -  strategy instead of a quadratic-time 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 #13058: ossaudiodev: fix a file descriptor leak on error. Patch by
 -  Thomas Jarosch.
 -
 -- 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.
 -
 -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 used on OS X and OS/2.
 -
 -- Issue #12949: Document the kwonlyargcount argument for the PyCode_New
 -  C API function.
 -
 -- 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 3.2.2?
 -===========================
 -
 -*Release date: 03-Sep-2011*
 -
 -Core and Builtins
 ------------------
 -
 -- Issue #12326: sys.platform is now always 'linux2' on Linux, even if Python
 -  is compiled on Linux 3.
 -
 -- Accept bytes for the AST string type. This is temporary until a proper fix in
 -  3.3.
 -
 -Library
 --------
 -
 -- 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 #12839: Fix crash in zlib module due to version mismatch.
 -  Fix by Richard M. Tew.
 -
 -Extension Modules
 ------------------
 -
 -- Issue #9651: Fix a crash when ctypes.create_string_buffer(0) was passed to
 -  some functions like file.write().
 -
 -
 -
 -What's New in Python 3.2.2 release candidate 1?
 -===============================================
 -
 -*Release date: 14-Aug-2011*
 -
 -Core and Builtins
 ------------------
 -
 -- Issue #12732: In narrow unicode builds, allow Unicode identifiers which fall
 -  outside the BMP.
 -
 -- Issue #11603: Fix a crash when __str__ is rebound as __repr__.  Patch by
 -  Andreas Stührk.
 -
 -- Issue #11321: Fix a crash with multiple imports of the _pickle module when
 -  embedding Python.  Patch by Andreas Stührk.
 -
 -- Verify the types of AST strings and identifiers provided by the user before
 -  compiling them.
 -
 -- Issue #12579: str.format_map() now raises a ValueError if used on a
 -  format string that contains positional fields. Initial patch by
 -  Julian Berman.
 -
 -- Issue #11627: Fix segfault when __new__ on a exception returns a
 -  non-exception class.
 -
 -- Issue #12149: Update the method cache after a type's dictionary 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.
 -
 -- When a generator yields, do not retain the caller's exception state on the
 -  generator.
 -
 -- Issue #12475: Prevent generators from leaking their exception state into the
 -  caller's frame as they return for the last time.
 -
 -Library
 --------
 -
 -- Issue #11513: Fix exception handling ``tarfile.TarFile.gzopen()`` when
 -  the file cannot be opened.
 -
 -- Issue #12687: Fix a possible buffering bug when unpickling text mode
 -  (protocol 0, mostly) pickles.
 -
 -- Issue #10087: Fix the html output format of the calendar module.
 -
 -- Issue #12540: Prevent zombie IDLE processes on Windows due to changes
 -  in os.kill().
 -
 -- Issue #12683: urlparse updated to include svn as schemes that uses relative
 -  paths. (svn from 1.5 onwards support relative path).
 -
 -- Issues #11104, #8688: Fix the behavior of distutils' sdist command with
 -  manually-maintained MANIFEST files.
 -
 -- Issue #12464: tempfile.TemporaryDirectory.cleanup() should not follow
 -  symlinks: fix it. Patch by Petri Lehtinen.
 -
 -- 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 #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 #12576: Fix urlopen behavior on sites which do not send (or obfuscates)
 -  Connection:close header.
 -
 -- Issue #1813: Fix codec lookup under Turkish locales.
 -
 -- Issue #12591: Improve support of "universal newlines" in the subprocess
 -  module: the piped streams can now be properly read from or written to.
 -
 -- Issue #12591: Allow io.TextIOWrapper to work with raw IO objects (without
 -  a read1() method), and add an undocumented *write_through* parameter to
 -  mandate unbuffered writes.
 -
 -- Issue #9611, #9015: FileIO.read() clamps the length to INT_MAX on Windows.
 -
 -- Issue #10883: Fix socket leaks in urllib.request when using FTP.
 -
 -- 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.
 -
 -- Close the call queue in concurrent.futures.ProcessPoolExecutor when
 -  shutdown() is called, without waiting for the garbage collector to kick in.
 -
 -- Issue #12502: asyncore: fix polling loop with AF_UNIX sockets.
 -
 -- Issue #4376: ctypes now supports nested structures with an endianness
 -  different than that of the parent structure.  Patch by Vlad Riscutia.
 -
 -- Raise ValueError when attempting to set the _CHUNK_SIZE attribute of a
 -  TextIOWrapper to a huge value, not TypeError.
 -
 -- Issue #12493: subprocess: Popen.communicate() now also handles EINTR errors
 -  if the process has only one pipe.
 -
 -- Issue #12451: pydoc: html_getfile() now uses tokenize.open() to support
 -  Python modules using a encoding different than UTF-8 (reading the coding
 -  cookie of the module).
 -
 -- Issue #12451: pydoc: importfile() now opens the Python module in binary mode,
 -  instead of text mode using the locale encoding, to avoid encoding issues.
 -
 -- Issue #12451: runpy: run_path() now opens the Python module in binary mode,
 -  instead of text mode using the locale encoding, to support other encodings
 -  than UTF-8 (modules using the coding cookie).
 -
 -- Issue #12451: xml.dom.pulldom: parse() now opens files in binary mode instead
 -  of the text mode (using the locale encoding) to avoid encoding issues.
 -
 -- Issue #14443: Ensure that .py files are byte-compiled with the correct Python
 -  executable within bdist_rpm even on older versions of RPM
 -
 -Extension Modules
 ------------------
 -
 -- Issue #12764: Fix a crash in ctypes when the name of a Structure field is not
 -  a string.
 -
 -- Issue #11241: subclasses of ctypes.Array can now be subclassed.
 -
 -- 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.
 -
 -C-API
 ------
 -
 -Build
 ------
 -
 -- Issue #12560: Build libpython.so on OpenBSD.  Patch by Stefan Sperling.
 -
 -- Issue #12592: Make Python build on OpenBSD 5 (and future major releases).
 -
 -- Issue #12372: POSIX semaphores are broken on AIX: don't use them.
 -
 -Tools/Demos
 ------------
 -
 -- Issue #10639: reindent.py no longer converts newlines and will raise
 -  an error if attempting to convert a file with mixed newlines.
 -
 -Tests
 ------
 -
 -- Issue #12331: The test suite for lib2to3 can now run from an installed
 -  Python.
 -
 -- Issue #12626: In regrtest, allow to filter tests using a glob filter
 -  with the ``-m`` (or ``--match``) option.  This works with all test cases
 -  using the unittest module.  This is useful with long test suites
 -  such as test_io or test_subprocess.
 -
 -- Issue #12624: It is now possible to fail after the first failure when
 -  running in verbose mode (``-v`` or ``-W``), by using the ``--failfast``
 -  (or ``-G``) option to regrtest.  This is useful with long test suites
 -  such as test_io or test_subprocess.
 -
 -- Issue #12587: Correct faulty test file and reference in test_tokenize.
 -  (Patch by Robert Xiao)
 -
 -- Try harder to reap dangling threads in test.support.reap_threads().
 -
 -- Issue #12573: Add resource checks for dangling Thread and Process objects.
 -
 -- Issue #12549: Correct test_platform to not fail when OS X returns 'x86_64'
 -  as the processor type on some Mac systems.
 -
 -- Avoid failing in test_robotparser when mueblesmoraleda.com is flaky and
 -  an overzealous DNS service (e.g. OpenDNS) redirects to a placeholder
 -  Web site.
 -
 -- Issue #12440: When testing whether some bits in SSLContext.options can be
 -  reset, check the version of the OpenSSL headers Python was compiled against,
 -  rather than the runtime version of the OpenSSL library.
 -
 -- Issue #12497: Install test/data to prevent failures of the various codecmaps
 -  tests.
 -
 -- Issue #12496: Install test/capath directory to prevent test_connect_capath
 -  testcase failure in test_ssl.
 -
 -- Issue #12469: Run "wakeup" signal tests in subprocess to run the test in a
 -  fresh process with only one thread and to not change signal handling of the
 -  parent process.
 -
 -- 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).
 -
 -
 -What's New in Python 3.2.1?
 -===========================
 -
 -*Release date: 10-Jul-2011*
 -
 -Library
 --------
 -
 -- Issue #12467: warnings: fix a race condition if a warning is emitted at
 -  shutdown, if globals()['__file__'] is None.
 -
 -Tests
 ------
 -
 -- 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_urllibnet.test_bad_address when some overzealous
 -  DNS service (e.g. OpenDNS) resolves a non-existent domain name.  The test
 -  is now skipped instead.
 -
 -
 -What's New in Python 3.2.1 release candidate 2?
 -===============================================
 -
 -*Release date: 03-Jul-2011*
 -
 -Core and Builtins
 ------------------
 -
 -- Issue #12291: You can now load multiple marshalled objects from a stream, with
 -  other data interleaved between marshalled objects.
 -
 -- Issue #12084: os.stat on Windows now works properly with relative symbolic
 -  links when called from any directory.
 -
 -- 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 #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).
 -
 -Library
 --------
 -
 -- Issue #12147: Adjust the new-in-3.2 smtplib.send_message method for better
 -  conformance to the RFCs: correctly handle Sender and Resent headers.
 -
 -- Issue #12352: Fix a deadlock in multiprocessing.Heap when a block is freed by
 -  the garbage collector while the Heap lock is held.
 -
 -- Issue #12451: The XInclude default loader of xml.etree now decodes files from
 -  UTF-8 instead of the locale encoding if the encoding is not specified. It now
 -  also opens XML files for the parser in binary mode instead of the text mode to
 -  avoid encoding issues.
 -
 -- Issue #12451: doctest.debug_script() doesn't create a temporary file anymore
 -  to avoid encoding issues.
 -
 -- Issue #12451: pydoc.synopsis() now reads the encoding cookie if available, to
 -  read the Python module from the right encoding.
 -
 -- Issue #12451: distutils now opens the setup script in binary mode to read the
 -  encoding cookie, instead of opening it in UTF-8.
 -
 -- 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 #12383: Fix subprocess module with env={}: don't copy the environment
 -  variables, start with an empty environment.
 -
 -- Issue #11584: email.header.decode_header no longer fails if the header passed
 -  to it is a Header object, and Header/make_header no longer fail if given
 -  binary unknown-8bit input.
 -
 -- Issue #11700: mailbox proxy object close methods can now be called multiple
 -  times without error.
 -
 -- Issue #11767: Correct file descriptor leak in mailbox's __getitem__ method.
 -
 -- 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 #12009: Fixed regression in netrc file comment handling.
 -
 -- Issue #10694: zipfile now ignores garbage at the end of a zipfile.
 -
 -- Issue #12283: Fixed regression in smtplib quoting of leading dots in DATA.
 -
 -- Issue #12168: SysLogHandler now allows NUL termination to be controlled using
 -  a new 'append_nul' attribute on the handler.
 -
 -- Issue #11583: Speed up os.path.isdir on Windows by using GetFileAttributes
 -  instead of os.stat.
 -
 -- Named tuples now work correctly with vars().
 -
 -- 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.
 -
 -- Issue #985064: Make plistlib more resilient to faulty input plists.  Patch by
 -  Mher Movsisyan.
 -
 -- 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 #12070: Fix the Makefile parser of the sysconfig module to handle
 -  correctly references to "bogus variable" (e.g. "prefix=$/opt/python").
 -
 -- 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 #5715: In socketserver, close the server socket in the child process.
 -
 -- Correct lookup of __dir__ on objects. Among other things, this causes errors
 -  besides AttributeError found on lookup to be propagated.
 -
 -- Issue #12124: zipimport doesn't keep a reference to zlib.decompress() anymore
 -  to be able to unload the module.
 -
 -- Issue #12065: connect_ex() on an SSL socket now returns the original errno
 -  when the socket's timeout expires (it used to return None).
 -
 -Extension Modules
 ------------------
 -
 -- Issue #12404: Remove C89 incompatible code from mmap module. Patch by Akira
 -  Kitada.
 -
 -- Issue #12221: Replace pyexpat.__version__ with the Python version.
 -
 -Build
 ------
 -
 -- 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).
 -
 -- 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.
 -
 -
 -Tests
 ------
 -
 -- Issue #12407: Explicitly skip test_capi.EmbeddingTest under Windows.
 -
 -- Issue #12400: regrtest -W doesn't rerun the tests twice anymore, but captures
 -  the output and displays it on failure instead. regrtest -v doesn't print the
 -  error twice anymore if there is only one error.
 -
 -- 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).
 -
 -
 -What's New in Python 3.2.1 release candidate 1?
 -===============================================
 -
 -*Release date: 15-May-2011*
 -
 -Core and Builtins
 ------------------
 -
 -- Issue #12060: Use sig_atomic_t type and volatile keyword in the signal
 -  module. Patch written by Charles-François Natali.
 -
 -- Issue #12044: Fixed subprocess.Popen when used as a context manager to
 -  wait for the process to end when exiting the context to avoid unintentionally
 -  leaving zombie processes around.
 -
 -- Issue #1195: Fix input() if it is interrupted by CTRL+d and then CTRL+c,
 -  clear the end-of-file indicator after CTRL+d.
 -
 -Library
 --------
 -
 -- Issue #11088: don't crash when using F5 to run a script in IDLE on MacOSX
 -  with Tk 8.5.
 -
 -- Issue #9516: Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET
 -  is set in shell.
 -
 -- Issue #12012: ssl.PROTOCOL_SSLv2 becomes optional.
 -
 -- Issue #8650: Make zlib module 64-bit clean. compress(), decompress() and
 -  their incremental counterparts now raise OverflowError if given an input
 -  larger than 4GB, instead of silently truncating the input and returning
 -  an incorrect result.
 -
 -- Issue #12050: zlib.decompressobj().decompress() now clears the unconsumed_tail
 -  attribute when called without a max_length argument.
 -
 -- Issue #12062: 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 #1028: Tk returns invalid Unicode null in %A: UnicodeDecodeError.
 -  With Tk < 8.5 _tkinter.c:PythonCmd() raised UnicodeDecodeError, caused
 -  IDLE to exit.  Converted to valid Unicode null in PythonCmd().
 -
 -- Issue #11169: compileall module uses repr() to format filenames and paths to
 -  escape surrogate characters and show spaces.
 -
 -- Issue #10419, #6011: build_scripts command of distutils handles correctly
 -  non-ASCII path (path to the Python executable). Open and write the script in
 -  binary mode, but ensure that the shebang is decodable from UTF-8 and from the
 -  encoding of the script.
 -
 -- 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 #11164: Stop trying to use _xmlplus in the xml module.
 -
 -Build
 ------
 -
 -- Issue #11347: Use --no-as-needed when linking libpython3.so.
 -
 -Tools/Demos
 ------------
 -
 -- Issue #11996: libpython (gdb), replace "py-bt" command by "py-bt-full" and
 -  add a smarter "py-bt" command printing a classic Python traceback.
 -
 -Tests
 ------
 -
 -- Issue #12096: Fix a race condition in test_threading.test_waitfor(). Patch
 -  written by Charles-François Natali.
 -
 -- Issue #11614: import __hello__ prints "Hello World!". Patch written by
 -  Andreas Stührk.
 -
 -- 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.
 -
 -
 -What's New in Python 3.2.1 beta 1?
 -==================================
 -
 -*Release date: 08-May-2011*
 -
 -Core and Builtins
 ------------------
 -
 -- Issue #1856: Avoid crashes and lockups when daemon threads run while the
 -  interpreter is shutting down; instead, these threads are now killed when they
 -  try to take the GIL.
 -
 -- 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 #10914: Initialize correctly the filesystem codec when creating a new
 -  subinterpreter to fix a bootstrap issue with codecs implemented in Python, as
 -  the ISO-8859-15 codec.
 -
 -- 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. "\U00012345"[0]).
 -
 -- Issue #11845: Fix typo in rangeobject.c that caused a crash in
 -  compute_slice_indices.  Patch by Daniel Urban.
 -
 -- 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 #11395: io.FileIO().write() clamps the data length to 32,767 bytes on
 -  Windows if the file is a TTY to workaround a Windows bug. The Windows console
 -  returns an error (12: not enough space error) on writing into stdout if stdout
 -  mode is binary and the length is greater than 66,000 bytes (or less, depending
 -  on heap usage).
 -
 -- Issue #11320: fix bogus memory management in Modules/getpath.c, leading to a
 -  possible crash when calling Py_SetPath().
 -
 -- Issue #11510: Fixed optimizer bug which turned "a,b={1,1}" into "a,b=(1,1)".
 -
 -- Issue #11432: A bug was introduced in subprocess.Popen on posix systems with
 -  3.2.0 where the stdout or stderr file descriptor being the same as the stdin
 -  file descriptor would raise an exception. webbrowser.open would fail. fixed.
 -
 -- 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 #11246: Fix PyUnicode_FromFormat("%V") to decode the byte string from
 -  UTF-8 (with replace error handler) instead of ISO-8859-1 (in strict mode).
 -  Patch written by Ray Allen.
 -
 -- Issue #11286: Raise a ValueError from calling PyMemoryView_FromBuffer with a
 -  buffer struct having a NULL data pointer.
 -
 -- Issue #11272: On Windows, input() strips '\r' (and not only '\n'), and
 -  sys.stdin uses universal newline (replace '\r\n' by '\n').
 -
 -- Issue #11828: startswith and endswith don't accept None as slice index.  Patch
 -  by Torsten Becker.
 -
 -- Issue #10830: Fix PyUnicode_FromFormatV("%c") for non-BMP characters on
 -  narrow build.
 -
 -- Check for NULL result in PyType_FromSpec.
 -
 -- Issue #11386: bytearray.pop() now throws IndexError when the bytearray is
 -  empty, instead of OverflowError.
 -
 -Library
 --------
 -
 -- Issue #11927: SMTP_SSL now uses port 465 by default as documented.  Patch by
 -  Kasun Herath.
 -
 -- Issue #12002: ftplib's abort() method raises TypeError.
 -
 -- 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.
 -
 -- ntpath.samefile failed to notice that "a.txt" and "A.TXT" refer to the same
 -  file on Windows XP. As noticed in issue #10684.
 -
 -- Issue #12000: When a SSL certificate has a subjectAltName without any dNSName
 -  entry, ssl.match_hostname() should use the subject's commonName.  Patch by
 -  Nicolas Bareil.
 -
 -- Issue #11647: objects created using contextlib.contextmanager now support more
 -  than one call to the function when used as a decorator. Initial patch by Ysj
 -  Ray.
 -
 -- logging: don't define QueueListener if Python has no thread support.
 -
 -- functools.cmp_to_key() now works with collections.Hashable().
 -
 -- 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 #11858: configparser.ExtendedInterpolation expected lower-case section
 -  names.
 -
 -- Issue #11324: ConfigParser(interpolation=None) now works correctly.
 -
 -- 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 #11492: fix several issues with header folding in the email package.
 -
 -- Issue #11852: Add missing imports and update tests.
 -
 -- Issue #11875: collections.OrderedDict's __reduce__ was temporarily
 -  mutating the object instead of just working on a copy.
 -
 -- 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 #11830: Remove unnecessary introspection code in the decimal module.
 -
 -- 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 #11814: Fix likely typo in multiprocessing.Pool._terminate().
 -
 -- Issue #11747: Fix range formatting in difflib.context_diff() and
 -  difflib.unified_diff().
 -
 -- 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 html.parser to accept non-ASCII attribute values.
 -
 -- Issue #11605: email.parser.BytesFeedParser was incorrectly converting
 -  multipart subparts with an 8-bit CTE into unicode instead of preserving the
 -  bytes.
 -
 -- Issue #10963: Ensure that subprocess.communicate() never raises EPIPE.
 -
 -- Issue #11746: Fix SSLContext.load_cert_chain() to accept elliptic curve
 -  private keys.
 -
 -- sys.getfilesystemencoding() raises a RuntimeError if initfsencoding() was not
 -  called yet: detect bootstrap (startup) issues earlier.
 -
 -- Issue #11618: Fix the timeout logic in threading.Lock.acquire() under Windows.
 -
 -- 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 #11659: Fix ResourceWarning in test_subprocess introduced by #11459.
 -  Patch by Ben Hayden.
 -
 -- Issue #11635: Don't use polling in worker threads and processes launched by
 -  concurrent.futures.
 -
 -- Issue #11628: cmp_to_key generated class should use __slots__
 -
 -- Issue #11666: let help() display named tuple attributes and methods
 -  that start with a leading underscore.
 -
 -- Issue #11662: Make urllib and urllib2 ignore redirections if the
 -  scheme is not HTTP, HTTPS or FTP (CVE-2011-1521).
 -
 -- Issue #5537: Fix time2isoz() and time2netscape() functions of
 -  httplib.cookiejar for expiration year greater than 2038 on 32-bit systems.
 -
 -- Issue #11563: Connection:close header is sent by requests using URLOpener
 -  class which helps in closing of sockets after connection is over. Patch
 -  contributions by Jeff McNeil and Nadeem Vawda.
 -
 -- Issue #11459: A ``bufsize`` value of 0 in subprocess.Popen() really creates
 -  unbuffered pipes, such that select() works properly on them.
 -
 -- Issue #5421: Fix misleading error message when one of socket.sendto()'s
 -  arguments has the wrong type.  Patch by Nikita Vetoshkin.
 -
 -- Issue #10979: unittest stdout buffering now works with class and module
 -  setup and teardown.
 -
 -- Issue #11577: fix ResourceWarning triggered by improved binhex test coverage
 -
 -- Issue #11243: fix the parameter querying methods of Message to work if
 -  the headers contain un-encoded non-ASCII data.
 -
 -- Issue #11401: fix handling of headers with no value; this fixes a regression
 -  relative to Python2 and the result is now the same as it was in Python2.
 -
 -- Issue #9298: base64 bodies weren't being folded to line lengths less than 78,
 -  which was a regression relative to Python2.  Unlike Python2, the last line of
 -  the folded body now ends with a carriage return.
 -
 -- Issue #11560: shutil.unpack_archive now correctly handles the format
 -  parameter. Patch by Evan Dandrea.
 -
 -- Issue #11133: fix two cases where inspect.getattr_static can trigger code
 -  execution. Patch by Andreas Stührk.
 -
 -- 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 #11501: disutils.archive_utils.make_zipfile no longer fails if zlib is
 -  not installed. Instead, the zipfile.ZIP_STORED compression is used to create
 -  the ZipFile. Patch by Natalia B. Bidart.
 -
 -- Issue #11554: Fixed support for Japanese codecs; previously the body output
 -  encoding was not done if euc-jp or shift-jis was specified as the charset.
 -
 -- Issue #11500: Fixed a bug in the os x proxy bypass code for fully qualified IP
 -  addresses in the proxy exception list.
 -
 -- Issue #11491: dbm.error is no longer raised when dbm.open is called with the
 -  "n" as the flag argument and the file exists. The behavior matches the
 -  documentation and general logic.
 -
 -- Issue #11131: Fix sign of zero in decimal.Decimal plus and minus operations
 -  when the 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 #7322: Trying to read from a socket's file-like object after a timeout
 -  occurred now raises an error instead of silently losing data.
 -
 -- Issue #10956: Buffered I/O classes retry reading or writing after a signal
 -  has arrived and the handler returned successfully.
 -
 -- Issue #11224: Fixed a regression in tarfile that affected the file-like
 -  objects returned by TarFile.extractfile() regarding performance, memory
 -  consumption and failures with the stream interface.
 -
 -- Issue #11074: Make 'tokenize' so it can be reloaded.
 -
 -- 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 #11089: Fix performance issue limiting the use of ConfigParser()
 -  with large config files.
 -
 -- Issue #10276: Fix the results of zlib.crc32() and zlib.adler32() on buffers
 -  larger than 4GB.  Patch by Nadeem Vawda.
 -
 -- 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.
 -
 -Build
 ------
 -
 -- Issue #11411: Fix 'make DESTDIR=' with a relative destination.
 -
 -- Issue #11268: Prevent Mac OS X Installer failure if Documentation package had
 -  previously been installed.
 -
 -IDLE
 -----
 -
 -- Issue #11718: IDLE's open module dialog couldn't find the __init__.py file in
 -  a package.
 -
 -Tools/Demos
 ------------
 -
 -- Issue #11179: Make ccbench work under Python 3.1 and 2.7 again.
 -
 -Extension Modules
 ------------------
 -
 -- 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.
 -
 -Tests
 ------
 -
 -- Issue #11873: Change regex in test_compileall to fix occasional failures when
 -  when the randomly generated temporary path happened to match the regex.
 -
 -- Issue #10914: Add a minimal embedding test to test_capi.
 -
 -- Issue #11790: Fix sporadic failures in
 -  test_multiprocessing.WithProcessesTestCondition.
 -
 -- Fix possible "file already exists" error when running the tests in parallel.
 -
 -- Issue #11719: Fix message about unexpected test_msilib skip on non-Windows
 -  platforms. Patch by Nadeem Vawda.
 -
 -- Issue #11653: fix -W with -j in regrtest.
 -
 -- Issue #11577: improve test coverage of binhex.py. Patch by Arkady Koplyarov.
 -
 -- Issue #11578: added test for the timeit module.  Patch by Michael Henry.
 -
 -- Issue #11503: improve test coverage of posixpath.py. Patch by Evan Dandrea.
 -
 -- Issue #11505: improves test coverage of string.py. Patch by Alicia
 -  Arlen.
 -
 -- Issue #11548: Improve test coverage of the shutil module. Patch by
 -  Evan Dandrea.
 -
 -- Issue #11554: Reactivated test_email_codecs.
 -
 -- 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 #11223: Fix test_threadsignals to fail, not hang, when the
 -  non-semaphore implementation of locks is used under POSIX.
 -
 -- Issue #10911: Add tests on CGI with non-ASCII characters. Patch written by
 -  Pierre Quentel.
 -
 -- Issue #9931: Fix hangs in GUI tests under Windows in certain conditions.
 -  Patch by Hirokazu Yamamoto.
 -
 -- Issue #10826: Prevent sporadic failure in test_subprocess on Solaris due
 -  to open door files.
 -
 -Documentation
 --------------
 -
 -- Issue #11818: Fix tempfile examples for Python 3.
 -
 -
 -What's New in Python 3.2?
 -=========================
 -
 -*Release date: 20-Feb-2011*
 -
 -Core and Builtins
 ------------------
 -
 -- Issue #11249: Fix potential crashes when using the limited API.
 -
 -Build
 ------
 -
 -- Issue #11222: Fix non-framework shared library build on Mac OS X.
 -
 -- Issue #11184: Fix large-file support on AIX.
 -
 -- Issue #941346: Fix broken shared library build on AIX.
 -
 -Documentation
 --------------
 -
 -- Issue #10709: Add updated AIX notes in Misc/README.AIX.
 -
 -
 -What's New in Python 3.2 Release Candidate 3?
 -=============================================
 -
 -*Release date: 13-Feb-2011*
 -
 -Core and Builtins
 ------------------
 -
 -- Issue #11134: Add missing fields to typeslots.h.
 -
 -- Issue #11135: Remove redundant doc field from PyType_Spec.
 -
 -- Issue #11067: Add PyType_GetFlags, to support PyUnicode_Check in the limited
 -  ABI.
 -
 -- Issue #11118: Fix bogus export of None in python3.dll.
 -
 -Library
 --------
 -
 -- Issue #11116: any error during addition of a message to a mailbox now causes a
 -  rollback, instead of leaving the mailbox partially modified.
 -
 -- Issue #11132: Fix passing of "optimize" parameter when recursing in
 -  compileall.compile_dir().
 -
 -- Issue #11110: Fix a potential decref of a NULL in sqlite3.
 -
 -- Issue #8275: Fix passing of callback arguments with ctypes under Win64.  Patch
 -  by Stan Mihai.
 -
 -Build
 ------
 -
 -- Issue #11079: The /Applications/Python x.x folder created by the Mac OS X
 -  installers now includes a link to the installed documentation and no longer
 -  includes an Extras directory.  The Tools directory is now installed in the
 -  framework under share/doc.
 -
 -- Issue #11121: Fix building with --enable-shared.
 -
 -Tests
 ------
 -
 -- Issue #10971: test_zipimport_support is once again compatible with the refleak
 -  hunter feature of test.regrtest.
 -
 -
 -What's New in Python 3.2 Release Candidate 2?
 -=============================================
 -
 -*Release date: 30-Jan-2011*
 -
 -Core and Builtins
 ------------------
 -
 -- Issue #10451: memoryview objects could allow to mutate a readable buffer.
 -  Initial patch by Ross Lagerwall.
 -
 -Library
 --------
 -
 -- Issue #9124: mailbox now accepts binary input and reads and writes mailbox
 -  files in binary mode, using the email package's binary support to parse
 -  arbitrary email messages.  StringIO and text file input is deprecated,
 -  and string input fails early if non-ASCII characters are used, where
 -  previously it would fail when the email was processed in a later step.
 -
 -- Issue #10845: Mitigate the incompatibility between the multiprocessing
 -  module on Windows and the use of package, zipfile or directory execution
 -  by special casing main modules that actually *are* called __main__.py.
 -
 -- Issue #11045: Protect logging call against None argument.
 -
 -- Issue #11052: Correct IDLE menu accelerators on Mac OS X for Save
 -  commands.
 -
 -- Issue #11053: Fix IDLE "Syntax Error" windows to behave as in 2.x,
 -  preventing a confusing hung appearance on OS X with the windows
 -  obscured.
 -
 -- 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 #10989: Fix a crash on SSLContext.load_verify_locations(None, True).
 -
 -- Issue #11020: Command-line pyclbr was broken because of missing 2-to-3
 -  conversion.
 -
 -- Issue #11019: Fixed BytesGenerator so that it correctly handles a Message
 -  with a None body.
 -
 -- Issue #11014: Make 'filter' argument in tarfile.Tarfile.add() into a
 -  keyword-only argument.  The preceding positional argument was deprecated,
 -  so it made no sense to add filter as a positional argument.
 -
 -- Issue #11004: Repaired edge case in deque.count().
 -
 -- Issue #10974: IDLE no longer crashes if its recent files list includes files
 -  with non-ASCII characters in their path names.
 -
 -- Have hashlib.algorithms_available and hashlib.algorithms_guaranteed both
 -  return sets instead of one returning a tuple and the other a frozenset.
 -
 -- Issue #10987: Fix the recursion limit handling in the _pickle module.
 -
 -- Issue #10983: Fix several bugs making tunnel requests in http.client.
 -
 -- Issue #10955: zipimport uses ASCII encoding instead of cp437 to decode
 -  filenames, at bootstrap, if the codec registry is not ready yet. It is still
 -  possible to have non-ASCII filenames using the Unicode flag (UTF-8 encoding)
 -  for all file entries in the ZIP file.
 -
 -- 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 #10980: the HTTP server now encodes headers with iso-8859-1 (latin1)
 -  encoding.  This is the preferred encoding of PEP 3333 and the base encoding
 -  of HTTP 1.1.
 -
 -- To match the behaviour of HTTP server, the HTTP client library now also
 -  encodes headers with iso-8859-1 (latin1) encoding.  It was already doing
 -  that for incoming headers which makes this behaviour now consistent in
 -  both incoming and outgoing direction.
 -
 -- Issue #9509: argparse now properly handles IOErrors raised by
 -  argparse.FileType.
 -
 -- Issue #10961: The new pydoc server now better handles exceptions raised
 -  during request handling.
 -
 -- Issue #10680: Fix mutually exclusive arguments for argument groups in
 -  argparse.
 -
 -Build
 ------
 -
 -- Issue #11054: Allow Mac OS X installer builds to again work on 10.5 with
 -  the system-provided Python.
 -
 -
 -What's New in Python 3.2 Release Candidate 1
 -============================================
 -
 -*Release date: 16-Jan-2011*
 -
 -Core and Builtins
 ------------------
 -
 -- Issue #10889: range indexing and slicing now works correctly on ranges with
 -  a length that exceeds sys.maxsize.
 -
 -- 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 #10841: On Windows, set the binary mode on stdin, stdout, stderr and all
 -  io.FileIO objects (to not translate newlines, \r\n <=> \n).  The Python parser
 -  translates newlines (\r\n => \n).
 -
 -- Remove buffer API from stable ABI for now, see #10181.
 -
 -- 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 #9015, #9611: FileIO.readinto(), FileIO.write(), os.write() and
 -  stdprinter.write() clamp the length to INT_MAX on Windows.
 -
 -- Issue #8278: On Windows and with a NTFS filesystem, os.stat() and os.utime()
 -  can now handle dates after 2038.
 -
 -- Issue #10780: PyErr_SetFromWindowsErrWithFilename() and
 -  PyErr_SetExcFromWindowsErrWithFilename() decode the filename from the
 -  filesystem encoding instead of UTF-8.
 -
 -- Issue #10779: PyErr_WarnExplicit() decodes the filename from the filesystem
 -  encoding instead of UTF-8.
 -
 -- Add sys.flags attribute for the new -q command-line option.
 -
 -- Issue #11506: Trying to assign to a bytes literal should result in a
 -  SyntaxError.
 -
 -Library
 --------
 -
 -- 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 #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 #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 #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 #4953: cgi.FieldStorage and cgi.parse() parse the request as bytes, not
 -  as unicode, and accept binary files. Add encoding and errors attributes to
 -  cgi.FieldStorage. Patch written by Pierre Quentel (with many inputs by Glenn
 -  Linderman).
 -
 -- Add encoding and errors arguments to urllib.parse_qs() and urllib.parse_qsl().
 -
 -- Issue #10899: No function type annotations in the standard library.  Removed
 -  function type annotations from _pyio.py.
 -
 -- Issue #10875: Update Regular Expression HOWTO; patch by 'SilentGhost'.
 -
 -- Issue #10872: The repr() of TextIOWrapper objects now includes the mode
 -  if available.
 -
 -- Issue #10869: Fixed bug where ast.increment_lineno modified the root node
 -  twice.
 -
 -- Issue #5871: email.header.Header.encode now raises an error if any
 -  continuation line in the formatted value has no leading white space and looks
 -  like a header.  Since Generator uses Header to format all headers, this check
 -  is made for all headers in any serialized message at serialization time.  This
 -  provides protection against header injection attacks.
 -
 -- Issue #10859: Make ``contextlib.GeneratorContextManager`` officially
 -  private by renaming it to ``_GeneratorContextManager``.
 -
 -- Issue #10042: Fixed the total_ordering decorator to handle cross-type
 -  comparisons that could lead to infinite recursion.
 -
 -- Issue #10686: the email package now :rfc:`2047`\ -encodes headers with
 -  non-ASCII bytes (parsed by a BytesParser) when doing conversion to 7bit-clean
 -  presentation, instead of replacing them with ?s.
 -
 -- email.header.Header was incorrectly encoding folding whitespace when
 -  rfc2047-encoding header values with embedded newlines, leaving them without
 -  folding whitespace.  It now uses the continuation_ws, as it does for
 -  continuation lines that it creates itself.
 -
 -- Issue #1777412, #10827: Changed the rules for 2-digit years. The
 -  time.asctime(), time.ctime() and time.strftime() functions will now format
 -  any year when ``time.accept2dyear`` is False and will accept years >= 1000
 -  otherwise. ``time.mktime`` and ``time.strftime`` now accept full range
 -  supported by the OS. With Visual Studio or on Solaris, the year is limited to
 -  the range [1; 9999]. Conversion of 2-digit years to 4-digit is deprecated.
 -
 -- 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 #10492: bdb.Bdb.run() only traces the execution of the code, not the
 -  compilation (if the input is a string).
 -
 -- Issue #7995: When calling accept() on a socket with a timeout, the returned
 -  socket is now always blocking, regardless of the operating system.
 -
 -- Issue #10756: atexit normalizes the exception before displaying it. Patch by
 -  Andreas Stührk.
 -
 -- Issue #10790: email.header.Header.append's charset logic now works correctly
 -  for charsets whose output codec is different from its input codec.
 -
 -- Issue #10819: SocketIO.name property returns -1 when its closed, instead of
 -  raising a ValueError, to fix repr().
 -
 -- Issue #8650: zlib.compress() and zlib.decompress() raise an OverflowError if
 -  the input buffer length doesn't fit into an unsigned int (length bigger than
 -  2^32-1 bytes).
 -
 -- Issue #6643: Reinitialize locks held within the threading module after fork to
 -  avoid a potential rare deadlock or crash on some platforms.
 -
 -- 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.
 -
 -- `unittest.TestCase` can be instantiated without a method name; for simpler
 -  exploration from the interactive interpreter.
 -
 -- Issue #10798: Reject supporting concurrent.futures if the system has too
 -  few POSIX semaphores.
 -
 -- Issue #10807: Remove base64, bz2, hex, quopri, rot13, uu and zlib codecs from
 -  the codec aliases. They are still accessible via codecs.lookup().
 -
 -- Issue #10801: In zipfile, support different encodings for the header and the
 -  filenames.
 -
 -- Issue #6285: IDLE no longer crashes on missing help file; patch by Scott
 -  David Daniels.
 -
 -- Fix collections.OrderedDict.setdefault() so that it works in subclasses that
 -  define __missing__().
 -
 -- Issue #10786: unittest.TextTestRunner default stream no longer bound at import
 -  time. `sys.stderr` now looked up at instantiation time.  Fix contributed by
 -  Mark Roddy.
 -
 -- 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 #9333: os.symlink now available regardless of user privileges.  The
 -  function now raises OSError on Windows >=6.0 when the user is unable to create
 -  symbolic links. XP and 2003 still raise NotImplementedError.
 -
 -- Issue #10783: struct.pack() no longer implicitly encodes unicode to UTF-8.
 -
 -- Issue #10730: Add SVG mime types to mimetypes module.
 -
 -- Issue #10768: Make the Tkinter ScrolledText widget work again.
 -
 -- Issue #10777: Fix "dictionary changed size during iteration" bug in
 -  ElementTree register_namespace().
 -
 -- Issue #10626: test_logging now preserves logger disabled states.
 -
 -- Issue #10774: test_logging now removes temp files created during tests.
 -
 -- 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 #10763: subprocess.communicate() closes stdout and stderr if both are
 -  pipes (bug specific to Windows).
 -
 -- Issue #1693546: fix email.message RFC 2231 parameter encoding to be in better
 -  compliance (no "s around encoded values).
 -
 -- Improved the diff message in the unittest module's assertCountEqual().
 -
 -- Issue #1155362: email.utils.parsedate_tz now handles a missing space before
 -  the '-' of a timezone field as well as before a '+'.
 -
 -- Issue #4871: The zipfile module now gives a more useful error message if
 -  an attempt is made to use a string to specify the archive password.
 -
 -- Issue #10750: The ``raw`` attribute of buffered IO objects is now read-only.
 -
 -- Deprecated assertDictContainsSubset() in the unittest module.
 -
 -C-API
 ------
 -
 -- Issue #10913: Deprecate misleading functions PyEval_AcquireLock() and
 -  PyEval_ReleaseLock().  The thread-state aware APIs should be used instead.
 -
 -- Issue #10333: Remove ancient GC API, which has been deprecated since Python
 -  2.2.
 -
 -Build
 ------
 -
 -- 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).
 -
 -- Issue #10820: Fix OS X framework installs to support version-specific
 -  scripts (#10679).
 -
 -- 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 #10679: The "idle", "pydoc" and "2to3" scripts are now installed with
 -  a version-specific suffix on "make altinstall".
 -
 -- 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.
 -
 -Tools/Demos
 ------------
 -
 -- Issue #10843: Install the Tools directory on OS X in the applications Extras
 -  (/Applications/Python 3.n/Extras/) where the Demo directory had previous been
 -  installed.
 -
 -- Issue #7962: The Demo directory is gone.  Most of the old and unmaintained
 -  demos have been removed, others integrated in documentation or a new
 -  Tools/demo subdirectory.
 -
 -- Issue #10502: Addition of the unittestgui tool. Originally by Steve Purcell.
 -  Updated for test discovery by Mark Roddy and Python 3 compatibility by Brian
 -  Curtin.
 -
 -Tests
 ------
 -
 -- Fix test_startfile to wait for child process to terminate before finishing.
 -
 -- Issue #10822: Fix test_posix:test_getgroups failure under Solaris.  Patch
 -  by Ross Lagerwall.
 -
 -- Make the --coverage flag work for test.regrtest.
 -
 -- Issue #1677694: Refactor and improve test_timeout.  Original patch by
 -  Björn Lindqvist.
 -
 -- Issue #5485: Add tests for the UseForeignDTD method of expat parser objects.
 -  Patch by Jean-Paul Calderone and Sandro Tosi.
 -
 -- 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.
 -
 -
 -What's New in Python 3.2 Beta 2?
 -================================
 -
 -*Release date: 19-Dec-2010*
 -
 -Core and Builtins
 ------------------
 -
 -- Issue #8844: Regular and recursive lock acquisitions can now be interrupted
 -  by signals on platforms using pthreads.  Patch by Reid Kleckner.
 -
 -- Issue #4236: PyModule_Create2 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 #5587: add a repr to dict_proxy objects.  Patch by David Stanek and
 -  Daniel Urban.
 -
 -Library
 --------
 -
 -- Issue #3243:  Support iterable bodies in httplib. Patch Contributions by
 -  Xuanji Li and Chris AtLee.
 -
 -- Issue #10611: SystemExit exception will no longer kill a unittest run.
 -
 -- Issue #9857: It is now possible to skip a test in a setUp, tearDown or clean
 -  up function.
 -
 -- Issue #10573: use actual/expected consistently in unittest methods.
 -  The order of the args of assertCountEqual is also changed.
 -
 -- Issue #9286: email.utils.parseaddr no longer concatenates blank-separated
 -  words in the local part of email addresses, thereby preserving the input.
 -
 -- Issue #6791: Limit header line length (to 65535 bytes) in http.client
 -  and http.server, to avoid denial of services from the other party.
 -
 -- Issue #10404: Use ctl-button-1 on OSX for the context menu in Idle.
 -
 -- 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 #10711: Remove HTTP 0.9 support from http.client.  The ``strict``
 -  parameter to HTTPConnection and friends is deprecated.
 -
 -- 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 #10667: Fast path for collections.Counter().
 -
 -- Issue #10695: passing the port as a string value to telnetlib no longer
 -  causes debug mode to fail.
 -
 -- Issue #1078919: add_header now automatically RFC2231 encodes parameters
 -  that contain non-ascii values.
 -
 -- Issue #10188 (partial resolution): tempfile.TemporaryDirectory emits
 -  a warning on sys.stderr rather than throwing a misleading exception
 -  if cleanup fails due to nulling out of modules during shutdown.
 -  Also avoids an AttributeError when mkdtemp call fails and issues
 -  a ResourceWarning on implicit cleanup via __del__.
 -
 -- Issue #10107: Warn about unsaved files in IDLE on OSX.
 -
 -- Issue #7213: subprocess.Popen's default for close_fds has been changed.
 -  It is now True in most cases other than on Windows when input, output or
 -  error handles are provided.
 -
 -- Issue #6559: subprocess.Popen has a new pass_fds parameter (actually
 -  added in 3.2beta1) to allow specifying a specific list of file descriptors
 -  to keep open in the child process.
 -
 -- 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.
 -
 -Tests
 ------
 -
 -- Issue #775964: test_grp now skips YP/NIS entries instead of failing when
 -  encountering them.
 -
 -Tools/Demos
 ------------
 -
 -- Issue #6075: IDLE on Mac OS X now works with both Carbon AquaTk and
 -  Cocoa AquaTk.
 -
 -- Issue #10710: ``Misc/setuid-prog.c`` is removed from the source tree.
 -
 -- Issue #10706: Remove outdated script runtests.sh.  Either ``make test``
 -  or ``python -m test`` should be used instead.
 -
 -Build
 ------
 -
 -- The Windows build now uses Tcl/Tk 8.5.9 and sqlite3 3.7.4.
 -
 -- Issue #9234: argparse supports alias names for subparsers.
 -
 -
 -What's New in Python 3.2 Beta 1?
 -================================
 -
 -*Release date: 05-Dec-2010*
 -
 -Core and Builtins
 ------------------
 -
 -- Issue #10630: Return dict views from the dict proxy keys()/values()/items()
 -  methods.
 -
 -- 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 #1772833: Add the -q command-line option to suppress copyright and
 -  version output in interactive mode.
 -
 -- Provide an *optimize* parameter in the built-in compile() function.
 -
 -- Fixed several corner case issues on Windows in os.stat/os.lstat related to
 -  reparse points.
 -
 -- PEP 384 (Defining a Stable ABI) is implemented.
 -
 -- Issue #2690: Range objects support negative indices and slicing.
 -
 -- Issue #9915: Speed up sorting with a key.
 -
 -- Issue #8685: Speed up set difference ``a - b`` when source set ``a`` is much
 -  larger than operand ``b``.  Patch by Andrew Bennetts.
 -
 -- Issue #10518: Bring back the callable() builtin.
 -
 -- Issue #7094: Added alternate formatting (specified by '#') to ``__format__``
 -  method of float, complex, and Decimal. This allows more precise control over
 -  when decimal points are displayed.
 -
 -- Issue #10474: range.count() should return integers.
 -
 -- Issue #1574217: isinstance now catches only AttributeError, rather than
 -  masking all errors.
 -
 -Library
 --------
 -
 -- logging: added "handler of last resort". See http://bit.ly/last-resort-handler
 -
 -- test.support: Added TestHandler and Matcher classes for better support of
 -  assertions about logging.
 -
 -- Issue #4391: Use proper plural forms in argparse.
 -
 -- Issue #10601: sys.displayhook uses 'backslashreplace' error handler on
 -  UnicodeEncodeError.
 -
 -- Add the "display" and "undisplay" pdb commands.
 -
 -- Issue #7245: Add a SIGINT handler in pdb that allows to break a program again
 -  after a "continue" command.
 -
 -- Add the "interact" pdb command.
 -
 -- Issue #7905: Actually respect the keyencoding parameter to shelve.Shelf.
 -
 -- Issue #1569291: Speed up array.repeat().
 -
 -- Provide an interface to set the optimization level of compilation in
 -  py_compile, compileall and zipfile.PyZipFile.
 -
 -- Issue #7904: Changes to urllib.parse.urlsplit to handle schemes as defined by
 -  RFC3986. Anything before :// is considered a scheme and is followed by an
 -  authority (or netloc) and by '/' led path, which is optional.
 -
 -- Issue #6045: dbm.gnu databases now support get() and setdefault() methods.
 -
 -- Issue #10620: `python -m unittest` can accept file paths instead of module
 -  names for running specific tests.
 -
 -- Issue #9424: Deprecate the `unittest.TestCase` methods `assertEquals`,
 -  `assertNotEquals`, `assertAlmostEquals`, `assertNotAlmostEquals` and `assert_`
 -  and replace them with the correct methods in the Python test suite.
 -
 -- Issue #10272: The ssl module now raises socket.timeout instead of a generic
 -  SSLError on socket timeouts.
 -
 -- Issue #10528: Allow translators to reorder placeholders in localizable
 -  messages from argparse.
 -
 -- Issue #10497: Fix incorrect use of gettext in argparse.
 -
 -- 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.
 -
 -- logging: Added getLogRecordFactory/setLogRecordFactory with docs and tests.
 -
 -- Issue #10549: Fix pydoc traceback when text-documenting certain classes.
 -
 -- Issue #2001: New HTML server with enhanced Web page features.  Patch by Ron
 -  Adam.
 -
 -- Issue #10360: In WeakSet, do not raise TypeErrors when testing for membership
 -  of non-weakrefable objects.
 -
 -- Issue #940286: pydoc.Helper.help() ignores input/output init parameters.
 -
 -- Issue #1745035: Add a command size and data size limit to smtpd.py, to prevent
 -  DoS attacks.  Patch by Savio Sena.
 -
 -- Issue #4925: Add filename to error message when executable can't be found in
 -  subprocess.
 -
 -- Issue #10391: Don't dereference invalid memory in error messages in the ast
 -  module.
 -
 -- Issue #10027: st_nlink was not being set on Windows calls to os.stat or
 -  os.lstat. Patch by Hirokazu Yamamoto.
 -
 -- Issue #9333: Expose os.symlink only when the SeCreateSymbolicLinkPrivilege is
 -  held by the user's account, i.e., when the function can actually be used.
 -
 -- Issue #8879: Add os.link support for Windows.
 -
 -- Issue #7911: ``unittest.TestCase.longMessage`` defaults to True for improved
 -  failure messages by default. Patch by Mark Roddy.
 -
 -- Issue #1486713: HTMLParser now has an optional tolerant mode where it tries to
 -  guess at the correct parsing of invalid html.
 -
 -- Issue #10554: Add context manager support to subprocess.Popen objects.
 -
 -- Issue #8989: email.utils.make_msgid now has a domain parameter that can
 -  override the domain name used in the generated msgid.
 -
 -- Issue #9299: Add exist_ok parameter to os.makedirs to suppress the 'File
 -  exists' exception when a target directory already exists with the specified
 -  mode. Patch by Ray Allen.
 -
 -- Issue #9573: os.fork() now works correctly when triggered as a side effect of
 -  a module import.
 -
 -- Issue #10464: netrc now correctly handles lines with embedded '#' characters.
 -
 -- Added itertools.accumulate().
 -
 -- Issue #4113: Added custom ``__repr__`` method to ``functools.partial``.
 -  Original patch by Daniel Urban.
 -
 -- Issue #10273: Rename `assertRegexpMatches` and `assertRaisesRegexp` to
 -  `assertRegex` and `assertRaisesRegex`.
 -
 -- Issue #10535: Enable silenced warnings in unittest by default.
 -
 -- Issue #9873: The URL parsing functions in urllib.parse now accept ASCII byte
 -  sequences as input in addition to character strings.
 -
 -- Issue #10586: The statistics API for the new functools.lru_cache has been
 -  changed to a single cache_info() method returning a named tuple.
 -
 -- 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 #10242: Fixed implementation of unittest.ItemsEqual and gave it a new
 -  more informative name, unittest.CountEqual.
 -
 -- Issue #10561: In pdb, clear the breakpoints by the breakpoint number.
 -
 -- 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 #10534: in difflib, expose bjunk and bpopular sets; deprecate
 -  undocumented and now redundant isbjunk and isbpopular methods.
 -
 -- Issue #9846: zipfile is now correctly closing underlying file objects.
 -
 -- Issue #10459: Update CJK character names to Unicode 6.0.
 -
 -- Issue #4493: urllib.request adds '/' in front of path components which does not
 -  start with '/. Common behavior exhibited by browsers and other clients.
 -
 -- Issue #6378: idle.bat now runs with the appropriate Python version rather than
 -  the system default. Patch by Sridhar Ratnakumar.
 -
 -- Issue #10470: 'python -m unittest' will now run test discovery by default,
 -  when no extra arguments have been provided.
 -
 -- Issue #3709: BaseHTTPRequestHandler will buffer the headers and write to
 -  output stream only when end_headers is invoked. This is a speedup and an
 -  internal optimization.  Patch by endian.
 -
 -- Issue #10220: Added inspect.getgeneratorstate. Initial patch by Rodolpho
 -  Eckhardt.
 -
 -- Issue #10453: compileall now uses argparse instead of getopt, and thus
 -  provides clean output when called with '-h'.
 -
 -- Issue #8078: Add constants for higher baud rates in the termios module.  Patch
 -  by Rodolpho Eckhardt.
 -
 -- Issue #10407: Fix two NameErrors in distutils.
 -
 -- Issue #10371: Deprecated undocumented functions in the trace module.
 -
 -- Issue #10467: Fix BytesIO.readinto() after seeking into a position after the
 -  end of the file.
 -
 -- configparser: 100% test coverage.
 -
 -- Issue #10499: configparser supports pluggable interpolation handlers. The
 -  default classic interpolation handler is called BasicInterpolation. Another
 -  interpolation handler added (ExtendedInterpolation) which supports the syntax
 -  used by zc.buildout (e.g. interpolation between sections).
 -
 -- configparser: the SafeConfigParser class has been renamed to ConfigParser.
 -  The legacy ConfigParser class has been removed but its interpolation mechanism
 -  is still available as LegacyInterpolation.
 -
 -- configparser: Usage of RawConfigParser is now discouraged for new projects
 -  in favor of ConfigParser(interpolation=None).
 -
 -- Issue #1682942: configparser supports alternative option/value delimiters.
 -
 -- Issue #5412: configparser supports mapping protocol access.
 -
 -- Issue #9411: configparser supports specifying encoding for read operations.
 -
 -- Issue #9421: configparser's getint(), getfloat() and getboolean() methods
 -  accept vars and default arguments just like get() does.
 -
 -- Issue #9452: configparser supports reading from strings and dictionaries
 -  (thanks to the mapping protocol API, the latter can be used to copy data
 -  between parsers).
 -
 -- configparser: accepted INI file structure is now customizable, including
 -  comment prefixes, name of the DEFAULT section, empty lines in multiline
 -  values, and indentation.
 -
 -- Issue #10326: unittest.TestCase instances can be pickled.
 -
 -- Issue #9926: Wrapped TestSuite subclass does not get __call__ executed.
 -
 -- Issue #9920: Skip tests for cmath.atan and cmath.atanh applied to complex
 -  zeros on systems where the log1p function fails to respect the sign of zero.
 -  This fixes a test failure on AIX.
 -
 -- Issue #9732: Addition of getattr_static to the inspect module.
 -
 -- Issue #10446: Module documentation generated by pydoc now links to a
 -  version-specific online reference manual.
 -
 -- Make the 'No module named' exception message from importlib consistent.
 -
 -- Issue #10443: Add the SSLContext.set_default_verify_paths() method.
 -
 -- Issue #10440: Support RUSAGE_THREAD as a constant in the resource module.
 -  Patch by Robert Collins.
 -
 -- Issue #10429: IMAP.starttls() stored the capabilities as bytes objects, rather
 -  than strings.
 -
 -C-API
 ------
 -
 -- Issue #10557: Added a new API function, PyUnicode_TransformDecimalToASCII(),
 -  which transforms non-ASCII decimal digits in a Unicode string to their ASCII
 -  equivalents.
 -
 -- Issue #9518: Extend the PyModuleDef_HEAD_INIT macro to explicitly
 -  zero-initialize all fields, fixing compiler warnings seen when building
 -  extension modules with gcc with "-Wmissing-field-initializers" (implied by
 -  "-W").
 -
 -- Issue #10255: Fix reference leak in Py_InitializeEx().  Patch by Neil
 -  Schemenauer.
 -
 -- structseq.h is now included in Python.h.
 -
 -- Loosen PyArg_ValidateKeywordArguments to allow dict subclasses.
 -
 -Tests
 ------
 -
 -- regrtest.py once again ensures the test directory is removed from sys.path
 -  when it is invoked directly as the __main__ module.
 -
 -- `python -m test` can be used to run the test suite as well as `python -m
 -  test.regrtest`.
 -
 -- Do not fail test_socket when the IP address of the local hostname cannot be
 -  looked up.
 -
 -- Issue #8886: Use context managers throughout test_zipfile. Patch by Eric
 -  Carstensen.
 +- Issue #16698: Skip posix test_getgroups when built with OS X
 +  deployment target prior to 10.6.
  
  Build
  -----