From: R David Murray Date: Wed, 8 Jan 2014 23:14:20 +0000 (-0500) Subject: Merge: Fix verb tense in base64 docs, and the phrasing of a news entry. X-Git-Tag: v3.4.0b3~204 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fdc58fd89753ae5e7e3680e709429e2ac9764f1e;p=python Merge: Fix verb tense in base64 docs, and the phrasing of a news entry. --- fdc58fd89753ae5e7e3680e709429e2ac9764f1e diff --cc Misc/NEWS index cc7e7b7a34,4ad230af6f..475a5c5ad6 --- a/Misc/NEWS +++ b/Misc/NEWS @@@ -1210,1161 -819,588 +1210,1161 @@@ Test test.support was converted to a package. Regression noticed by Zachary Ware. -- Issue #12037: Fix test_email for desktop Windows. +IDLE +---- -- 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 #18873: IDLE now detects Python source code encoding only in comment + lines. -- 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 #18988: The "Tab" key now works when a word is already autocompleted. -- Issue #1666318: Add a test that shutil.copytree() retains directory - permissions. Patch by Catherine Devlin. +Documentation +------------- -- Issue #18357: add tests for dictview set difference. - Patch by Fraser Tweedale. +- Issue #17003: Unified the size argument names in the io module with common + practice. -- 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. +Build +----- -- Fix a fcntl test case on KFreeBSD, Debian #708653 (Petr Salinger). +- Issue #18596: Support the use of address sanity checking in recent versions + of clang and GCC by appropriately marking known false alarms in the small + object allocator. Patch contributed by Dhiru Kholia. -- Issue #18396: Fix spurious test failure in test_signal on Windows when - faulthandler is enabled (Patch by Jeremy Kloth) +Tools/Demos +----------- -- Issue #17046: Fix broken test_executable_without_cwd in test_subprocess. +- Issue #18873: 2to3 and the findnocoding.py script now detect Python source + code encoding only in comment lines. -- 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 #15494: test.support is now a package rather than a module (Initial - patch by Indra Talip) +What's New in Python 3.4.0 Alpha 2? +=================================== -- 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. +Release date: 2013-09-09 -- Issue #18266: test_largefile now works with unittest test discovery and - supports running only selected tests. Patch by Zachary Ware. +Core and Builtins +----------------- -- Issue #17767: test_locale now works with unittest test discovery. - Original patch by Zachary Ware. +- Issue #18942: sys._debugmallocstats() output was damaged on Windows. -- Issue #18375: Assume --randomize when --randseed is used for running the - testsuite. +- Issue #18780: %-formatting now prints value instead of str for + int subclasses when using %d, %i, and %u codes. -- Issue #11185: Fix test_wait4 under AIX. Patch by Sébastien Sablé. +- Issue #18571: Implementation of the PEP 446: file descriptors and file + handles are now created non-inheritable; add functions + os.get/set_inheritable(), os.get/set_handle_inheritable() and + socket.socket.get/set_inheritable(). -- Issue #17691: test_univnewlines now works with unittest test discovery. - Patch by Zachary Ware. +- Issue #11619: The parser and the import machinery do not encode Unicode + filenames anymore on Windows. -- Issue #18094: test_uuid no more reports skipped tests as passed. +- Issue #18808: Non-daemon threads are now automatically joined when + a sub-interpreter is shutdown (it would previously dump a fatal error). -- Issue #11995: test_pydoc doesn't import all sys.path modules anymore. +- Remove supporting for compiling on systems without getcwd(). -Documentation -------------- +- Issue #18774: Remove last bits of GNU PTH thread code and thread_pth.h. -- Issue #19392: Document that `imp.reload()` now also requires `__loader__` to - be set on the module being reloaded. +- Issue #18771: Add optimization to set object lookups to reduce the cost + of hash collisions. The core idea is to inspect a second key/hash pair + for each cache line retrieved. -- Issue #18758: Fixed and improved cross-references. +- Issue #16105: When a signal handler fails to write to the file descriptor + registered with ``signal.set_wakeup_fd()``, report an exception instead + of ignoring the error. -- Issue #18743: Fix references to non-existant "StringIO" module. +- Issue #18722: Remove uses of the "register" keyword in C code. -- Issue #18783: Removed existing mentions of Python long type in docstrings, - error messages and comments. +- Issue #18667: Add missing "HAVE_FCHOWNAT" symbol to posix._have_functions. -- Issue #17701: Improving strftime documentation. +- Issue #16499: Add command line option for isolated mode. -- Issue #18440: Clarify that `hash()` can truncate the value returned from an - object's custom `__hash__()` method. +- Issue #15301: Parsing fd, uid, and gid parameters for builtins + in Modules/posixmodule.c is now far more robust. + +- Issue #18368: PyOS_StdioReadline() no longer leaks memory when realloc() + fail. -- Issue #17953: Mention that you shouldn't replace sys.modules and deleting key - items will cause Python to not be happy. +- Issue #17934: Add a clear() method to frame objects, to help clean up + expensive details (local variables) and break reference cycles. -- Issue #17844: Add links to encoders and decoders for bytes-to-bytes codecs. +- Issue #18780: %-formatting codes %d, %i, and %u now treat int-subclasses + as int (displays value of int-subclass instead of str(int-subclass) ). -- Issue #14097: improve the "introduction" page of the tutorial. +Library +------- -- Issue #17977: The documentation for the cadefault argument's default value - in urllib.request.urlopen() is fixed to match the code. +- Issue #18808: Thread.join() now waits for the underlying thread state to + be destroyed before returning. This prevents unpredictable aborts in + Py_EndInterpreter() when some non-daemon threads are still running. + +- Issue #18458: Prevent crashes with newer versions of libedit. Its readline + emulation has changed from 0-based indexing to 1-based like gnu readline. + +- Issue #18852: Handle case of ``readline.__doc__`` being ``None`` in the new + readline activation code in ``site.py``. + +- Issue #18672: Fixed format specifiers for Py_ssize_t in debugging output in + the _sre module. + +- Issue #18830: inspect.getclasstree() no more produces duplicated entries even + when input list contains duplicates. + +- Issue #18878: sunau.open now supports the context manager protocol. Based on + patches by Claudiu Popa and R. David Murray. + +- Issue #18909: Fix _tkinter.tkapp.interpaddr() on Windows 64-bit, don't cast + 64-bit pointer to long (32 bits). + +- Issue #18876: The FileIO.mode attribute now better reflects the actual mode + under which the file was opened. Patch by Erik Bray. + +- Issue #16853: Add new selectors module. + +- Issue #18882: Add threading.main_thread() function. + +- Issue #18901: The sunau getparams method now returns a namedtuple rather than + a plain tuple. Patch by Claudiu Popa. + +- Issue #17487: The result of the wave getparams method now is pickleable again. + Patch by Claudiu Popa. + +- Issue #18756: os.urandom() now uses a lazily-opened persistent file + descriptor, so as to avoid using many file descriptors when run in + parallel from multiple threads. + +- Issue #18418: After fork(), reinit all threads states, not only active ones. + Patch by A. Jesse Jiryu Davis. + +- Issue #17974: Switch unittest from using getopt to using argparse. + +- Issue #11798: TestSuite now drops references to own tests after execution. + +- Issue #16611: http.cookie now correctly parses the 'secure' and 'httponly' + cookie flags. + +- Issue #11973: Fix a problem in kevent. The flags and fflags fields are now + properly handled as unsigned. + +- Issue #18807: ``pyvenv`` now takes a --copies argument allowing copies + instead of symlinks even where symlinks are available and the default. + +- Issue #18538: ``python -m dis`` now uses argparse for argument processing. + Patch by Michele Orrù. + +- Issue #18394: Close cgi.FieldStorage's optional file. + +- Issue #17702: On error, os.environb now removes suppress the except context + when raising a new KeyError with the original key. + +- Issue #16809: Fixed some tkinter incompabilities with Tcl/Tk 8.6. + +- Issue #16809: Tkinter's splitlist() and split() methods now accept Tcl_Obj + argument. + +- Issue #18324: set_payload now correctly handles binary input. This also + supersedes the previous fixes for #14360, #1717, and #16564. + +- Issue #18794: Add a fileno() method and a closed attribute to select.devpoll + objects. + +- Issue #17119: Fixed integer overflows when processing large strings and tuples + in the tkinter module. + +- Issue #18747: Re-seed OpenSSL's pseudo-random number generator after fork. + A pthread_atfork() parent handler is used to seed the PRNG with pid, time + and some stack data. + +- Issue #8865: Concurrent invocation of select.poll.poll() now raises a + RuntimeError exception. Patch by Christian Schubert. + +- Issue #18777: The ssl module now uses the new CRYPTO_THREADID API of + OpenSSL 1.0.0+ instead of the deprecated CRYPTO id callback function. + +- Issue #18768: Correct doc string of RAND_edg(). Patch by Vajrasky Kok. + +- Issue #18178: Fix ctypes on BSD. dlmalloc.c was compiled twice which broke + malloc weak symbols. + +- Issue #18709: Fix CVE-2013-4238. The SSL module now handles NULL bytes + inside subjectAltName correctly. Formerly the module has used OpenSSL's + GENERAL_NAME_print() function to get the string represention of ASN.1 + strings for ``rfc822Name`` (email), ``dNSName`` (DNS) and + ``uniformResourceIdentifier`` (URI). + +- Issue #18701: Remove support of old CPython versions (<3.0) from C code. + +- Issue #18756: Improve error reporting in os.urandom() when the failure + is due to something else than /dev/urandom not existing (for example, + exhausting the file descriptor limit). + +- Issue #18673: Add O_TMPFILE to os module. O_TMPFILE requires Linux kernel + 3.11 or newer. It's only defined on system with 3.11 uapi headers, too. + +- Issue #18532: Change the builtin hash algorithms' names to lower case names + as promised by hashlib's documentation. + +- Issue #18405: Improve the entropy of crypt.mksalt(). + +- Issue #12015: The tempfile module now uses a suffix of 8 random characters + instead of 6, to reduce the risk of filename collision. The entropy was + reduced when uppercase letters were removed from the charset used to generate + random characters. + +- Issue #18585: Add :func:`textwrap.shorten` to collapse and truncate a + piece of text to a given length. + +- Issue #18598: Tweak exception message for importlib.import_module() to + include the module name when a key argument is missing. + +- Issue #19151: Fix docstring and use of _get_supported_file_loaders() to + reflect 2-tuples. + +- Issue #19152: Add ExtensionFileLoader.get_filename(). + +- Issue #18676: Change 'positive' to 'non-negative' in queue.py put and get + docstrings and ValueError messages. Patch by Zhongyue Luo + +- Fix refcounting issue with extension types in tkinter. + +- Issue #8112: xlmrpc.server's DocXMLRPCServer server no longer raises an error + if methods have annotations; it now correctly displays the annotations. + +- Issue #18600: Added policy argument to email.message.Message.as_string, + and as_bytes and __bytes__ methods to Message. + +- Issue #18671: Output more information when logging exceptions occur. + +- Issue #18621: Prevent the site module's patched builtins from keeping + too many references alive for too long. + +- Issue #4885: Add weakref support to mmap objects. Patch by Valerie Lambert. + +- Issue #8860: Fixed rounding in timedelta constructor. + +- 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 #18920: argparse's default destination for the version action (-v, + --version) has also been changed to stdout, to match the Python executable. + +Tests +----- + +- Issue #18623: Factor out the _SuppressCoreFiles context manager into + test.support. Patch by Valerie Lambert. + +- Issue #12037: Fix test_email for desktop Windows. + +- 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 #16799: Switched from getopt to argparse style in regrtest's argument + parsing. Added more tests for regrtest's argument parsing. + +- 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. + +IDLE +---- + +- Issue #18489: Add tests for SearchEngine. Original patch by Phil Webster. + +Documentation +------------- + +- Issue #18743: Fix references to non-existant "StringIO" module. + +- Issue #18783: Removed existing mentions of Python long type in docstrings, + error messages and comments. + +Build +----- + +- Issue #1584: Provide configure options to override default search paths for + Tcl and Tk when building _tkinter. + +- 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. + +Tools/Demos +----------- + +- Issue #18922: Now The Lib/smtpd.py and Tools/i18n/msgfmt.py scripts write + their version strings to stdout, and not to sderr. + +What's New in Python 3.4.0 Alpha 1? +=================================== + +Release date: 2013-08-03 + +Core and Builtins +----------------- + +- Issue #16741: Fix an error reporting in int(). + +- Issue #17899: Fix rare file descriptor leak in os.listdir(). + +- Issue #10241: Clear extension module dict copies at interpreter shutdown. + Patch by Neil Schemenauer, minimally modified. + +- Issue #9035: ismount now recognises volumes mounted below a drive root + on Windows. Original patch by Atsuo Ishimoto. + +- Issue #18214: Improve finalization of Python modules to avoid setting + their globals to None, in most cases. + +- Issue #18112: PEP 442 implementation (safe object finalization). + +- Issue #18552: Check return value of PyArena_AddPyObject() in + obj2ast_object(). + +- Issue #18560: Fix potential NULL pointer dereference in sum(). + +- 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 #15905: Fix theoretical buffer overflow in handling of sys.argv[0], + prefix and exec_prefix if the operation system does not obey MAXPATHLEN. + +- Issue #18408: Fix many various bugs in code handling errors, especially + on memory allocation failure (MemoryError). + +- Issue #18344: Fix potential ref-leaks in _bufferedreader_read_all(). + +- Issue #18342: Use the repr of a module name when an import fails when using + ``from ... import ...``. + +- Issue #17872: Fix a segfault in marshal.load() when input stream returns + more bytes than requested. + +- Issue #18338: `python --version` now prints version string to stdout, and + not to stderr. Patch by Berker Peksag and Michael Dickens. + +- Issue #18426: Fix NULL pointer dereference in C extension import when + PyModule_GetDef() returns an error. + +- 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 #3329: Implement the PEP 445: Add new APIs to customize Python memory + allocators. + +- Issue #18328: Reorder ops in PyThreadState_Delete*() functions. Now the + tstate is first removed from TLS and then deallocated. + +- Issue #13483: Use VirtualAlloc in obmalloc on Windows. + +- Issue #18184: PyUnicode_FromFormat() and PyUnicode_FromFormatV() now raise + OverflowError when an argument of %c format is out of range. + +- 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.) + +- 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. + +- Issue #18180: Fix ref leak in _PyImport_GetDynLoadWindows(). + +- Issue #18038: SyntaxError raised during compilation sources with illegal + encoding now always contains an encoding name. + +- Issue #17931: Resolve confusion on Windows between pids and process + handles. + +- Tweak the exception message when the magic number or size value in a bytecode + file is truncated. + +- 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 #18065: Don't set __path__ to the package name for frozen packages. + +- Issue #18088: When reloading a module, unconditionally reset all relevant + attributes on the module (e.g. __name__, __loader__, __package__, __file__, + __cached__). + +- Issue #17937: Try harder to collect cyclic garbage at shutdown. + +- Issue #12370: Prevent class bodies from interfering with the __class__ + closure. + +- Issue #17644: Fix a crash in str.format when curly braces are used in square + brackets. + +- Issue #17237: Fix crash in the ASCII decoder on m68k. + +- Issue #17927: Frame objects kept arguments alive if they had been + copied into a cell, even if the cell was cleared. + +- Issue #1545463: At shutdown, defer finalization of codec modules so + that stderr remains usable. + +- Issue #7330: Implement width and precision (ex: "%5.3s") for the format + string of PyUnicode_FromFormat() function, original patch written by Ysj Ray. + +- Issue #1545463: Global variables caught in reference cycles are now + garbage-collected at shutdown. + +- 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). + +- Issue #17408: Avoid using an obsolete instance of the copyreg module when + the interpreter is shutdown and then started again. + +- Issue #5845: Enable tab-completion in the interactive interpreter by + default, thanks to a new sys.__interactivehook__. + +- Issue #17115,17116: Module initialization now includes setting __package__ and + __loader__ attributes to None. + +- Issue #17853: Ensure locals of a class that shadow free variables always win + over the closures. + +- Issue #17863: In the interactive console, don't loop forever if the encoding + can't be fetched from stdin. + +- Issue #17867: Raise an ImportError if __import__ is not found in __builtins__. + +- Issue #18698: Ensure importlib.reload() returns the module out of sys.modules. + +- 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 #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 #17782: Fix undefined behaviour on platforms where + ``struct timespec``'s "tv_nsec" member is not a C long. + +- Issue #17722: When looking up __round__, resolve descriptors. + +- Issue #16061: Speed up str.replace() for replacing 1-character strings. + +- Issue #17715: Fix segmentation fault from raising an exception in a __trunc__ + method. + +- Issue #17643: Add __callback__ attribute to weakref.ref. + +- Issue #16447: Fixed potential segmentation fault when setting __name__ on a + class. + +- Issue #17669: Fix crash involving finalization of generators using yield from. + +- Issue #14439: Python now prints the traceback on runpy failure at startup. + +- Issue #17469: Fix _Py_GetAllocatedBlocks() and sys.getallocatedblocks() + when running on valgrind. + +- Issue #17619: Make input() check for Ctrl-C correctly on Windows. + +- Issue #17357: Add missing verbosity messages for -v/-vv that were lost during + the importlib transition. + +- Issue #17610: Don't rely on non-standard behavior of the C qsort() function. + +- 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 #17328: Fix possible refleak in dict.setdefault. + +- Issue #17275: Corrected class name in init error messages of the C version of + BufferedWriter and BufferedRandom. + +- Issue #7963: Fixed misleading error message that issued when object is + called without arguments. + +- Issue #8745: Small speed up zipimport on Windows. Patch by Catalin Iacob. + +- Issue #5308: Raise ValueError when marshalling too large object (a sequence + with size >= 2**31), instead of producing illegal marshal data. + +- Issue #12983: Bytes literals with invalid \x escape now raise a SyntaxError + and a full traceback including line number. + +- Issue #16967: In function definition, evaluate positional defaults before + keyword-only defaults. + +- Issue #17173: Remove uses of locale-dependent C functions (isalpha() etc.) + in the interpreter. + +- Issue #17137: When an Unicode string is resized, the internal wide character + string (wstr) format is now cleared. + +- Issue #17043: The unicode-internal decoder no longer read past the end of + input buffer. + +- Issue #17098: All modules now have __loader__ set even if they pre-exist the + bootstrapping of importlib. + +- Issue #16979: Fix error handling bugs in the unicode-escape-decode decoder. + +- 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 #10156: In the interpreter's initialization phase, unicode globals + are now initialized dynamically as needed. + +- Issue #16980: Fix processing of escaped non-ascii bytes in the + unicode-escape-decode decoder. + +- Issue #16975: Fix error handling bug in the escape-decode bytes decoder. + +- 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. -Tools/Demos ------------ +- Issue #7317: Display full tracebacks when an error occurs asynchronously. + Patch by Alon Horev with update by Alexey Kachayev. -- Issue #18873: 2to3 and the findnocoding.py script now detect Python source - code encoding only in comment lines. +- Issue #16309: Make PYTHONPATH="" behavior the same as if PYTHONPATH + not set at all. -- Issue #18817: Fix a resource warning in Lib/aifc.py demo. +- Issue #10189: Improve the error reporting of SyntaxErrors related to global + and nonlocal statements. -- Issue #18439: Make patchcheck work on Windows for ACKS, NEWS. +- Fix segfaults on setting __qualname__ on builtin types and attempting to + delete it on any type. -- Issue #18448: Fix a typo in Tools/demo/eiffel.py. +- Issue #14625: Rewrite the UTF-32 decoder. It is now 3x to 4x faster. Patch + written by Serhiy Storchaka. -- Issue #18457: Fixed saving of formulas and complex numbers in - Tools/demo/ss1.py. +- Issue #16345: Fix an infinite loop when ``fromkeys`` on a dict subclass + received a nonempty dict from the constructor. -- Issue #18449: Make Tools/demo/ss1.py work again on Python 3. Patch by - Févry Thibault. +- Issue #16271: Fix strange bugs that resulted from __qualname__ appearing in a + class's __dict__ and on type. -- Issue #15239: Make mkstringprep.py work again on Python 3. +- Issue #12805: Make bytes.join and bytearray.join faster when the separator + is empty. Patch by Serhiy Storchaka. -- Issue #12990: The "Python Launcher" on OSX could not launch python scripts - that have paths that include wide characters. +- Issue #6074: Ensure cached bytecode files can always be updated by the + user that created them, even when the source file is read-only. -Build ------ +- Issue #15958: bytes.join and bytearray.join now accept arbitrary buffer + objects. -- Issue #19356: Avoid using a C variabled named "_self", it's a reserved - word in some C compilers. +- Issue #14783: Improve int() docstring and switch docstrings for str(), + range(), and slice() to use multi-line signatures. -- Issue #19130: Correct PCbuild/readme.txt, Python 3.3 and 3.4 require VS 2010. +- Issue #16160: Subclass support now works for types.SimpleNamespace. -- Issue #16067: Add description into MSI file to replace installer's temporary name. +- Upgrade Unicode data (UCD) to version 6.2. -- Issue #18256: Compilation fix for recent AIX releases. Patch by - David Edelsohn. +- Issue #15379: Fix passing of non-BMP characters as integers for the charmap + decoder (already working as unicode strings). Patch by Serhiy Storchaka. -- Issue #15172: Document NASM 2.10+ as requirement for building OpenSSL 1.0.1 - on Windows. +- 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 #1584: Provide options to override default search paths for - Tcl and Tk when building _tkinter. +- Issue #15965: Explicitly cast `AT_FDCWD` as (int). Required on Solaris 10 + (which defines `AT_FDCWD` as ``0xffd19553``), harmless on other platforms. -- Issue #15663: Tcl/Tk 8.5.15 is now included with the OS X 10.6+ - 64-bit/32-bit installer for 10.6+. 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 #15839: Convert SystemErrors in `super()` to RuntimeErrors. -- Issue #19019: Change the OS X installer build script to use CFLAGS instead - of OPT for special build options. By setting OPT, some compiler-specific - options like -fwrapv were overridden and thus not used, which could result - in broken interpreters when building with clang. +- Issue #15448: Buffered IO now frees the buffer when closed, instead + of when deallocating. +- Issue #15846: Fix SystemError which happened when using `ast.parse()` in an + exception handler on code with syntax errors. -What's New in Python 3.3.2? -=========================== +- Issue #15897: zipimport.c doesn't check return value of fseek(). + Patch by Felipe Cruz. -*Release date: 13-May-2013* +- Issue #15801: Make sure mappings passed to '%' formatting are actually + subscriptable. -Core and Builtins ------------------ +- Issue #15111: __import__ should propagate ImportError when raised as a + side-effect of a module triggered from using fromlist. -- Issue #17237: Fix crash in the ASCII decoder on m68k. +- Issue #15022: Add pickle and comparison support to types.SimpleNamespace. -- Issue #17408: Avoid using an obsolete instance of the copyreg module when - the interpreter is shutdown and then started again. +Library +------- -- Issue #17863: In the interactive console, don't loop forever if the encoding - can't be fetched from stdin. +- Issue #4331: Added functools.partialmethod (Initial patch by Alon Horev) -- Issue #17867: Raise an ImportError if __import__ is not found in __builtins__. +- Issue #13461: Fix a crash in the TextIOWrapper.tell method on 64-bit + platforms. Patch by Yogesh Chaudhari. -- 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 #18681: Fix a NameError in importlib.reload() (noticed by Weizhao Li). -- 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 #14323: Expanded the number of digits in the coefficients for the + RGB -- YIQ conversions so that they match the FCC NTSC versions. -- Issue #17782: Fix undefined behaviour on platforms where - ``struct timespec``'s "tv_nsec" member is not a C long. +- Issue #17998: Fix an internal error in regular expression engine. -- Issue #17715: Fix segmentation fault from raising an exception in a __trunc__ - method. +- 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 #16447: Fixed potential segmentation fault when setting __name__ on a - class. +- Issue #18608: Avoid keeping a strong reference to the locale module + inside the _io module. -- Issue #17669: Fix crash involving finalization of generators using yield from. +- Issue #18619: Fix atexit leaking callbacks registered from sub-interpreters, + and make it GC-aware. -- Issue #17619: Make input() check for Ctrl-C correctly on Windows. +- 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 #17610: Don't rely on non-standard behavior of the C qsort() function. +- Issue #17616: wave.open now supports the context manager protocol. -- Issue #17357: Add missing verbosity output when using -v/-vv. +- Issue #18599: Fix name attribute of _sha1.sha1() object. It now returns + 'SHA1' instead of 'SHA'. -Library -------- +- Issue #13266: Added inspect.unwrap to easily unravel __wrapped__ chains + (initial patch by Daniel Urban and Aaron Iles) -- Issue #17606: Fixed support of encoded byte strings in the XMLGenerator - characters() and ignorableWhitespace() methods. Original patch by Sebastian - Ortiz Vasquez. +- Issue #18561: Skip name in ctypes' _build_callargs() if name is NULL. -- Issue #17732: Ignore distutils.cfg options pertaining to install paths if a - virtual environment is active. +- Issue #18559: Fix NULL pointer dereference error in _pickle module -- Issue #1159051: Back out a fix for handling corrupted gzip files that - broke backwards compatibility. +- Issue #18556: Check the return type of PyUnicode_AsWideChar() in ctype's + U_set(). -- Issue #17915: Fix interoperability of xml.sax with file objects returned by - codecs.open(). +- Issue #17818: aifc.getparams now returns a namedtuple. -- Issue #16601: Restarting iteration over tarfile no more continues from where - it left off. Patch by Michael Birtwell. +- Issue #18549: Eliminate dead code in socket_ntohl() -- 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 #18530: Remove additional stat call from posixpath.ismount. + Patch by Alex Gaynor. -- Issue #12181: select module: Fix struct kevent definition on OpenBSD 64-bit - platforms. Patch by Federico Schwindt. +- Issue #18514: Fix unreachable Py_DECREF() call in PyCData_FromBaseObj() -- Issue #14173: Avoid crashing when reading a signal handler during - interpreter shutdown. +- Issue #9177: Calling read() or write() now raises ValueError, not + AttributeError, on a closed SSL socket. Patch by Senko Rasic. -- Issue #16316: mimetypes now recognizes the .xz and .txz (.tar.xz) extensions. +- Issue #18513: Fix behaviour of cmath.rect w.r.t. signed zeros on OS X 10.8 + + gcc. -- Issue #15902: Fix imp.load_module() accepting None as a file when loading an - extension module. +- Issue #18479: Changed venv Activate.ps1 to make deactivate a function, and + removed Deactivate.ps1. -- Issue #17802: Fix an UnboundLocalError in html.parser. Initial tests by - Thomas Barlow. +- Issue #18480: Add missing call to PyType_Ready to the _elementtree extension. -- Issue #15535: Fix namedtuple pickles which were picking up the OrderedDict - instead of just the underlying tuple. +- Issue #17778: Fix test discovery for test_multiprocessing. (Patch by + Zachary Ware.) -- 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 #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 #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 #17482: functools.update_wrapper (and functools.wraps) now set the + __wrapped__ attribute correctly even if the underlying function has a + __wrapped__ attribute set. -- Issue #17353: Plistlib emitted empty data tags with deeply nested datastructures +- Issue #18431: The new email header parser now decodes RFC2047 encoded words + in structured headers. -- Issue #11714: Use 'with' statements to assure a Semaphore releases a - condition variable. Original patch by Thomas Rachel. +- Issue #18432: The sched module's queue method was incorrectly returning + an iterator instead of a list. -- Issue #17795: Reverted backwards-incompatible change in SysLogHandler with - Unix domain sockets. +- 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 #17555: Fix ForkAwareThreadLock so that size of after fork - registry does not grow exponentially with generation of process. +- Issue #18101: Tcl.split() now process strings nested in a tuple as it + do with byte strings. -- Issue #17707: multiprocessing.Queue's get() method does not block for short - timeouts. +- Issue #18116: getpass was always getting an error when testing /dev/tty, + and thus was always falling back to stdin, and would then raise an exception + if stdin could not be used (such as /dev/null). It also leaked an open file. + All of these issues are now fixed. -- Isuse #17720: Fix the Python implementation of pickle.Unpickler to correctly - process the APPENDS opcode when it is used on non-list objects. +- Issue #17198: Fix a NameError in the dbm module. Patch by Valentina + Mukhamedzhanova. -- Issue #17012: shutil.which() no longer fallbacks to the PATH environment - variable if empty path argument is specified. Patch by Serhiy Storchaka. +- Issue #18013: Fix cgi.FieldStorage to parse the W3C sample form. -- Issue #17710: Fix pickle raising a SystemError on bogus input. +- Issue #18020: improve html.escape speed by an order of magnitude. + Patch by Matt Bryant. -- Issue #17341: Include the invalid name in the error messages from re about - invalid group names. +- Issue #18347: ElementTree's html serializer now preserves the case of + closing tags. -- 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 #17261: Ensure multiprocessing's proxies use proper address. -- Issue #16163: Make the importlib based version of pkgutil.iter_importers - work for submodules. Initial patch by Berker Peksag. +- 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 #16804: Fix a bug in the 'site' module that caused running - 'python -S -m site' to incorrectly throw an exception. +- Issue #17097: Make multiprocessing ignore EINTR. -- Issue #17016: Get rid of possible pointer wraparounds and integer overflows - in the re module. Patch by Nickolai Zeldovich. +- Issue #18339: Negative ints keys in unpickler.memo dict no longer cause a + segfault inside the _pickle C extension. -- Issue #16658: add missing return to HTTPConnection.send() - Patch by Jeff Knupp. +- 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 #14971: unittest test discovery no longer gets confused when a function - has a different __name__ than its name in the TestCase class dictionary. +- 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 #17678: Fix DeprecationWarning in the http/cookiejar.py by changing the - usage of get_origin_req_host() to origin_req_host. +- 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 #17666: Fix reading gzip files with an extra field. +- Issue #14360: encode_quopri can now be successfully used as an encoder + when constructing a MIMEApplication object. -- Issue #17502: Process DEFAULT values in mock side_effect that returns iterator. - Patch by Michael Foord. +- Issue #11390: Add -o and -f command line options to the doctest CLI to + specify doctest options (and convert it to using argparse). -- Issue #17572: Avoid chained exceptions while passing bad directives to - time.strptime(). Initial patch by Claudiu Popa. +- 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. -- Issue #17435: threading.Timer's __init__ method no longer uses mutable - default values for the args and kwargs parameters. +- Issue #11016: Add C implementation of the stat module as _stat. -- Issue #17526: fix an IndexError raised while passing code without filename to - inspect.findsource(). Initial patch by Tyler Doyle. +- Issue #18248: Fix libffi build on AIX. -- Issue #16550: Update the opcode descriptions of pickletools to use unsigned - integers where appropriate. Initial patch by Serhiy Storchaka. +- Issue #18259: Declare sethostname in socketmodule.c for AIX -IDLE ----- +- 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 #17838: Allow sys.stdin to be reassigned. +- 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 #13495: Avoid loading the color delegator twice in IDLE. +- Issue #18076: Introduce importlib.util.decode_source(). +- Issue #18357: add tests for dictview set difference. + Patch by Fraser Tweedale. -- Issue #17798: Allow IDLE to edit new files when specified on command line. +- importlib.abc.SourceLoader.get_source() no longer changes SyntaxError or + UnicodeDecodeError into ImportError. -- Issue #14735: Update IDLE docs to omit "Control-z on Windows". +- Issue #18058, 18057: Make the namespace package loader meet the + importlib.abc.InspectLoader ABC, allowing for namespace packages to work with + runpy. -- Issue #17585: Fixed IDLE regression. Now closes when using exit() or quit(). +- Issue #17177: The imp module is pending deprecation. -- Issue #17657: Show full Tk version in IDLE's about dialog. - Patch by Todd Rovito. +- 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 #17613: Prevent traceback when removing syntax colorizer in IDLE. +- Issue #18194: Introduce importlib.util.cache_from_source() and + source_from_cache() while documenting the equivalent functions in imp as + deprecated. -- Issue #1207589: Backwards-compatibility patch for right-click menu in IDLE. +- Issue #17907: Document imp.new_module() as deprecated in favour of + types.ModuleType. -- Issue #16887: IDLE now accepts Cancel in tabify/untabify dialog box. +- Issue #18192: Introduce importlib.util.MAGIC_NUMBER and document as deprecated + imp.get_magic(). -- Issue #17625: In IDLE, close the replace dialog after it is used. +- Issue #18149: Add filecmp.clear_cache() to manually clear the filecmp cache. + Patch by Mark Levitt -- Issue #14254: IDLE now handles readline correctly across shell restarts. +- Issue #18193: Add importlib.reload(). -- Issue #17614: IDLE no longer raises exception when quickly closing a file. +- Issue #18157: Stop using imp.load_module() in pydoc. -- Issue #6698: IDLE now opens just an editor window when configured to do so. +- Issue #16102: Make uuid._netbios_getnode() work again on Python 3. -- Issue #8900: Using keyboard shortcuts in IDLE to open a file no longer - raises an exception. +- Issue #17134: Add ssl.enum_cert_store() as interface to Windows' cert store. -- Issue #6649: Fixed missing exit status in IDLE. Patch by Guilherme Polo. +- Issue #18143: Implement ssl.get_default_verify_paths() in order to debug + the default locations for cafile and capath. -Tests ------ +- Issue #17314: Move multiprocessing.forking over to importlib. -- Issue #17833: Fix test_gdb failures seen on machines where debug symbols - for glibc are available (seen on PPC64 Linux). +- Issue #11959: SMTPServer and SMTPChannel now take an optional map, use of + which avoids affecting global state. -- Issue #7855: Add tests for ctypes/winreg for issues found in IronPython. - Initial patch by Dino Viehland. +- 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 #17712: Fix test_gdb failures on Ubuntu 13.04. +- Issue #18089: Implement importlib.abc.InspectLoader.load_module. -- Issue #17835: Fix test_io when the default OS pipe buffer size is larger - than one million bytes. +- 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 #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 #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 #12820: add tests for the xml.dom.minicompat module. - Patch by John Chandler and Phil Connell. +- Issue #18070: Have importlib.util.module_for_loader() set attributes + unconditionally in order to properly support reloading. -- Issue #17790: test_set 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 #17789: test_random 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 #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 #17779: test_osx_env now works with unittest test discovery. - Patch by Zachary Ware. ++- Issue #18011: As was originally intended, base64.b32decode() now raises a ++ binascii.Error if there are non-b32-alphabet characters present in the input ++ string, instead of a TypeError. -- Issue #17766: test_iterlen now works with unittest test discovery. - Patch by Zachary Ware. +- Issue #18072: Implement importlib.abc.InspectLoader.get_code() and + importlib.abc.ExecutionLoader.get_code(). -- Issue #17690: test_time now works with unittest test discovery. - Patch by Zachary Ware. +- Issue #8240: Set the SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER flag on SSL + sockets. -- Issue #17692: test_sqlite now works with unittest test discovery. - Patch by Zachary Ware. +- Issue #17269: Workaround for socket.getaddrinfo crash on MacOS X + with port None or "0" and flags AI_NUMERICSERV. -- Issue #17843: Removed bz2 test data file that was triggering false-positive - virus warnings with certain antivirus software. +- Issue #16986: ElementTree now correctly parses a string input not only when + an internal XML encoding is UTF-8 or US-ASCII. -Documentation -------------- +- Issue #17996: socket module now exposes AF_LINK constant on BSD and OSX. -- Issue #15940: Specify effect of locale on time functions. +- Issue #17900: Allowed pickling of recursive OrderedDicts. Decreased pickled + size and pickling time. -- Issue #6696: add documentation for the Profile objects, and improve - profile/cProfile docs. Patch by Tom Pinckney. +- Issue #17914: Add os.cpu_count(). Patch by Yogesh Chaudhari, based on an + initial patch by Trent Nelson. -- Issue #17915: Fix interoperability of xml.sax with file objects returned by - codecs.open(). +- Issue #17812: Fixed quadratic complexity of base64.b32encode(). + Optimize base64.b32encode() and base64.b32decode() (speed up to 3x). -Build ------ +- Issue #17980: Fix possible abuse of ssl.match_hostname() for denial of + service using certificates with many wildcards (CVE-2013-2099). -- Issue #17547: In configure, explicitly pass -Wformat for the benefit for GCC - 4.8. +- Issue #15758: Fix FileIO.readall() so it no longer has O(n**2) complexity. -- Issue #17962: Build with OpenSSL 1.0.1e on Windows. +- Issue #14596: The struct.Struct() objects now use a more compact + implementation. +- Issue #17981: logging's SysLogHandler now closes the socket when it catches + socket OSErrors. -What's New in Python 3.3.1? -=========================== +- Issue #17964: Fix os.sysconf(): the return type of the C sysconf() function + is long, not int. -*Release date: 07-Apr-2013* +- Fix typos in the multiprocessing module. -Build ------ +- Issue #17754: Make ctypes.util.find_library() independent of the locale. -- Issue #17550: Fix the --enable-profiling configure switch. +- Issue #17968: Fix memory leak in os.listxattr(). -IDLE -------- +- Issue #17606: Fixed support of encoded byte strings in the XMLGenerator + characters() and ignorableWhitespace() methods. Original patch by Sebastian + Ortiz Vasquez. -- Issue #17625: In IDLE, close the replace dialog after it is used. +- Issue #17732: Ignore distutils.cfg options pertaining to install paths if a + virtual environment is active. +- Issue #17915: Fix interoperability of xml.sax with file objects returned by + codecs.open(). -What's New in Python 3.3.1 release candidate 1? -=============================================== +- Issue #16601: Restarting iteration over tarfile really restarts rather + than continuing from where it left off. Patch by Michael Birtwell. -*Release date: 24-Mar-2013* +- 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. -Core and Builtins ------------------ +- Issue #12181: select module: Fix struct kevent definition on OpenBSD 64-bit + platforms. Patch by Federico Schwindt. -- Issue #17328: Fix possible refleak in dict.setdefault. +- 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 #17223: Fix PyUnicode_FromUnicode() for string of 1 character outside - the range U+0000-U+10ffff. +- Issue #13831: Embed stringification of remote traceback in local + traceback raised when pool task raises an exception. -- Issue #1692335: Move initial args assignment to - BaseException.__new__ to help pickling of naive subclasses. +- Issue #15528: Add weakref.finalize to support finalization using + weakref callbacks. -- Issue #17275: Corrected class name in init error messages of the C version of - BufferedWriter and BufferedRandom. +- Issue #14173: Avoid crashing when reading a signal handler during + interpreter shutdown. -- Issue #7963: Fixed misleading error message that issued when object is - called without arguments. +- Issue #15902: Fix imp.load_module() accepting None as a file when loading an + extension module. -- Issue #5308: Raise ValueError when marshalling too large object (a sequence - with size >= 2**31), instead of producing illegal marshal data. +- 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 #12983: Bytes literals with invalid \x escape now raise a SyntaxError - and a full traceback including line number. +- Issue #14679: add an __all__ (that contains only HTMLParser) to html.parser. -- Issue #17173: Remove uses of locale-dependent C functions (isalpha() etc.) - in the interpreter. +- Issue #17802: Fix an UnboundLocalError in html.parser. Initial tests by + Thomas Barlow. -- Issue #17137: When an Unicode string is resized, the internal wide character - string (wstr) format is now cleared. +- 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 #17043: The unicode-internal decoder no longer read past the end of - input buffer. +- Issue #17804: New function ``struct.iter_unpack`` allows for streaming + struct unpacking. -- Issue #17098: All modules now have __loader__ set even if they pre-exist the - bootstrapping of importlib. +- Issue #17830: When keyword.py is used to update a keyword file, it now + preserves the line endings of the original file. -- Issue #16979: Fix error handling bugs 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 #10156: In the interpreter's initialization phase, unicode globals - are now initialized dynamically as needed. +- Issue #17353: Plistlib emitted empty data tags with deeply nested datastructures -- Issue #16980: Fix processing of escaped non-ascii bytes in the - unicode-escape-decode decoder. +- Issue #11714: Use 'with' statements to assure a Semaphore releases a + condition variable. Original patch by Thomas Rachel. -- Issue #16975: Fix error handling bug in the escape-decode bytes decoder. +- 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 #14850: Now a charmap decoder treats U+FFFE as "undefined mapping" - in any mapping, not only in a string. +- Issue #17795: Reverted backwards-incompatible change in SysLogHandler with + Unix domain sockets. -- 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 #16694: Add a pure Python implementation of the operator module. + Patch by Zachary Ware. -- Issue #16906: Fix a logic error that prevented most static strings from being - cleared. +- Issue #11182: remove the unused and undocumented pydoc.Scanner class. + Patch by Martin Morrison. -- Issue #11461: Fix the incremental UTF-16 decoder. Original patch by - Amaury Forgeot d'Arc. +- Issue #17741: Add ElementTree.XMLPullParser, an event-driven parser for + non-blocking applications. -- Issue #16856: Fix a segmentation fault from calling repr() on a dict with - a key whose repr raise an exception. +- Issue #17555: Fix ForkAwareThreadLock so that size of after fork + registry does not grow exponentially with generation of process. -- Issue #16367: Fix FileIO.readall() on Windows for files larger than 2 GB. +- Issue #17707: fix regression in multiprocessing.Queue's get() method where + it did not block for short timeouts. -- 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 #17720: Fix the Python implementation of pickle.Unpickler to correctly + process the APPENDS opcode when it is used on non-list objects. -- Issue #16761: Calling int() with base argument only now raises TypeError. +- Issue #17012: shutil.which() no longer falls back to the PATH environment + variable if an empty path argument is specified. Patch by Serhiy Storchaka. -- 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 #17710: Fix pickle raising a SystemError on bogus input. -- Issue #14420: Support the full DWORD (unsigned long) range in Py2Reg - when passed a REG_DWORD value. Fixes OverflowError in winreg.SetValueEx. +- Issue #17341: Include the invalid name in the error messages from re about + invalid group names. -- Issue #16597: In buffered and text IO, call close() on the underlying stream - if invoking flush() fails. +- 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 #16722: In the bytes() constructor, try to call __bytes__ on the - argument before __index__. +- Issue #16163: Make the importlib based version of pkgutil.iter_importers + work for submodules. Initial patch by Berker Peksag. -- 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 #16804: Fix a bug in the 'site' module that caused running + 'python -S -m site' to incorrectly throw an exception. -- 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 #15480: Remove the deprecated and unused TYPE_INT64 code from marshal. + Initial patch by Daniel Riti. -- Issue #16588: Silence unused-but-set warnings in Python/thread_pthread +- Issue #2118: SMTPException is now a subclass of OSError. -- Issue #16546: Fix: ast.YieldFrom argument is now mandatory. +- Issue #17016: Get rid of possible pointer wraparounds and integer overflows + in the re module. Patch by Nickolai Zeldovich. -- Issue #16514: Fix regression causing a traceback when sys.path[0] is None - (actually, any non-string or non-bytes type). +- Issue #16658: add missing return to HTTPConnection.send() + Patch by Jeff Knupp. -- Issue #16306: Fix multiple error messages when unknown command line - parameters where passed to the interpreter. Patch by Hieu Nguyen. +- Issue #9556: the logging package now allows specifying a time-of-day for a + TimedRotatingFileHandler to rotate. -- Issue #16215: Fix potential double memory free in str.replace(). Patch - by Serhiy Storchaka. +- 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 #16453: Fix equality testing of dead weakref objects. +- Issue #17487: The wave getparams method now returns a namedtuple rather than + a plain tuple. -- 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 #17675: socket repr() provides local and remote addresses (if any). + Patch by Giampaolo Rodola' -- Issue #15001: fix segfault on "del sys.modules['__main__']". Patch by Victor - Stinner. +- 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 #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 #17566: Make importlib.abc.Loader.module_repr() optional instead of an + abstractmethod; now it raises NotImplementedError so as to be ignored by default. -- Issue #5765: Apply a hard recursion limit in the compiler instead of - blowing the stack and segfaulting. Initial patch by Andrea Griffini. +- Issue #17678: Remove the use of deprecated method in http/cookiejar.py by + changing the call to get_origin_req_host() to origin_req_host. -- Issue #16402: When slicing a range, fix shadowing of exceptions from - __index__. +- Issue #17666: Fix reading gzip files with an extra field. -- Issue #16336: fix input checking in the surrogatepass error handler. - Patch by Serhiy Storchaka. +- Issue #16475: Support object instancing, recursion and interned strings + in marshal -- Issue #8401: assigning an int to a bytearray slice (e.g. b[3:4] = 5) now - raises an error. +- Issue #17502: Process DEFAULT values in mock side_effect that returns iterator. -- Fix segfaults on setting __qualname__ on builtin types and attempting to - delete it on any 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 #16345: Fix an infinite loop when ``fromkeys`` on a dict subclass - received a nonempty dict from the constructor. +- Issue #17434: Properly raise a SyntaxError when a string occurs between future + imports. -- Issue #16271: Fix strange bugs that resulted from __qualname__ appearing in a - class's __dict__ and on type. +- 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 #6074: Ensure cached bytecode files can always be updated by the - user that created them, even when the source file is read-only. +- Issue #17032: The "global" in the "NameError: global name 'x' is not defined" + error message has been removed. Patch by Ram Rachum. -- Issue #14783: Improve int() docstring and switch docstrings for str(), - range(), and slice() to use multi-line signatures. +- 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 #16160: Subclass support now works for types.SimpleNamespace. +- Issue #18113: Fixed a refcount leak in the curses.panel module's + set_userptr() method. Reported by Atsuo Ishimoto. -- Issue #15379: Fix passing of non-BMP characters as integers for the charmap - decoder (already working as unicode strings). Patch by Serhiy Storchaka. +- Implement PEP 443 "Single-dispatch generic functions". -- 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. +- Implement PEP 435 "Adding an Enum type to the Python standard library". -- Issue #15965: Explicitly cast `AT_FDCWD` as (int). Required on Solaris 10 - (which defines `AT_FDCWD` as ``0xffd19553``), harmless on other platforms. +- Issue #15596: Faster pickling of unicode strings. -- Issue #15839: Convert SystemErrors in `super()` to RuntimeErrors. +- Issue #17572: Avoid chained exceptions when passing bad directives to + time.strptime(). Initial patch by Claudiu Popa. -- Issue #15846: Fix SystemError which happened when using `ast.parse()` in an - exception handler on code with syntax errors. +- Issue #17435: threading.Timer's __init__ method no longer uses mutable + default values for the args and kwargs parameters. -- Issue #15801: Make sure mappings passed to '%' formatting are actually - subscriptable. +- Issue #17526: fix an IndexError raised while passing code without filename to + inspect.findsource(). Initial patch by Tyler Doyle. -- 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 #17540: Added style parameter to logging formatter configuration by dict. -Library -------- +- Issue #16692: The ssl module now supports TLS 1.1 and TLS 1.2. Initial + patch by Michele Orrù. -- Issue #17540: Added style to formatter configuration by dict. +- Issue #17025: multiprocessing: Reduce Queue and SimpleQueue contention. - Issue #17536: Add to webbrowser's browser list: www-browser, x-www-browser, iceweasel, iceape.