- Issue #18603: Ensure that PyOS_mystricmp and PyOS_mystrnicmp are in the
Python executable and not removed by the linker's optimizer.
-- Issue #19279: UTF-7 decoder no more produces illegal strings.
+- Issue #19306: Add extra hints to the faulthandler module's stack
+ dumps that these are "upside down".
-- Fix macro expansion of _PyErr_OCCURRED(), and make sure to use it in at
- least one place so as to avoid regressions.
+Library
+-------
-- Issue #19014: memoryview.cast() is now allowed on zero-length views.
+- Issue #19352: Fix unittest discovery when a module can be reached
+ through several paths (e.g. under Debian/Ubuntu with virtualenv).
-- Issue #19098: Prevent overflow in the compiler when the recursion limit is set
- absurdly high.
+- Issue #15207: Fix mimetypes to read from correct part of Windows registry
+ Original patch by Dave Chambers
-- Issue #18942: sys._debugmallocstats() output was damaged on Windows.
+- Issue #16595: Add prlimit() to resource module.
-- Issue #18667: Add missing "HAVE_FCHOWNAT" symbol to posix._have_functions.
+- Issue #19324: Expose Linux-specific constants in resource module.
-- Issue #18368: PyOS_StdioReadline() no longer leaks memory when realloc()
- fails.
+- Issue #17400: ipaddress should make it easy to identify rfc6598 addresses.
-- Issue #16741: Fix an error reporting in int().
+- Load SSL's error strings in hashlib.
-- Issue #17899: Fix rare file descriptor leak in os.listdir().
+- Issue #18527: Upgrade internal copy of zlib to 1.2.8.
-- Issue #18552: Check return value of PyArena_AddPyObject() in
- obj2ast_object().
+- Issue #19274: Add a filterfunc parameter to PyZipFile.writepy.
-- Issue #18560: Fix potential NULL pointer dereference in sum().
+- Issue #8964: fix platform._sys_version to handle IronPython 2.6+.
+ Patch by Martin Matusiak.
-- Issue #15905: Fix theoretical buffer overflow in handling of sys.argv[0],
- prefix and exec_prefix if the operation system does not obey MAXPATHLEN.
+- Issue #18958: Improve error message for json.load(s) while passing a string
+ that starts with a UTF-8 BOM.
-- Issue #18344: Fix potential ref-leaks in _bufferedreader_read_all().
+- Issue #19307: Improve error message for json.load(s) while passing objects
+ of the wrong type.
-- Issue #17872: Fix a segfault in marshal.load() when input stream returns
- more bytes than requested.
+- Issue #16038: CVE-2013-1752: ftplib: Limit amount of data read by
+ limiting the call to readline(). Original patch by Michał
+ Jastrzębski and Giampaolo Rodola.
-- Issue #18426: Fix NULL pointer dereference in C extension import when
- PyModule_GetDef() returns an error.
+- Issue #17087: Improved the repr for regular expression match objects.
-- Issue #18328: Reorder ops in PyThreadState_Delete*() functions. Now the
- tstate is first removed from TLS and then deallocated.
++Build
++-----
+
-- Issue #18184: PyUnicode_FromFormat() and PyUnicode_FromFormatV() now raise
- OverflowError when an argument of %c format is out of range.
++- Issue #19356: Avoid using a C variabled named "_self", it's a reserved
++ word in some C compilers.
+
-- Issue #18137: Detect integer overflow on precision in float.__format__()
- and complex.__format__().
-- Issue #18183: Fix various unicode operations on strings with large unicode
- codepoints.
+What's New in Python 3.4.0 Alpha 4?
+===================================
-- Issue #18180: Fix ref leak in _PyImport_GetDynLoadWindows().
+Release date: 2013-10-20
-- Issue #18038: SyntaxError raised during compilation sources with illegal
- encoding now always contains an encoding name.
+Core and Builtins
+-----------------
-- Issue #17644: Fix a crash in str.format when curly braces are used in square
- brackets.
+- Issue #19301: Give classes and functions that are explicitly marked global a
+ global qualname.
-- Issue #17983: Raise a SyntaxError for a ``global __class__`` statement in a
- class body.
+- Issue #19279: UTF-7 decoder no longer produces illegal strings.
-- Issue #17927: Frame objects kept arguments alive if they had been copied into
- a cell, even if the cell was cleared.
+- Issue #16612: Add "Argument Clinic", a compile-time preprocessor for
+ C files to generate argument parsing code. (See PEP 436.)
-Library
--------
+- Issue #18810: Shift stat calls in importlib.machinery.FileFinder such that
+ the code is optimistic that if something exists in a directory named exactly
+ like the possible package being searched for that it's in actuality a
+ directory.
-- Issue #19352: Fix unittest discovery when a module can be reached
- through several paths (e.g. under Debian/Ubuntu with virtualenv).
+- Issue #18416: importlib.machinery.PathFinder now treats '' as the cwd and
+ importlib.machinery.FileFinder no longer special-cases '' to '.'. This leads
+ to modules imported from cwd to now possess an absolute file path for
+ __file__ (this does not affect modules specified by path on the CLI but it
+ does affect -m/runpy). It also allows FileFinder to be more consistent by not
+ having an edge case.
-- Issue #15207: Fix mimetypes to read from correct part of Windows registry
- Original patch by Dave Chambers
+- Issue #4555: All exported C symbols are now prefixed with either
+ "Py" or "_Py".
-- Issue #8964: fix platform._sys_version to handle IronPython 2.6+.
- Patch by Martin Matusiak.
+- Issue #19219: Speed up marshal.loads(), and make pyc files slightly
+ (5% to 10%) smaller.
-- Issue #16038: CVE-2013-1752: ftplib: Limit amount of data read by
- limiting the call to readline(). Original patch by Michał
- Jastrzębski and Giampaolo Rodola.
+- Issue #19221: Upgrade Unicode database to version 6.3.0.
+
+- Issue #16742: The result of the C callback PyOS_ReadlineFunctionPointer must
+ now be a string allocated by PyMem_RawMalloc() or PyMem_RawRealloc() (or NULL
+ if an error occurred), instead of a string allocated by PyMem_Malloc() or
+ PyMem_Realloc().
+
+- Issue #19199: Remove ``PyThreadState.tick_counter`` field
+
+- Fix macro expansion of _PyErr_OCCURRED(), and make sure to use it in at
+ least one place so as to avoid regressions.
+
+- Issue #19087: Improve bytearray allocation in order to allow cheap popping
+ of data at the front (slice deletion).
+
+- Issue #19014: memoryview.cast() is now allowed on zero-length views.
+
+- Issue #18690: memoryview is now automatically registered with
+ collections.abc.Sequence
+
+- Issue #19078: memoryview now correctly supports the reversed builtin
+ (Patch by Claudiu Popa)
+
+Library
+-------
- Issue #18235: Fix the sysconfig variables LDSHARED and BLDSHARED under AIX.
Patch by David Edelsohn.
- Issue #8112: xlmrpc.server's DocXMLRPCServer server no longer raises an error
if methods have annotations; it now correctly displays the annotations.
-- Issue #17998: Fix an internal error in regular expression engine.
+- Issue #18600: Added policy argument to email.message.Message.as_string,
+ and as_bytes and __bytes__ methods to Message.
-- Issue #17557: Fix os.getgroups() to work with the modified behavior of
- getgroups(2) on OS X 10.8. Original patch by Mateusz Lenik.
+- Issue #18671: Output more information when logging exceptions occur.
-- Issue #18599: Fix name attribute of _sha1.sha1() object. It now returns
- 'SHA1' instead of 'SHA'.
+- Issue #18621: Prevent the site module's patched builtins from keeping
+ too many references alive for too long.
-- Issue #18561: Skip name in ctypes' _build_callargs() if name is NULL.
+- Issue #4885: Add weakref support to mmap objects. Patch by Valerie Lambert.
-- Issue #18559: Fix NULL pointer dereference error in _pickle module
+- Issue #8860: Fixed rounding in timedelta constructor.
-- Issue #18556: Check the return value of a PyUnicode_AsWideChar() call in
- ctypes' U_set().
+- Issue #18849: Fixed a Windows-specific tempfile bug where collision with an
+ existing directory caused mkstemp and related APIs to fail instead of
+ retrying. Report and fix by Vlad Shcherbina.
-- Issue #18549: Eliminate dead code in socket_ntohl()
+- Issue #18920: argparse's default destination for the version action (-v,
+ --version) has also been changed to stdout, to match the Python executable.
-- Issue #18514: Fix unreachable Py_DECREF() call in PyCData_FromBaseObj()
+Tests
+-----
-- Issue #18513: Fix behaviour of cmath.rect w.r.t. signed zeros on OS X 10.8 +
- gcc.
+- Issue #18623: Factor out the _SuppressCoreFiles context manager into
+ test.support. Patch by Valerie Lambert.
-- Issue #18480: Add missing call to PyType_Ready to the _elementtree extension.
+- Issue #12037: Fix test_email for desktop Windows.
-- Issue #17778: Fix test discovery for test_multiprocessing. (Patch by
- Zachary Ware.)
+- Issue #15507: test_subprocess's test_send_signal could fail if the test
+ runner were run in an environment where the process inherited an ignore
+ setting for SIGINT. Restore the SIGINT handler to the desired
+ KeyboardInterrupt raising one during that test.
-- Issue #18431: The new email header parser now decodes RFC2047 encoded words
- in structured headers.
+- Issue #16799: Switched from getopt to argparse style in regrtest's argument
+ parsing. Added more tests for regrtest's argument parsing.
-- Issue #18432: The sched module's queue method was incorrectly returning
- an iterator instead of a list.
+- Issue #18792: Use "127.0.0.1" or "::1" instead of "localhost" as much as
+ possible, since "localhost" goes through a DNS lookup under recent Windows
+ versions.
-- Issue #18044: The new email header parser was mis-parsing encoded words where
- an encoded character immediately followed the '?' that follows the CTE
- character, resulting in a decoding failure. They are now decoded correctly.
+IDLE
+----
-- Issue #18101: Tcl.split() now process strings nested in a tuple as it
- do with byte strings.
+- Issue #18489: Add tests for SearchEngine. Original patch by Phil Webster.
-- Issue #17198: Fix a NameError in the dbm module. Patch by Valentina
- Mukhamedzhanova.
+Documentation
+-------------
-- Issue #18013: Fix cgi.FieldStorage to parse the W3C sample form.
+- Issue #18743: Fix references to non-existant "StringIO" module.
-- Issue #18347: ElementTree's html serializer now preserves the case of
- closing tags.
+- Issue #18783: Removed existing mentions of Python long type in docstrings,
+ error messages and comments.
-- Issue #17261: Ensure multiprocessing's proxies use proper address.
+Build
+-----
-- Issue #18343: faulthandler.register() now keeps the previous signal handler
- when the function is called twice, so faulthandler.unregister() restores
- correctly the original signal handler.
+- Issue #1584: Provide configure options to override default search paths for
+ Tcl and Tk when building _tkinter.
-- Issue #17097: Make multiprocessing ignore EINTR.
+- Issue #15663: Tcl/Tk 8.5.14 is now included with the OS X 10.6+ 64-/32-bit
+ installer. It is no longer necessary to install a third-party version of
+ Tcl/Tk 8.5 to work around the problems in the Apple-supplied Tcl/Tk 8.5
+ shipped in OS X 10.6 and later releases.
-- Issue #18339: Negative ints keys in unpickler.memo dict no longer cause a
- segfault inside the _pickle C extension.
+Tools/Demos
+-----------
-- Issue #18224: Removed pydoc script from created venv, as it causes problems
- on Windows and adds no value over and above python -m pydoc ...
+- Issue #18922: Now The Lib/smtpd.py and Tools/i18n/msgfmt.py scripts write
+ their version strings to stdout, and not to sderr.
-
-- Issue #18155: The csv module now correctly handles csv files that use
- a delimter character that has a special meaning in regexes, instead of
- throwing an exception.
+What's New in Python 3.4.0 Alpha 1?
+===================================
-- Issue #14360: encode_quopri can now be successfully used as an encoder
- when constructing a MIMEApplication object.
+Release date: 2013-08-03
-- Issue #18135: ssl.SSLSocket.write() now raises an OverflowError if the input
- string in longer than 2 gigabytes, and ssl.SSLContext.load_cert_chain()
- raises a ValueError if the password is longer than 2 gigabytes. The ssl
- module does not support partial write.
+Core and Builtins
+-----------------
-- Issue #18248: Fix libffi build on AIX.
+- Issue #16741: Fix an error reporting in int().
-- Issue #18259: Declare sethostname in socketmodule.c for AIX
+- Issue #17899: Fix rare file descriptor leak in os.listdir().
-- Issue #18167: cgi.FieldStorage no longer fails to handle multipart/form-data
- when \r\n appears at end of 65535 bytes without other newlines.
+- Issue #10241: Clear extension module dict copies at interpreter shutdown.
+ Patch by Neil Schemenauer, minimally modified.
-- subprocess: Prevent a possible double close of parent pipe fds when the
- subprocess exec runs into an error. Prevent a regular multi-close of the
- /dev/null fd when any of stdin, stdout and stderr was set to DEVNULL.
+- Issue #9035: ismount now recognises volumes mounted below a drive root
+ on Windows. Original patch by Atsuo Ishimoto.
-- Issue #16102: Make uuid._netbios_getnode() work again on Python 3.
+- Issue #18214: Improve finalization of Python modules to avoid setting
+ their globals to None, in most cases.
-- Issue #18109: os.uname() now decodes fields from the locale encoding, and
- socket.gethostname() now decodes the hostname from the locale encoding,
- instead of using the UTF-8 encoding in strict mode.
+- Issue #18112: PEP 442 implementation (safe object finalization).
-- Issue #17403: urllib.parse.robotparser normalizes the urls before adding to
- ruleline. This helps in handling certain types invalid urls in a conservative
- manner.
+- Issue #18552: Check return value of PyArena_AddPyObject() in
+ obj2ast_object().
-- Issue #18025: Fixed a segfault in io.BufferedIOBase.readinto() when raw
- stream's read() returns more bytes than requested.
+- Issue #18560: Fix potential NULL pointer dereference in sum().
-- Issue #18011: base64.b32decode() now raises a binascii.Error if there are
- non-alphabet characters present in the input string to conform a docstring.
- Updated the module documentation.
+- Issue #18520: Add a new PyStructSequence_InitType2() function, same than
+ PyStructSequence_InitType() except that it has a return value (0 on success,
+ -1 on error).
-- Issue #13772: Restored directory detection of targets in ``os.symlink`` on
- Windows, which was temporarily removed in Python 3.2.3 due to an incomplete
- implementation. The implementation now works even if the symlink is created
- in a location other than the current directory.
+- Issue #15905: Fix theoretical buffer overflow in handling of sys.argv[0],
+ prefix and exec_prefix if the operation system does not obey MAXPATHLEN.
-- Issue #16986: ElementTree now correctly parses a string input not only when
- an internal XML encoding is UTF-8 or US-ASCII.
+- Issue #18408: Fix many various bugs in code handling errors, especially
+ on memory allocation failure (MemoryError).
-- Issue #17812: Fixed quadratic complexity of base64.b32encode().
+- Issue #18344: Fix potential ref-leaks in _bufferedreader_read_all().
-- Issue #17980: Fix possible abuse of ssl.match_hostname() for denial of
- service using certificates with many wildcards (CVE-2013-2099).
+- Issue #18342: Use the repr of a module name when an import fails when using
+ ``from ... import ...``.
-- Issue #17981: Closed socket on error in SysLogHandler.
+- Issue #17872: Fix a segfault in marshal.load() when input stream returns
+ more bytes than requested.
-- Fix typos in the multiprocessing module.
+- Issue #18338: `python --version` now prints version string to stdout, and
+ not to stderr. Patch by Berker Peksag and Michael Dickens.
-- Issue #17754: Make ctypes.util.find_library() independent of the locale.
+- Issue #18426: Fix NULL pointer dereference in C extension import when
+ PyModule_GetDef() returns an error.
-- Issue #17968: Fix memory leak in os.listxattr().
+- Issue #17206: On Windows, increase the stack size from 2 MB to 4.2 MB to fix
+ a stack overflow in the marshal module (fix a crash in test_marshal).
+ Patch written by Jeremy Kloth.
-- Issue #17269: Workaround for socket.getaddrinfo crash on MacOS X
- with port None or "0" and flags AI_NUMERICSERV.
+- Issue #3329: Implement the PEP 445: Add new APIs to customize Python memory
+ allocators.
-- Issue #18698: Ensure imp.reload() returns the module out of sys.modules.
+- Issue #18328: Reorder ops in PyThreadState_Delete*() functions. Now the
+ tstate is first removed from TLS and then deallocated.
-- Issue #18080: When building a C extension module on OS X, if the compiler
- is overriden with the CC environment variable, use the new compiler as
- the default for linking if LDSHARED is not also overriden. This restores
- Distutils behavior introduced in 3.2.3 and inadvertently dropped in 3.3.0.
+- Issue #13483: Use VirtualAlloc in obmalloc on Windows.
-- Issue #18113: Fixed a refcount leak in the curses.panel module's
- set_userptr() method. Reported by Atsuo Ishimoto.
+- Issue #18184: PyUnicode_FromFormat() and PyUnicode_FromFormatV() now raise
+ OverflowError when an argument of %c format is out of range.
-- Issue #18849: Fixed a Windows-specific tempfile bug where collision with an
- existing directory caused mkstemp and related APIs to fail instead of
- retrying. Report and fix by Vlad Shcherbina.
+- Issue #18111: The min() and max() functions now support a default argument
+ to be returned instead of raising a ValueError on an empty sequence.
+ (Contributed by Julian Berman.)
-C API
------
+- Issue #18137: Detect integer overflow on precision in float.__format__()
+ and complex.__format__().
-- Issue #18351: Fix various issues with a helper function in importlib used
- by PyImport_ExecCodeModuleWithPathnames() (and thus by extension PyImport_ExecCodeModule() and PyImport_ExecCodeModuleEx()).
+- Issue #18183: Fix various unicode operations on strings with large unicode
+ codepoints.
-IDLE
-----
+- Issue #18180: Fix ref leak in _PyImport_GetDynLoadWindows().
-- Issue #18873: IDLE now detects Python source code encoding only in comment
- lines.
+- Issue #18038: SyntaxError raised during compilation sources with illegal
+ encoding now always contains an encoding name.
-- Issue #18988: The "Tab" key now works when a word is already autocompleted.
+- Issue #17931: Resolve confusion on Windows between pids and process
+ handles.
-- Issue #18489: Add tests for SearchEngine. Original patch by Phil Webster.
+- Tweak the exception message when the magic number or size value in a bytecode
+ file is truncated.
-- Issue #18429: Format / Format Paragraph, now works when comment blocks
- are selected. As with text blocks, this works best when the selection
- only includes complete lines.
+- Issue #17932: Fix an integer overflow issue on Windows 64-bit in iterators:
+ change the C type of seqiterobject.it_index from long to Py_ssize_t.
-- Issue #18226: Add docstrings and unittests for FormatParagraph.py.
- Original patches by Todd Rovito and Phil Webster.
+- Issue #18065: Don't set __path__ to the package name for frozen packages.
-- Issue #18279: Format - Strip trailing whitespace no longer marks a file as
- changed when it has not been changed. This fix followed the addition of a
- test file originally written by Phil Webster (the issue's main goal).
+- Issue #18088: When reloading a module, unconditionally reset all relevant
+ attributes on the module (e.g. __name__, __loader__, __package__, __file__,
+ __cached__).
-- Issue #7136: In the Idle File menu, "New Window" is renamed "New File".
- Patch by Tal Einat, Roget Serwy, and Todd Rovito.
+- Issue #17937: Try harder to collect cyclic garbage at shutdown.
-- Remove dead imports of imp.
+- Issue #12370: Prevent class bodies from interfering with the __class__
+ closure.
-- Issue #18196: Avoid displaying spurious SystemExit tracebacks.
+- Issue #17644: Fix a crash in str.format when curly braces are used in square
+ brackets.
-- Issue #5492: Avoid traceback when exiting IDLE caused by a race condition.
+- Issue #17237: Fix crash in the ASCII decoder on m68k.
-- Issue #17511: Keep IDLE find dialog open after clicking "Find Next".
- Original patch by Sarah K.
+- Issue #17927: Frame objects kept arguments alive if they had been
+ copied into a cell, even if the cell was cleared.
-- Issue #18055: Move IDLE off of imp and on to importlib.
+- Issue #1545463: At shutdown, defer finalization of codec modules so
+ that stderr remains usable.
-- Issue #15392: Create a unittest framework for IDLE.
- Initial patch by Rajagopalasarma Jayakrishnan.
- See Lib/idlelib/idle_test/README.txt for how to run Idle tests.
+- Issue #7330: Implement width and precision (ex: "%5.3s") for the format
+ string of PyUnicode_FromFormat() function, original patch written by Ysj Ray.
-- Issue #14146: Highlight source line while debugging on Windows.
+- Issue #1545463: Global variables caught in reference cycles are now
+ garbage-collected at shutdown.
-- Issue #17532: Always include Options menu for IDLE on OS X.
- Patch by Guilherme Simões.
+- Issue #17094: Clear stale thread states after fork(). Note that this
+ is a potentially disruptive change since it may release some system
+ resources which would otherwise remain perpetually alive (e.g. database
+ connections kept in thread-local storage).
-Tests
------
+- Issue #17408: Avoid using an obsolete instance of the copyreg module when
+ the interpreter is shutdown and then started again.
-- Issue #14407: Fix unittest test discovery in test_concurrent_futures.
+- Issue #5845: Enable tab-completion in the interactive interpreter by
+ default, thanks to a new sys.__interactivehook__.
-- Issue #18919: Unified and extended tests for audio modules: aifc, sunau and
- wave.
+- Issue #17115,17116: Module initialization now includes setting __package__ and
+ __loader__ attributes to None.
-- Issue #18952: Fix regression in support data downloads introduced when
- test.support was converted to a package. Regression noticed by Zachary
- Ware.
+- Issue #17853: Ensure locals of a class that shadow free variables always win
+ over the closures.
-- Issue #12037: Fix test_email for desktop Windows.
+- Issue #17863: In the interactive console, don't loop forever if the encoding
+ can't be fetched from stdin.
-- Issue #15507: test_subprocess's test_send_signal could fail if the test
- runner were run in an environment where the process inherited an ignore
- setting for SIGINT. Restore the SIGINT handler to the desired
- KeyboardInterrupt raising one during that test.
+- Issue #17867: Raise an ImportError if __import__ is not found in __builtins__.
-- Issue #18792: Use "127.0.0.1" or "::1" instead of "localhost" as much as
- possible, since "localhost" goes through a DNS lookup under recent Windows
- versions.
+- Issue #18698: Ensure importlib.reload() returns the module out of sys.modules.
-- Issue #1666318: Add a test that shutil.copytree() retains directory
- permissions. Patch by Catherine Devlin.
+- Issue #17857: Prevent build failures with pre-3.5.0 versions of sqlite3,
+ such as was shipped with Centos 5 and Mac OS X 10.4.
-- Issue #18357: add tests for dictview set difference.
- Patch by Fraser Tweedale.
+- Issue #17413: sys.settrace callbacks were being passed a string instead of an
+ exception instance for the 'value' element of the arg tuple if the exception
+ originated from C code; now an exception instance is always provided.
-- Issue #18273: move the tests in Lib/test/json_tests to Lib/test/test_json
- and make them discoverable by unittest. Patch by Zachary Ware.
+- Issue #17782: Fix undefined behaviour on platforms where
+ ``struct timespec``'s "tv_nsec" member is not a C long.
-- Fix a fcntl test case on KFreeBSD, Debian #708653 (Petr Salinger).
+- Issue #17722: When looking up __round__, resolve descriptors.
-- Issue #18396: Fix spurious test failure in test_signal on Windows when
- faulthandler is enabled (Patch by Jeremy Kloth)
+- Issue #16061: Speed up str.replace() for replacing 1-character strings.
-- Issue #17046: Fix broken test_executable_without_cwd in test_subprocess.
+- Issue #17715: Fix segmentation fault from raising an exception in a __trunc__
+ method.
-- Issue #15415: Add new temp_dir() and change_cwd() context managers to
- test.support, and refactor temp_cwd() to use them. Patch by Chris Jerdonek.
+- Issue #17643: Add __callback__ attribute to weakref.ref.
-- Issue #15494: test.support is now a package rather than a module (Initial
- patch by Indra Talip)
+- Issue #16447: Fixed potential segmentation fault when setting __name__ on a
+ class.
-- Issue #17944: test_zipfile now discoverable and uses subclassing to
- generate tests for different compression types. Fixed a bug with skipping
- some tests due to use of exhausted iterators.
+- Issue #17669: Fix crash involving finalization of generators using yield from.
-- Issue #18266: test_largefile now works with unittest test discovery and
- supports running only selected tests. Patch by Zachary Ware.
+- Issue #14439: Python now prints the traceback on runpy failure at startup.
-- Issue #17767: test_locale now works with unittest test discovery.
- Original patch by Zachary Ware.
+- Issue #17469: Fix _Py_GetAllocatedBlocks() and sys.getallocatedblocks()
+ when running on valgrind.
-- Issue #18375: Assume --randomize when --randseed is used for running the
- testsuite.
+- Issue #17619: Make input() check for Ctrl-C correctly on Windows.
-- Issue #11185: Fix test_wait4 under AIX. Patch by Sébastien Sablé.
+- Issue #17357: Add missing verbosity messages for -v/-vv that were lost during
+ the importlib transition.
-- Issue #17691: test_univnewlines now works with unittest test discovery.
- Patch by Zachary Ware.
+- Issue #17610: Don't rely on non-standard behavior of the C qsort() function.
-- Issue #18094: test_uuid no more reports skipped tests as passed.
+- Issue #17323: The "[X refs, Y blocks]" printed by debug builds has been
+ disabled by default. It can be re-enabled with the `-X showrefcount` option.
-- Issue #11995: test_pydoc doesn't import all sys.path modules anymore.
+- Issue #17328: Fix possible refleak in dict.setdefault.
-Documentation
--------------
+- Issue #17275: Corrected class name in init error messages of the C version of
+ BufferedWriter and BufferedRandom.
-- Issue #18758: Fixed and improved cross-references.
+- Issue #7963: Fixed misleading error message that issued when object is
+ called without arguments.
-- Issue #18743: Fix references to non-existant "StringIO" module.
+- Issue #8745: Small speed up zipimport on Windows. Patch by Catalin Iacob.
-- Issue #18783: Removed existing mentions of Python long type in docstrings,
- error messages and comments.
+- Issue #5308: Raise ValueError when marshalling too large object (a sequence
+ with size >= 2**31), instead of producing illegal marshal data.
-- Issue #17701: Improving strftime documentation.
+- Issue #12983: Bytes literals with invalid \x escape now raise a SyntaxError
+ and a full traceback including line number.
-- Issue #18440: Clarify that `hash()` can truncate the value returned from an
- object's custom `__hash__()` method.
+- Issue #16967: In function definition, evaluate positional defaults before
+ keyword-only defaults.
-- Issue #17953: Mention that you shouldn't replace sys.modules and deleting key
- items will cause Python to not be happy.
+- Issue #17173: Remove uses of locale-dependent C functions (isalpha() etc.)
+ in the interpreter.
-- Issue #17844: Add links to encoders and decoders for bytes-to-bytes codecs.
+- Issue #17137: When an Unicode string is resized, the internal wide character
+ string (wstr) format is now cleared.
-- Issue #14097: improve the "introduction" page of the tutorial.
+- Issue #17043: The unicode-internal decoder no longer read past the end of
+ input buffer.
-- Issue #17977: The documentation for the cadefault argument's default value
- in urllib.request.urlopen() is fixed to match the code.
+- Issue #17098: All modules now have __loader__ set even if they pre-exist the
+ bootstrapping of importlib.
-Tools/Demos
------------
+- Issue #16979: Fix error handling bugs in the unicode-escape-decode decoder.
-- Issue #18873: 2to3 and the findnocoding.py script now detect Python source
- code encoding only in comment lines.
+- Issue #16772: The base argument to the int constructor no longer accepts
+ floats, or other non-integer objects with an __int__ method. Objects
+ with an __index__ method are now accepted.
-- Issue #18817: Fix a resource warning in Lib/aifc.py demo.
+- Issue #10156: In the interpreter's initialization phase, unicode globals
+ are now initialized dynamically as needed.
-- Issue #18439: Make patchcheck work on Windows for ACKS, NEWS.
+- Issue #16980: Fix processing of escaped non-ascii bytes in the
+ unicode-escape-decode decoder.
-- Issue #18448: Fix a typo in Tools/demo/eiffel.py.
+- Issue #16975: Fix error handling bug in the escape-decode bytes decoder.
-- Issue #18457: Fixed saving of formulas and complex numbers in
- Tools/demo/ss1.py.
+- Issue #14850: Now a charmap decoder treats U+FFFE as "undefined mapping"
+ in any mapping, not only in a string.
+
+- Issue #16730: importlib.machinery.FileFinder now no longers raises an
+ exception when trying to populate its cache and it finds out the directory is
+ unreadable or has turned into a file. Reported and diagnosed by
+ David Pritchard.
+
+- Issue #16906: Fix a logic error that prevented most static strings from being
+ cleared.
+
+- Issue #11461: Fix the incremental UTF-16 decoder. Original patch by
+ Amaury Forgeot d'Arc.
+
+- Issue #16856: Fix a segmentation fault from calling repr() on a dict with
+ a key whose repr raise an exception.
+
+- Issue #16367: Fix FileIO.readall() on Windows for files larger than 2 GB.
+
+- Issue #16761: Calling int() with base argument only now raises TypeError.
+
+- Issue #16759: Support the full DWORD (unsigned long) range in Reg2Py
+ when retrieving a REG_DWORD value. This corrects functions like
+ winreg.QueryValueEx that may have been returning truncated values.
+
+- Issue #14420: Support the full DWORD (unsigned long) range in Py2Reg
+ when passed a REG_DWORD value. Fixes OverflowError in winreg.SetValueEx.
+
+- Issue #11939: Set the st_dev attribute of stat_result to allow Windows to
+ take advantage of the os.path.samefile/sameopenfile/samestat implementations
+ used by other platforms.
+
+- Issue #16772: The int() constructor's second argument (base) no longer
+ accepts non integer values. Consistent with the behavior in Python 2.
+
+- Issue #14470: Remove w9xpopen support per PEP 11.
+
+- Issue #9856: Replace deprecation warning with raising TypeError
+ in object.__format__. Patch by Florent Xicluna.
+
+- Issue #16597: In buffered and text IO, call close() on the underlying stream
+ if invoking flush() fails.
+
+- Issue #16722: In the bytes() constructor, try to call __bytes__ on the
+ argument before __index__.
+
+- Issue #16421: loading multiple modules from one shared object is now
+ handled correctly (previously, the first module loaded from that file
+ was silently returned). Patch by Václav Šmilauer.
+
+- Issue #16602: When a weakref's target was part of a long deallocation
+ chain, the object could remain reachable through its weakref even though
+ its refcount had dropped to zero.
+
+- Issue #16495: Remove extraneous NULL encoding check from bytes_decode().
+
+- Issue #16619: Create NameConstant AST class to represent None, True, and False
+ literals. As a result, these constants are never loaded at runtime from
+ builtins.
+
+- Issue #16455: On FreeBSD and Solaris, if the locale is C, the
+ ASCII/surrogateescape codec is now used, instead of the locale encoding, to
+ decode the command line arguments. This change fixes inconsistencies with
+ os.fsencode() and os.fsdecode() because these operating systems announces an
+ ASCII locale encoding, whereas the ISO-8859-1 encoding is used in practice.
+
+- Issue #16562: Optimize dict equality testing. Patch by Serhiy Storchaka.
+
+- Issue #16588: Silence unused-but-set warnings in Python/thread_pthread
+
+- Issue #16592: stringlib_bytes_join doesn't raise MemoryError on allocation
+ failure.
+
+- Issue #16546: Fix: ast.YieldFrom argument is now mandatory.
+
+- Issue #16514: Fix regression causing a traceback when sys.path[0] is None
+ (actually, any non-string or non-bytes type).
+
+- Issue #16306: Fix multiple error messages when unknown command line
+ parameters where passed to the interpreter. Patch by Hieu Nguyen.
+
+- Issue #16215: Fix potential double memory free in str.replace(). Patch
+ by Serhiy Storchaka.
+
+- Issue #16290: A float return value from the __complex__ special method is no
+ longer accepted in the complex() constructor.
+
+- Issue #16416: On Mac OS X, operating system data are now always
+ encoded/decoded to/from UTF-8/surrogateescape, instead of the locale encoding
+ (which may be ASCII if no locale environment variable is set), to avoid
+ inconsistencies with os.fsencode() and os.fsdecode() functions which are
+ already using UTF-8/surrogateescape.
+
+- Issue #16453: Fix equality testing of dead weakref objects.
+
+- Issue #9535: Fix pending signals that have been received but not yet
+ handled by Python to not persist after os.fork() in the child process.
+
+- Issue #14794: Fix slice.indices to return correct results for huge values,
+ rather than raising OverflowError.
+
+- Issue #15001: fix segfault on "del sys.modules['__main__']". Patch by Victor
+ Stinner.
+
+- Issue #8271: the utf-8 decoder now outputs the correct number of U+FFFD
+ characters when used with the 'replace' error handler on invalid utf-8
+ sequences. Patch by Serhiy Storchaka, tests by Ezio Melotti.
+
+- Issue #5765: Apply a hard recursion limit in the compiler instead of
+ blowing the stack and segfaulting. Initial patch by Andrea Griffini.
+
+- Issue #16402: When slicing a range, fix shadowing of exceptions from
+ __index__.
+
+- Issue #16336: fix input checking in the surrogatepass error handler.
+ Patch by Serhiy Storchaka.
+
+- Issue #8401: assigning an int to a bytearray slice (e.g. b[3:4] = 5) now
+ raises an error.
+
+- Issue #7317: Display full tracebacks when an error occurs asynchronously.
+ Patch by Alon Horev with update by Alexey Kachayev.
+
+- Issue #16309: Make PYTHONPATH="" behavior the same as if PYTHONPATH
+ not set at all.
+
+- Issue #10189: Improve the error reporting of SyntaxErrors related to global
+ and nonlocal statements.
+
+- Fix segfaults on setting __qualname__ on builtin types and attempting to
+ delete it on any type.
+
+- Issue #14625: Rewrite the UTF-32 decoder. It is now 3x to 4x faster. Patch
+ written by Serhiy Storchaka.
-- Issue #18449: Make Tools/demo/ss1.py work again on Python 3. Patch by
- Févry Thibault.
+- Issue #16345: Fix an infinite loop when ``fromkeys`` on a dict subclass
+ received a nonempty dict from the constructor.
-- Issue #15239: Make mkstringprep.py work again on Python 3.
+- Issue #16271: Fix strange bugs that resulted from __qualname__ appearing in a
+ class's __dict__ and on type.
-- Issue #12990: The "Python Launcher" on OSX could not launch python scripts
- that have paths that include wide characters.
+- Issue #12805: Make bytes.join and bytearray.join faster when the separator
+ is empty. Patch by Serhiy Storchaka.
-Build
------
+- Issue #6074: Ensure cached bytecode files can always be updated by the
+ user that created them, even when the source file is read-only.
-- Issue #19356: Avoid using a C variabled named "_self", it's a reserved
- word in some C compilers.
+- Issue #15958: bytes.join and bytearray.join now accept arbitrary buffer
+ objects.
-- Issue #19130: Correct PCbuild/readme.txt, Python 3.3 and 3.4 require VS 2010.
+- Issue #14783: Improve int() docstring and switch docstrings for str(),
+ range(), and slice() to use multi-line signatures.
-- Issue #16067: Add description into MSI file to replace installer's temporary name.
+- Issue #16160: Subclass support now works for types.SimpleNamespace.
-- Issue #18256: Compilation fix for recent AIX releases. Patch by
- David Edelsohn.
+- Upgrade Unicode data (UCD) to version 6.2.
-- Issue #15172: Document NASM 2.10+ as requirement for building OpenSSL 1.0.1
- on Windows.
+- Issue #15379: Fix passing of non-BMP characters as integers for the charmap
+ decoder (already working as unicode strings). Patch by Serhiy Storchaka.
+- Issue #15144: Fix possible integer overflow when handling pointers as integer
+ values, by using `Py_uintptr_t` instead of `size_t`. Patch by Serhiy
+ Storchaka.
-What's New in Python 3.3.2?
-===========================
+- Issue #15965: Explicitly cast `AT_FDCWD` as (int). Required on Solaris 10
+ (which defines `AT_FDCWD` as ``0xffd19553``), harmless on other platforms.
-*Release date: 13-May-2013*
+- Issue #15839: Convert SystemErrors in `super()` to RuntimeErrors.
-Core and Builtins
------------------
+- Issue #15448: Buffered IO now frees the buffer when closed, instead
+ of when deallocating.
-- Issue #17237: Fix crash in the ASCII decoder on m68k.
+- Issue #15846: Fix SystemError which happened when using `ast.parse()` in an
+ exception handler on code with syntax errors.
-- Issue #17408: Avoid using an obsolete instance of the copyreg module when
- the interpreter is shutdown and then started again.
+- Issue #15897: zipimport.c doesn't check return value of fseek().
+ Patch by Felipe Cruz.
-- Issue #17863: In the interactive console, don't loop forever if the encoding
- can't be fetched from stdin.
+- Issue #15801: Make sure mappings passed to '%' formatting are actually
+ subscriptable.
-- Issue #17867: Raise an ImportError if __import__ is not found in __builtins__.
+- Issue #15111: __import__ should propagate ImportError when raised as a
+ side-effect of a module triggered from using fromlist.
-- Issue #17857: Prevent build failures with pre-3.5.0 versions of sqlite3,
- such as was shipped with Centos 5 and Mac OS X 10.4.
+- Issue #15022: Add pickle and comparison support to types.SimpleNamespace.
-- Issue #17413: sys.settrace callbacks were being passed a string instead of an
- exception instance for the 'value' element of the arg tuple if the exception
- originated from C code; now an exception instance is always provided.
+Library
+-------
-- Issue #17782: Fix undefined behaviour on platforms where
- ``struct timespec``'s "tv_nsec" member is not a C long.
+- Issue #13461: Fix a crash in the TextIOWrapper.tell method on 64-bit
+ platforms. Patch by Yogesh Chaudhari.
-- Issue #17715: Fix segmentation fault from raising an exception in a __trunc__
- method.
+- Issue #18681: Fix a NameError in importlib.reload() (noticed by Weizhao Li).
-- Issue #16447: Fixed potential segmentation fault when setting __name__ on a
- class.
+- Issue #14323: Expanded the number of digits in the coefficients for the
+ RGB -- YIQ conversions so that they match the FCC NTSC versions.
-- Issue #17669: Fix crash involving finalization of generators using yield from.
+- Issue #17998: Fix an internal error in regular expression engine.
-- Issue #17619: Make input() check for Ctrl-C correctly on Windows.
+- Issue #17557: Fix os.getgroups() to work with the modified behavior of
+ getgroups(2) on OS X 10.8. Original patch by Mateusz Lenik.
-- Issue #17610: Don't rely on non-standard behavior of the C qsort() function.
+- Issue #18608: Avoid keeping a strong reference to the locale module
+ inside the _io module.
-- Issue #17357: Add missing verbosity output when using -v/-vv.
+- Issue #18619: Fix atexit leaking callbacks registered from sub-interpreters,
+ and make it GC-aware.
-Library
--------
+- Issue #15699: The readline module now uses PEP 3121-style module
+ initialization, so as to reclaim allocated resources (Python callbacks)
+ at shutdown. Original patch by Robin Schreiber.
-- Issue #17606: Fixed support of encoded byte strings in the XMLGenerator
- characters() and ignorableWhitespace() methods. Original patch by Sebastian
- Ortiz Vasquez.
+- Issue #17616: wave.open now supports the context manager protocol.
-- Issue #17732: Ignore distutils.cfg options pertaining to install paths if a
- virtual environment is active.
+- Issue #18599: Fix name attribute of _sha1.sha1() object. It now returns
+ 'SHA1' instead of 'SHA'.
-- Issue #1159051: Back out a fix for handling corrupted gzip files that
- broke backwards compatibility.
+- Issue #13266: Added inspect.unwrap to easily unravel __wrapped__ chains
+ (initial patch by Daniel Urban and Aaron Iles)
-- Issue #17915: Fix interoperability of xml.sax with file objects returned by
- codecs.open().
+- Issue #18561: Skip name in ctypes' _build_callargs() if name is NULL.
-- Issue #16601: Restarting iteration over tarfile no more continues from where
- it left off. Patch by Michael Birtwell.
+- Issue #18559: Fix NULL pointer dereference error in _pickle module
-- Issue #17289: The readline module now plays nicer with external modules
- or applications changing the rl_completer_word_break_characters global
- variable. Initial patch by Bradley Froehle.
+- Issue #18556: Check the return type of PyUnicode_AsWideChar() in ctype's
+ U_set().
-- Issue #12181: select module: Fix struct kevent definition on OpenBSD 64-bit
- platforms. Patch by Federico Schwindt.
+- Issue #17818: aifc.getparams now returns a namedtuple.
-- Issue #14173: Avoid crashing when reading a signal handler during
- interpreter shutdown.
+- Issue #18549: Eliminate dead code in socket_ntohl()
-- Issue #16316: mimetypes now recognizes the .xz and .txz (.tar.xz) extensions.
+- Issue #18530: Remove additional stat call from posixpath.ismount.
+ Patch by Alex Gaynor.
-- Issue #15902: Fix imp.load_module() accepting None as a file when loading an
- extension module.
+- Issue #18514: Fix unreachable Py_DECREF() call in PyCData_FromBaseObj()
-- Issue #17802: Fix an UnboundLocalError in html.parser. Initial tests by
- Thomas Barlow.
+- Issue #9177: Calling read() or write() now raises ValueError, not
+ AttributeError, on a closed SSL socket. Patch by Senko Rasic.
-- Issue #15535: Fix namedtuple pickles which were picking up the OrderedDict
- instead of just the underlying tuple.
+- Issue #18513: Fix behaviour of cmath.rect w.r.t. signed zeros on OS X 10.8 +
+ gcc.
-- Issue #17192: Restore the patch for Issue #11729 which was ommitted in
- 3.3.1 when updating the bundled version of libffi used by ctypes. Update
- many libffi files that were missed in 3.3.1's update to libffi-3.0.13.
+- Issue #18479: Changed venv Activate.ps1 to make deactivate a function, and
+ removed Deactivate.ps1.
-- Issue #17358: Modules loaded by imp.load_source() and load_compiled() (and by
- extention load_module()) now have a better chance of working when reloaded.
+- Issue #18480: Add missing call to PyType_Ready to the _elementtree extension.
-- Issue #17353: Plistlib emitted empty data tags with deeply nested datastructures
+- Issue #17778: Fix test discovery for test_multiprocessing. (Patch by
+ Zachary Ware.)
-- Issue #11714: Use 'with' statements to assure a Semaphore releases a
- condition variable. Original patch by Thomas Rachel.
+- Issue #18393: The private module _gestalt and private functions
+ platform._mac_ver_gestalt, platform._mac_ver_lookup and
+ platform._bcd2str have been removed. This does not affect the public
+ interface of the platform module.
-- Issue #17795: Reverted backwards-incompatible change in SysLogHandler with
- Unix domain sockets.
+- Issue #17482: functools.update_wrapper (and functools.wraps) now set the
+ __wrapped__ attribute correctly even if the underlying function has a
+ __wrapped__ attribute set.
-- Issue #17555: Fix ForkAwareThreadLock so that size of after fork
- registry does not grow exponentially with generation of process.
+- Issue #18431: The new email header parser now decodes RFC2047 encoded words
+ in structured headers.
-- Issue #17707: multiprocessing.Queue's get() method does not block for short
- timeouts.
+- Issue #18432: The sched module's queue method was incorrectly returning
+ an iterator instead of a list.
-- Isuse #17720: Fix the Python implementation of pickle.Unpickler to correctly
- process the APPENDS opcode when it is used on non-list objects.
+- Issue #18044: The new email header parser was mis-parsing encoded words where
+ an encoded character immediately followed the '?' that follows the CTE
+ character, resulting in a decoding failure. They are now decoded correctly.
-- Issue #17012: shutil.which() no longer fallbacks to the PATH environment
- variable if empty path argument is specified. Patch by Serhiy Storchaka.
+- Issue #18101: Tcl.split() now process strings nested in a tuple as it
+ do with byte strings.
-- Issue #17710: Fix pickle raising a SystemError on bogus input.
+- Issue #18116: getpass was always getting an error when testing /dev/tty,
+ and thus was always falling back to stdin. It also leaked an open file
+ when it did so. Both of these issues are now fixed.
-- Issue #17341: Include the invalid name in the error messages from re about
- invalid group names.
+- Issue #17198: Fix a NameError in the dbm module. Patch by Valentina
+ Mukhamedzhanova.
-- Issue #17702: os.environ now raises KeyError with the original environment
- variable name (str on UNIX), instead of using the encoded name (bytes on
- UNIX).
+- Issue #18013: Fix cgi.FieldStorage to parse the W3C sample form.
-- Issue #16163: Make the importlib based version of pkgutil.iter_importers
- work for submodules. Initial patch by Berker Peksag.
+- Issue #18020: improve html.escape speed by an order of magnitude.
+ Patch by Matt Bryant.
-- Issue #16804: Fix a bug in the 'site' module that caused running
- 'python -S -m site' to incorrectly throw an exception.
+- Issue #18347: ElementTree's html serializer now preserves the case of
+ closing tags.
-- Issue #17016: Get rid of possible pointer wraparounds and integer overflows
- in the re module. Patch by Nickolai Zeldovich.
+- Issue #17261: Ensure multiprocessing's proxies use proper address.
-- Issue #16658: add missing return to HTTPConnection.send()
- Patch by Jeff Knupp.
+- Issue #18343: faulthandler.register() now keeps the previous signal handler
+ when the function is called twice, so faulthandler.unregister() restores
+ correctly the original signal handler.
-- Issue #14971: unittest test discovery no longer gets confused when a function
- has a different __name__ than its name in the TestCase class dictionary.
+- Issue #17097: Make multiprocessing ignore EINTR.
-- Issue #17678: Fix DeprecationWarning in the http/cookiejar.py by changing the
- usage of get_origin_req_host() to origin_req_host.
+- Issue #18339: Negative ints keys in unpickler.memo dict no longer cause a
+ segfault inside the _pickle C extension.
-- Issue #17666: Fix reading gzip files with an extra field.
+- Issue 18240: The HMAC module is no longer restricted to bytes and accepts
+ any bytes-like object, e.g. memoryview. Original patch by Jonas Borgström.
-- Issue #17502: Process DEFAULT values in mock side_effect that returns iterator.
- Patch by Michael Foord.
+- Issue #18224: Removed pydoc script from created venv, as it causes problems
+ on Windows and adds no value over and above python -m pydoc ...
-- Issue #17572: Avoid chained exceptions while passing bad directives to
- time.strptime(). Initial patch by Claudiu Popa.
+- Issue #18155: The csv module now correctly handles csv files that use
+ a delimter character that has a special meaning in regexes, instead of
+ throwing an exception.
-- Issue #17435: threading.Timer's __init__ method no longer uses mutable
- default values for the args and kwargs parameters.
+- Issue #14360: encode_quopri can now be successfully used as an encoder
+ when constructing a MIMEApplication object.
-- Issue #17526: fix an IndexError raised while passing code without filename to
- inspect.findsource(). Initial patch by Tyler Doyle.
+- Issue #11390: Add -o and -f command line options to the doctest CLI to
+ specify doctest options (and convert it to using argparse).
-- Issue #16550: Update the opcode descriptions of pickletools to use unsigned
- integers where appropriate. Initial patch by Serhiy Storchaka.
+- Issue #18135: ssl.SSLSocket.write() now raises an OverflowError if the input
+ string in longer than 2 gigabytes, and ssl.SSLContext.load_cert_chain()
+ raises a ValueError if the password is longer than 2 gigabytes. The ssl
+ module does not support partial write.
-IDLE
-----
+- Issue #11016: Add C implementation of the stat module as _stat.
-- Issue #17838: Allow sys.stdin to be reassigned.
+- Issue #18248: Fix libffi build on AIX.
-- Issue #13495: Avoid loading the color delegator twice in IDLE.
+- Issue #18259: Declare sethostname in socketmodule.c for AIX
-- Issue #17798: Allow IDLE to edit new files when specified on command line.
+- Issue #18147: Add diagnostic functions to ssl.SSLContext(). get_ca_list()
+ lists all loaded CA certificates and cert_store_stats() returns amount of
+ loaded X.509 certs, X.509 CA certs and CRLs.
-- Issue #14735: Update IDLE docs to omit "Control-z on Windows".
+- Issue #18167: cgi.FieldStorage no longer fails to handle multipart/form-data
+ when \r\n appears at end of 65535 bytes without other newlines.
-- Issue #17585: Fixed IDLE regression. Now closes when using exit() or quit().
+- Issue #18076: Introduce importlib.util.decode_source().
+- Issue #18357: add tests for dictview set difference.
+ Patch by Fraser Tweedale.
-- Issue #17657: Show full Tk version in IDLE's about dialog.
- Patch by Todd Rovito.
+- importlib.abc.SourceLoader.get_source() no longer changes SyntaxError or
+ UnicodeDecodeError into ImportError.
-- Issue #17613: Prevent traceback when removing syntax colorizer in IDLE.
+- Issue #18058, 18057: Make the namespace package loader meet the
+ importlib.abc.InspectLoader ABC, allowing for namespace packages to work with
+ runpy.
-- Issue #1207589: Backwards-compatibility patch for right-click menu in IDLE.
+- Issue #17177: The imp module is pending deprecation.
-- Issue #16887: IDLE now accepts Cancel in tabify/untabify dialog box.
+- subprocess: Prevent a possible double close of parent pipe fds when the
+ subprocess exec runs into an error. Prevent a regular multi-close of the
+ /dev/null fd when any of stdin, stdout and stderr was set to DEVNULL.
-- Issue #17625: In IDLE, close the replace dialog after it is used.
+- Issue #18194: Introduce importlib.util.cache_from_source() and
+ source_from_cache() while documenting the equivalent functions in imp as
+ deprecated.
-- Issue #14254: IDLE now handles readline correctly across shell restarts.
+- Issue #17907: Document imp.new_module() as deprecated in favour of
+ types.ModuleType.
-- Issue #17614: IDLE no longer raises exception when quickly closing a file.
+- Issue #18192: Introduce importlib.util.MAGIC_NUMBER and document as deprecated
+ imp.get_magic().
-- Issue #6698: IDLE now opens just an editor window when configured to do so.
+- Issue #18149: Add filecmp.clear_cache() to manually clear the filecmp cache.
+ Patch by Mark Levitt
-- Issue #8900: Using keyboard shortcuts in IDLE to open a file no longer
- raises an exception.
+- Issue #18193: Add importlib.reload().
-- Issue #6649: Fixed missing exit status in IDLE. Patch by Guilherme Polo.
+- Issue #18157: Stop using imp.load_module() in pydoc.
-Tests
------
+- Issue #16102: Make uuid._netbios_getnode() work again on Python 3.
-- Issue #17833: Fix test_gdb failures seen on machines where debug symbols
- for glibc are available (seen on PPC64 Linux).
+- Issue #17134: Add ssl.enum_cert_store() as interface to Windows' cert store.
-- Issue #7855: Add tests for ctypes/winreg for issues found in IronPython.
- Initial patch by Dino Viehland.
+- Issue #18143: Implement ssl.get_default_verify_paths() in order to debug
+ the default locations for cafile and capath.
-- Issue #17712: Fix test_gdb failures on Ubuntu 13.04.
+- Issue #17314: Move multiprocessing.forking over to importlib.
-- Issue #17835: Fix test_io when the default OS pipe buffer size is larger
- than one million bytes.
+- Issue #11959: SMTPServer and SMTPChannel now take an optional map, use of
+ which avoids affecting global state.
-- Issue #17065: Use process-unique key for winreg tests to avoid failures if
- test is run multiple times in parallel (eg: on a buildbot host).
+- Issue #18109: os.uname() now decodes fields from the locale encoding, and
+ socket.gethostname() now decodes the hostname from the locale encoding,
+ instead of using the UTF-8 encoding in strict mode.
-- Issue #12820: add tests for the xml.dom.minicompat module.
- Patch by John Chandler and Phil Connell.
+- Issue #18089: Implement importlib.abc.InspectLoader.load_module.
-- Issue #17790: test_set now works with unittest test discovery.
- Patch by Zachary Ware.
+- Issue #18088: Introduce importlib.abc.Loader.init_module_attrs for setting
+ module attributes. Leads to the pending deprecation of
+ importlib.util.module_for_loader.
-- Issue #17789: test_random now works with unittest test discovery.
- Patch by Zachary Ware.
+- Issue #17403: urllib.parse.robotparser normalizes the urls before adding to
+ ruleline. This helps in handling certain types invalid urls in a conservative
+ manner. Patch contributed by Mher Movsisyan.
-- Issue #17779: test_osx_env now works with unittest test discovery.
- Patch by Zachary Ware.
+- Issue #18070: Have importlib.util.module_for_loader() set attributes
+ unconditionally in order to properly support reloading.
-- Issue #17766: test_iterlen now works with unittest test discovery.
- Patch by Zachary Ware.
+- Added importlib.util.module_to_load to return a context manager to provide the
+ proper module object to load.
-- Issue #17690: test_time now works with unittest test discovery.
- Patch by Zachary Ware.
+- Issue #18025: Fixed a segfault in io.BufferedIOBase.readinto() when raw
+ stream's read() returns more bytes than requested.
-- Issue #17692: test_sqlite now works with unittest test discovery.
- Patch by Zachary Ware.
+- Issue #18011: base64.b32decode() now raises a binascii.Error if there are
+ non-alphabet characters present in the input string to conform a docstring.
+ Updated the module documentation.
-- Issue #17843: Removed bz2 test data file that was triggering false-positive
- virus warnings with certain antivirus software.
+- Issue #18072: Implement importlib.abc.InspectLoader.get_code() and
+ importlib.abc.ExecutionLoader.get_code().
-Documentation
--------------
+- Issue #8240: Set the SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER flag on SSL
+ sockets.
-- Issue #15940: Specify effect of locale on time functions.
+- Issue #17269: Workaround for socket.getaddrinfo crash on MacOS X
+ with port None or "0" and flags AI_NUMERICSERV.
-- Issue #6696: add documentation for the Profile objects, and improve
- profile/cProfile docs. Patch by Tom Pinckney.
+- Issue #16986: ElementTree now correctly parses a string input not only when
+ an internal XML encoding is UTF-8 or US-ASCII.
-- Issue #17915: Fix interoperability of xml.sax with file objects returned by
- codecs.open().
+- Issue #17996: socket module now exposes AF_LINK constant on BSD and OSX.
-Build
------
+- Issue #17900: Allowed pickling of recursive OrderedDicts. Decreased pickled
+ size and pickling time.
-- Issue #17547: In configure, explicitly pass -Wformat for the benefit for GCC
- 4.8.
+- Issue #17914: Add os.cpu_count(). Patch by Yogesh Chaudhari, based on an
+ initial patch by Trent Nelson.
-- Issue #17962: Build with OpenSSL 1.0.1e on Windows.
+- Issue #17812: Fixed quadratic complexity of base64.b32encode().
+ Optimize base64.b32encode() and base64.b32decode() (speed up to 3x).
+
+- Issue #17980: Fix possible abuse of ssl.match_hostname() for denial of
+ service using certificates with many wildcards (CVE-2013-2099).
+- Issue #15758: Fix FileIO.readall() so it no longer has O(n**2) complexity.
-What's New in Python 3.3.1?
-===========================
+- Issue #14596: The struct.Struct() objects now use more compact implementation.
-*Release date: 07-Apr-2013*
+- Issue #17981: Closed socket on error in SysLogHandler.
-Build
------
+- Issue #17964: Fix os.sysconf(): the return type of the C sysconf() function
+ is long, not int.
-- Issue #17550: Fix the --enable-profiling configure switch.
+- Fix typos in the multiprocessing module.
-IDLE
--------
+- Issue #17754: Make ctypes.util.find_library() independent of the locale.
-- Issue #17625: In IDLE, close the replace dialog after it is used.
+- Issue #17968: Fix memory leak in os.listxattr().
+- Issue #17606: Fixed support of encoded byte strings in the XMLGenerator
+ characters() and ignorableWhitespace() methods. Original patch by Sebastian
+ Ortiz Vasquez.
-What's New in Python 3.3.1 release candidate 1?
-===============================================
+- Issue #17732: Ignore distutils.cfg options pertaining to install paths if a
+ virtual environment is active.
-*Release date: 24-Mar-2013*
+- Issue #17915: Fix interoperability of xml.sax with file objects returned by
+ codecs.open().
-Core and Builtins
------------------
+- Issue #16601: Restarting iteration over tarfile no more continues from where
+ it left off. Patch by Michael Birtwell.
-- Issue #17328: Fix possible refleak in dict.setdefault.
+- Issue #17289: The readline module now plays nicer with external modules
+ or applications changing the rl_completer_word_break_characters global
+ variable. Initial patch by Bradley Froehle.
-- Issue #17223: Fix PyUnicode_FromUnicode() for string of 1 character outside
- the range U+0000-U+10ffff.
+- Issue #12181: select module: Fix struct kevent definition on OpenBSD 64-bit
+ platforms. Patch by Federico Schwindt.
-- Issue #1692335: Move initial args assignment to
- BaseException.__new__ to help pickling of naive subclasses.
+- Issue #11816: multiple improvements to the dis module: get_instructions
+ generator, ability to redirect output to a file, Bytecode and Instruction
+ abstractions. Patch by Nick Coghlan, Ryan Kelly and Thomas Kluyver.
-- Issue #17275: Corrected class name in init error messages of the C version of
- BufferedWriter and BufferedRandom.
+- Issue #13831: Embed stringification of remote traceback in local
+ traceback raised when pool task raises an exception.
-- Issue #7963: Fixed misleading error message that issued when object is
- called without arguments.
+- Issue #15528: Add weakref.finalize to support finalization using
+ weakref callbacks.
-- Issue #5308: Raise ValueError when marshalling too large object (a sequence
- with size >= 2**31), instead of producing illegal marshal data.
+- Issue #14173: Avoid crashing when reading a signal handler during
+ interpreter shutdown.
-- Issue #12983: Bytes literals with invalid \x escape now raise a SyntaxError
- and a full traceback including line number.
+- Issue #15902: Fix imp.load_module() accepting None as a file when loading an
+ extension module.
-- Issue #17173: Remove uses of locale-dependent C functions (isalpha() etc.)
- in the interpreter.
+- Issue #13721: SSLSocket.getpeercert() and SSLSocket.do_handshake() now
+ raise an OSError with ENOTCONN, instead of an AttributeError, when the
+ SSLSocket is not connected.
-- Issue #17137: When an Unicode string is resized, the internal wide character
- string (wstr) format is now cleared.
+- Issue #14679: add an __all__ (that contains only HTMLParser) to html.parser.
-- Issue #17043: The unicode-internal decoder no longer read past the end of
- input buffer.
+- Issue #17802: Fix an UnboundLocalError in html.parser. Initial tests by
+ Thomas Barlow.
-- Issue #17098: All modules now have __loader__ set even if they pre-exist the
- bootstrapping of importlib.
+- Issue #17358: Modules loaded by imp.load_source() and load_compiled() (and by
+ extention load_module()) now have a better chance of working when reloaded.
-- Issue #16979: Fix error handling bugs in the unicode-escape-decode decoder.
+- Issue #17804: New function ``struct.iter_unpack`` allows for streaming
+ struct unpacking.
-- Issue #10156: In the interpreter's initialization phase, unicode globals
- are now initialized dynamically as needed.
+- Issue #17830: When keyword.py is used to update a keyword file, it now
+ preserves the line endings of the original file.
-- Issue #16980: Fix processing of escaped non-ascii bytes in the
- unicode-escape-decode decoder.
+- Issue #17272: Making the urllib.request's Request.full_url a descriptor.
+ Fixes bugs with assignment to full_url. Patch by Demian Brecht.
-- Issue #16975: Fix error handling bug in the escape-decode bytes decoder.
+- Issue #17353: Plistlib emitted empty data tags with deeply nested datastructures
-- Issue #14850: Now a charmap decoder treats U+FFFE as "undefined mapping"
- in any mapping, not only in a string.
+- Issue #11714: Use 'with' statements to assure a Semaphore releases a
+ condition variable. Original patch by Thomas Rachel.
-- Issue #16730: importlib.machinery.FileFinder now no longers raises an
- exception when trying to populate its cache and it finds out the directory is
- unreadable or has turned into a file. Reported and diagnosed by
- David Pritchard.
+- Issue #16624: `subprocess.check_output` now accepts an `input` argument,
+ allowing the subprocess's stdin to be provided as a (byte) string.
+ Patch by Zack Weinberg.
-- Issue #16906: Fix a logic error that prevented most static strings from being
- cleared.
+- Issue #17795: Reverted backwards-incompatible change in SysLogHandler with
+ Unix domain sockets.
-- Issue #11461: Fix the incremental UTF-16 decoder. Original patch by
- Amaury Forgeot d'Arc.
+- Issue #16694: Add a pure Python implementation of the operator module.
+ Patch by Zachary Ware.
-- Issue #16856: Fix a segmentation fault from calling repr() on a dict with
- a key whose repr raise an exception.
+- Issue #11182: remove the unused and undocumented pydoc.Scanner class.
+ Patch by Martin Morrison.
-- Issue #16367: Fix FileIO.readall() on Windows for files larger than 2 GB.
+- Issue #17741: Add ElementTree.IncrementalParser, an event-driven parser
+ for non-blocking applications.
-- Issue #16455: On FreeBSD and Solaris, if the locale is C, the
- ASCII/surrogateescape codec is now used, instead of the locale encoding, to
- decode the command line arguments. This change fixes inconsistencies with
- os.fsencode() and os.fsdecode() because these operating systems announces an
- ASCII locale encoding, whereas the ISO-8859-1 encoding is used in practice.
+- Issue #17555: Fix ForkAwareThreadLock so that size of after fork
+ registry does not grow exponentially with generation of process.
-- Issue #16761: Calling int() with base argument only now raises TypeError.
+- Issue #17707: multiprocessing.Queue's get() method does not block for short
+ timeouts.
-- Issue #16759: Support the full DWORD (unsigned long) range in Reg2Py
- when retrieving a REG_DWORD value. This corrects functions like
- winreg.QueryValueEx that may have been returning truncated values.
+- Isuse #17720: Fix the Python implementation of pickle.Unpickler to correctly
+ process the APPENDS opcode when it is used on non-list objects.
-- Issue #14420: Support the full DWORD (unsigned long) range in Py2Reg
- when passed a REG_DWORD value. Fixes OverflowError in winreg.SetValueEx.
+- Issue #17012: shutil.which() no longer fallbacks to the PATH environment
+ variable if empty path argument is specified. Patch by Serhiy Storchaka.
-- Issue #16597: In buffered and text IO, call close() on the underlying stream
- if invoking flush() fails.
+- Issue #17710: Fix pickle raising a SystemError on bogus input.
-- Issue #16722: In the bytes() constructor, try to call __bytes__ on the
- argument before __index__.
+- Issue #17341: Include the invalid name in the error messages from re about
+ invalid group names.
-- Issue #16602: When a weakref's target was part of a long deallocation
- chain, the object could remain reachable through its weakref even though
- its refcount had dropped to zero.
+- Issue #17702: os.environ now raises KeyError with the original environment
+ variable name (str on UNIX), instead of using the encoded name (bytes on
+ UNIX).
-- Issue #16416: On Mac OS X, operating system data are now always
- encoded/decoded to/from UTF-8/surrogateescape, instead of the locale encoding
- (which may be ASCII if no locale environment variable is set), to avoid
- inconsistencies with os.fsencode() and os.fsdecode() functions which are
- already using UTF-8/surrogateescape.
+- Issue #16163: Make the importlib based version of pkgutil.iter_importers
+ work for submodules. Initial patch by Berker Peksag.
-- Issue #16588: Silence unused-but-set warnings in Python/thread_pthread
+- Issue #16804: Fix a bug in the 'site' module that caused running
+ 'python -S -m site' to incorrectly throw an exception.
-- Issue #16546: Fix: ast.YieldFrom argument is now mandatory.
+- Issue #15480: Remove the deprecated and unused TYPE_INT64 code from marshal.
+ Initial patch by Daniel Riti.
-- Issue #16514: Fix regression causing a traceback when sys.path[0] is None
- (actually, any non-string or non-bytes type).
+- Issue #2118: SMTPException is now a subclass of IOError.
-- Issue #16306: Fix multiple error messages when unknown command line
- parameters where passed to the interpreter. Patch by Hieu Nguyen.
+- Issue #17016: Get rid of possible pointer wraparounds and integer overflows
+ in the re module. Patch by Nickolai Zeldovich.
-- Issue #16215: Fix potential double memory free in str.replace(). Patch
- by Serhiy Storchaka.
+- Issue #16658: add missing return to HTTPConnection.send()
+ Patch by Jeff Knupp.
-- Issue #16453: Fix equality testing of dead weakref objects.
+- Issue #9556: Allowed specifying a time-of-day for a TimedRotatingFileHandler
+ to rotate.
-- Issue #9535: Fix pending signals that have been received but not yet
- handled by Python to not persist after os.fork() in the child process.
+- Issue #14971: unittest test discovery no longer gets confused when a function
+ has a different __name__ than its name in the TestCase class dictionary.
-- Issue #15001: fix segfault on "del sys.modules['__main__']". Patch by Victor
- Stinner.
+- Issue #17487: The wave getparams method now returns a namedtuple rather than
+ a plain tuple.
-- Issue #8271: the utf-8 decoder now outputs the correct number of U+FFFD
- characters when used with the 'replace' error handler on invalid utf-8
- sequences. Patch by Serhiy Storchaka, tests by Ezio Melotti.
+- Issue #17675: socket repr() provides local and remote addresses (if any).
+ Patch by Giampaolo Rodola'
-- Issue #5765: Apply a hard recursion limit in the compiler instead of
- blowing the stack and segfaulting. Initial patch by Andrea Griffini.
+- Issue #17093: Make the ABCs in importlib.abc provide default values or raise
+ reasonable exceptions for their methods to make them more amenable to super()
+ calls.
-- Issue #16402: When slicing a range, fix shadowing of exceptions from
- __index__.
+- Issue #17566: Make importlib.abc.Loader.module_repr() optional instead of an
+ abstractmethod and raising NotImplementedError so as to be ignored by default.
-- Issue #16336: fix input checking in the surrogatepass error handler.
- Patch by Serhiy Storchaka.
+- Issue #17678: Remove the use of deprecated method in http/cookiejar.py.
+ Changing the usage of get_origin_req_host() to origin_req_host.
-- Issue #8401: assigning an int to a bytearray slice (e.g. b[3:4] = 5) now
- raises an error.
+- Issue #17666: Fix reading gzip files with an extra field.
-- Fix segfaults on setting __qualname__ on builtin types and attempting to
- delete it on any type.
+- Issue #16475: Support object instancing, recursion and interned strings
+ in marshal
-- Issue #16345: Fix an infinite loop when ``fromkeys`` on a dict subclass
- received a nonempty dict from the constructor.
+- Issue #17502: Process DEFAULT values in mock side_effect that returns iterator.
-- Issue #16271: Fix strange bugs that resulted from __qualname__ appearing in a
- class's __dict__ and on type.
+- Issue #16795: On the ast.arguments object, unify vararg with varargannotation
+ and kwarg and kwargannotation. Change the column offset of ast.Attribute to be
+ at the attribute name.
-- Issue #6074: Ensure cached bytecode files can always be updated by the
- user that created them, even when the source file is read-only.
+- Issue #17434: Properly raise a SyntaxError when a string occurs between future
+ imports.
-- Issue #14783: Improve int() docstring and switch docstrings for str(),
- range(), and slice() to use multi-line signatures.
+- Issue #17117: Import and @importlib.util.set_loader now set __loader__ when
+ it has a value of None or the attribute doesn't exist.
-- Issue #16160: Subclass support now works for types.SimpleNamespace.
+- Issue #17032: The "global" in the "NameError: global name 'x' is not defined"
+ error message has been removed. Patch by Ram Rachum.
-- Issue #15379: Fix passing of non-BMP characters as integers for the charmap
- decoder (already working as unicode strings). Patch by Serhiy Storchaka.
+- Issue #18080: When building a C extension module on OS X, if the compiler
+ is overriden with the CC environment variable, use the new compiler as
+ the default for linking if LDSHARED is not also overriden. This restores
+ Distutils behavior introduced in 3.2.3 and inadvertently dropped in 3.3.0.
-- Issue #15144: Fix possible integer overflow when handling pointers as integer
- values, by using `Py_uintptr_t` instead of `size_t`. Patch by Serhiy
- Storchaka.
+- Issue #18113: Fixed a refcount leak in the curses.panel module's
+ set_userptr() method. Reported by Atsuo Ishimoto.
-- Issue #15965: Explicitly cast `AT_FDCWD` as (int). Required on Solaris 10
- (which defines `AT_FDCWD` as ``0xffd19553``), harmless on other platforms.
+- Implement PEP 443 "Single-dispatch generic functions".
-- Issue #15839: Convert SystemErrors in `super()` to RuntimeErrors.
+- Implement PEP 435 "Adding an Enum type to the Python standard library".
-- Issue #15846: Fix SystemError which happened when using `ast.parse()` in an
- exception handler on code with syntax errors.
+- Issue #15596: Faster pickling of unicode strings.
-- Issue #15801: Make sure mappings passed to '%' formatting are actually
- subscriptable.
+- Issue #17572: Avoid chained exceptions while passing bad directives to
+ time.strptime(). Initial patch by Claudiu Popa.
-- Issue #15111: __import__ should let ImportError propagate when a module that
- is imported as a side-effect of using fromlist tries to import a module
- that cannot be found.
+- Issue #17435: threading.Timer's __init__ method no longer uses mutable
+ default values for the args and kwargs parameters.
-Library
--------
+- Issue #17526: fix an IndexError raised while passing code without filename to
+ inspect.findsource(). Initial patch by Tyler Doyle.
- Issue #17540: Added style to formatter configuration by dict.