[Python-Dev] What's New editing
Serhiy Storchaka
storchaka at gmail.com
Mon Jul 6 20:45:01 CEST 2015
On 05.07.15 20:52, R. David Murray wrote:
> Just so people aren't caught unawares, it is very unlikely that I will have
> time to be the final editor on "What's New for 3.5" they way I was for 3.3 and
> 3.4. I've tried to encourage people to keep What's New up to date, but
> *someone* should make a final editing pass. Ideally they'd do at least the
> research Serhiy did last year on checking that there's a mention for all of the
> versionadded and versionchanged 3.5's in the docs. Even better would be to
> review the NEWS and/or commit history...but *that* is a really big job these
> days....
Many thanks you David for your invaluable work.
Here is 3.5 NEWS file cleaned from duplicates in 3.4 NEWS file (i.e.
from entries about merged bug fixes). It is much less than unfiltered
NEWS file. Hope this will help volunteers.
-------------- next part --------------
+++++++++++
Python News
+++++++++++
What's New in Python 3.6.0 alpha 1?
===================================
Release date: XXXX-XX-XX
Core and Builtins
-----------------
Library
-------
- Issue #24426: Fast searching optimization in regular expressions now works
for patterns that starts with capturing groups. Fast searching optimization
now can't be disabled at compile time.
What's New in Python 3.5.0 beta 4?
==================================
Release date: 2015-07-26
Core and Builtins
-----------------
- Issue #24569: Make PEP 448 dictionary evaluation more consistent.
Library
-------
What's New in Python 3.5.0 beta 3?
==================================
Release date: 2015-07-05
Core and Builtins
-----------------
- Upgrade to Unicode 8.0.0.
- Issue #24345: Add Py_tp_finalize slot for the stable ABI.
- Issue #24400: Introduce a distinct type for PEP 492 coroutines; add
types.CoroutineType, inspect.getcoroutinestate, inspect.getcoroutinelocals;
coroutines no longer use CO_GENERATOR flag; sys.set_coroutine_wrapper
works only for 'async def' coroutines; inspect.iscoroutine no longer
uses collections.abc.Coroutine, it's intended to test for pure 'async def'
coroutines only; add new opcode: GET_YIELD_FROM_ITER; fix generators wrapper
used in types.coroutine to be instance of collections.abc.Generator;
collections.abc.Awaitable and collections.abc.Coroutine can no longer
be used to detect generator-based coroutines--use inspect.isawaitable
instead.
- Issue #24450: Add gi_yieldfrom to generators and cr_await to coroutines.
Contributed by Benno Leslie and Yury Selivanov.
- Issue #19235: Add new RecursionError exception. Patch by Georg Brandl.
Library
-------
- Issue #24522: Fix possible integer overflow in json accelerator module.
- Issue #24408: Fixed AttributeError in measure() and metrics() methods of
tkinter.Font.
- Issue #14373: C implementation of functools.lru_cache() now can be used with
methods.
- Issue #8232: webbrowser support incomplete on Windows. Patch by Brandon
Milam
- Issue #24347: Set KeyError if PyDict_GetItemWithError returns NULL.
- Issue #24348: Drop superfluous incref/decref.
- Issue #24359: Check for changed OrderedDict size during iteration.
- Issue #24368: Support keyword arguments in OrderedDict methods.
- Issue #24362: Simplify the C OrderedDict fast nodes resize logic.
- Issue #24377: Fix a ref leak in OrderedDict.__repr__.
- Issue #24369: Defend against key-changes during iteration.
Tests
-----
- Issue #24373: _testmultiphase and xxlimited now use tp_traverse and
tp_finalize to avoid reference leaks encountered when combining tp_dealloc
with PyType_FromSpec (see issue #16690 for details)
Documentation
-------------
- Issue #24458: Update documentation to cover multi-phase initialization for
extension modules (PEP 489). Patch by Petr Viktorin.
Build
-----
What's New in Python 3.5.0 beta 2?
==================================
Release date: 2015-05-31
Core and Builtins
-----------------
- Issue #24284: The startswith and endswith methods of the str class no longer
return True when finding the empty string and the indexes are completely out
of range.
- Issue #24328: Fix importing one character extension modules.
- Issue #11205: In dictionary displays, evaluate the key before the value.
- Issue #24285: Fixed regression that prevented importing extension modules
from inside packages. Patch by Petr Viktorin.
Library
-------
- Issue #24270: Add math.isclose() and cmath.isclose() functions as per PEP 485.
Contributed by Chris Barker and Tal Einat.
- Issue #16991: Add a C implementation of OrderedDict.
- Issue #23934: Fix inspect.signature to fail correctly for builtin types
lacking signature information. Initial patch by James Powell.
What's New in Python 3.5.0 beta 1?
==================================
Release date: 2015-05-24
Core and Builtins
-----------------
- Issue #24276: Fixed optimization of property descriptor getter.
- Issue #24268: PEP 489: Multi-phase extension module initialization.
Patch by Petr Viktorin.
- Issue #23359: Optimize set object internals by specializing the
hash table search into a lookup function and an insert function.
- Issue #23955: Add pyvenv.cfg option to suppress registry/environment
lookup for generating sys.path on Windows.
- Issue #15027: The UTF-32 encoder is now 3x to 7x faster.
- Issue #23290: Optimize set_merge() for cases where the target is empty.
(Contributed by Serhiy Storchaka.)
- Issue #2292: PEP 448: Additional Unpacking Generalizations.
- Issue #23910: Optimize property() getter calls. Patch by Joe Jevnik.
- Issue #23911: Move path-based importlib bootstrap code to a separate
frozen module.
- Issue #24192: Fix namespace package imports.
- Issue #9951: Added a hex() method to bytes, bytearray, and memoryview.
- Issue #22906: PEP 479: Change StopIteration handling inside generators.
- Issue #24017: PEP 492: Coroutines with async and await syntax.
Library
-------
- Issue #14373: Added C implementation of functools.lru_cache(). Based on
patches by Matt Joiner and Alexey Kachayev.
- Issue 24230: The tempfile module now accepts bytes for prefix, suffix and dir
parameters and returns bytes in such situations (matching the os module APIs).
- Issue #22189: collections.UserString now supports __getnewargs__(),
__rmod__(), casefold(), format_map(), isprintable(), and maketrans().
Patch by Joe Jevnik.
- Issue 24244: Prevents termination when an invalid format string is
encountered on Windows in strftime.
- Issue #23973: PEP 484: Add the typing module.
- Issue #23086: The collections.abc.Sequence() abstract base class added
*start* and *stop* parameters to the index() mixin.
Patch by Devin Jeanpierre.
- Issue #20035: Replaced the ``tkinter._fix`` module used for setting up the
Tcl/Tk environment on Windows with a private function in the ``_tkinter``
module that makes no permanent changes to the environment.
- Issue #15836: assertRaises(), assertRaisesRegex(), assertWarns() and
assertWarnsRegex() assertments now check the type of the first argument
to prevent possible user error. Based on patch by Daniel Wagner-Hall.
- Issue #9858: Add missing method stubs to _io.RawIOBase. Patch by Laura
Rupprecht.
- Issue #22955: attrgetter, itemgetter and methodcaller objects in the operator
module now support pickling. Added readable and evaluable repr for these
objects. Based on patch by Josh Rosenberg.
- Issue #23780: Improved error message in os.path.join() with single argument.
- Issue #13866: *quote_via* argument added to urllib.parse.urlencode.
- Issue #20098: New mangle_from policy option for email, default True
for compat32, but False for all other policies.
- Issue #24211: The email library now supports RFC 6532: it can generate
headers using utf-8 instead of encoded words.
- Issue #16314: Added support for the LZMA compression in distutils.
- Issue #21804: poplib now supports RFC 6856 (UTF8).
- Issue #18682: Optimized pprint functions for builtin scalar types.
- Issue #22027: smtplib now supports RFC 6531 (SMTPUTF8).
- Issue #23488: Random generator objects now consume 2x less memory on 64-bit.
- Issue #1322: platform.dist() and platform.linux_distribution() functions are
now deprecated. Initial patch by Vajrasky Kok.
- Issue #22486: Added the math.gcd() function. The fractions.gcd() function now is
deprecated. Based on patch by Mark Dickinson.
- Issue #24064: Property() docstrings are now writeable.
(Patch by Berker Peksag.)
- Issue #22681: Added support for the koi8_t encoding.
- Issue #22682: Added support for the kz1048 encoding.
- Issue #21795: smtpd now supports the 8BITMIME extension whenever
the new *decode_data* constructor argument is set to False.
- Issue #24155: optimize heapq.heapify() for better cache performance
when heapifying large lists.
- Issue #21800: imaplib now supports RFC 5161 (enable), RFC 6855
(utf8/internationalized email) and automatically encodes non-ASCII
usernames and passwords to UTF8.
- Issue #20274: When calling a _sqlite.Connection, it now complains if passed
any keyword arguments. Previously it silently ignored them.
- Issue #24134: assertRaises(), assertRaisesRegex(), assertWarns() and
assertWarnsRegex() checks now emits a deprecation warning when callable is
None or keyword arguments except msg is passed in the context manager mode.
- Issue #24018: Add a collections.abc.Generator abstract base class.
Contributed by Stefan Behnel.
- Issue #23880: Tkinter's getint() and getdouble() now support Tcl_Obj.
Tkinter's getdouble() now supports any numbers (in particular int).
- Issue #22619: Added negative limit support in the traceback module.
Based on patch by Dmitry Kazakov.
- Issue #17445: add difflib.diff_bytes() to support comparison of
byte strings (fixes a regression from Python 2).
- Issue #23917: Fall back to sequential compilation when ProcessPoolExecutor
doesn't exist. Patch by Claudiu Popa.
- Fix asyncio issue 235: LifoQueue and PriorityQueue's put didn't
increment unfinished tasks (this bug was introduced when
JoinableQueue was merged with Queue).
- Issue #23887: urllib.error.HTTPError now has a proper repr() representation.
Patch by Berker Peksag.
- Issue 24178: asyncio.Lock, Condition, Semaphore, and BoundedSemaphore
support new 'async with' syntax. Contributed by Yury Selivanov.
- Issue 24179: Support 'async for' for asyncio.StreamReader.
Contributed by Yury Selivanov.
- Issue 24184: Add AsyncIterator and AsyncIterable ABCs to
collections.abc. Contributed by Yury Selivanov.
- Issue 22547: Implement informative __repr__ for inspect.BoundArguments.
Contributed by Yury Selivanov.
- Issue 24190: Implement inspect.BoundArgument.apply_defaults() method.
Contributed by Yury Selivanov.
- Issue 20691: Add 'follow_wrapped' argument to
inspect.Signature.from_callable() and inspect.signature().
Contributed by Yury Selivanov.
- Issue 24248: Deprecate inspect.Signature.from_function() and
inspect.Signature.from_builtin().
IDLE
----
Tests
-----
- Issue #9517: Move script_helper into the support package.
Patch by Christie Wilson.
Documentation
-------------
- Issue #24077: Fix typo in man page for -I command option: -s, not -S
Tools/Demos
-----------
- Issue #24000: Improved Argument Clinic's mapping of converters to legacy
"format units". Updated the documentation to match.
- Issue #24001: Argument Clinic converters now use accept={type}
instead of types={'type'} to specify the types the converter accepts.
What's New in Python 3.5.0 alpha 4?
===================================
Release date: 2015-04-19
Core and Builtins
-----------------
- Issue #22980: Under Linux, GNU/KFreeBSD and the Hurd, C extensions now include
the architecture triplet in the extension name, to make it easy to test builds
for different ABIs in the same working tree. Under OS X, the extension name
now includes PEP 3149-style information.
- Issue #22631: Added Linux-specific socket constant CAN_RAW_FD_FRAMES.
Patch courtesy of Joe Jevnik.
- Issue #23731: Implement PEP 488: removal of .pyo files.
- Issue #23726: Don't enable GC for user subclasses of non-GC types that
don't add any new fields. Patch by Eugene Toder.
- Issue #23466: %c, %o, %x, and %X in bytes formatting now raise TypeError on
non-integer input.
Library
-------
- Issue #16914: new debuglevel 2 in smtplib adds timestamps to debug output.
- Issue #7159: urllib.request now supports sending auth credentials
automatically after the first 401. This enhancement is a superset of the
enhancement from issue #19494 and supersedes that change.
- Issue #23703: Fix a regression in urljoin() introduced in 901e4e52b20a.
Patch by Demian Brecht.
- Issue #4254: Adds _curses.update_lines_cols() Patch by Arnon Yaari
- Issue 19933: Provide default argument for ndigits in round. Patch by
Vajrasky Kok.
- Issue #23193: Add a numeric_owner parameter to
tarfile.TarFile.extract and tarfile.TarFile.extractall. Patch by
Michael Vogt and Eric Smith.
- Issue #23342: Add a subprocess.run() function than returns a CalledProcess
instance for a more consistent API than the existing call* functions.
- Issue #21217: inspect.getsourcelines() now tries to compute the start and end
lines from the code object, fixing an issue when a lambda function is used as
decorator argument. Patch by Thomas Ballinger and Allison Kaptur.
- Issue #21116: Avoid blowing memory when allocating a multiprocessing shared
array that's larger than 50% of the available RAM. Patch by Médéric Boquien.
- Issue #23464: Removed deprecated asyncio JoinableQueue.
- Issue #23529: Limit the size of decompressed data when reading from
GzipFile, BZ2File or LZMAFile. This defeats denial of service attacks
using compressed bombs (i.e. compressed payloads which decompress to a huge
size). Patch by Martin Panter and Nikolaus Rath.
- Issue #21859: Added Python implementation of io.FileIO.
- Issue #10838: The subprocess now module includes SubprocessError and
TimeoutError in its list of exported names for the users wild enough
to use ``from subprocess import *``.
- Issue #23411: Added DefragResult, ParseResult, SplitResult, DefragResultBytes,
ParseResultBytes, and SplitResultBytes to urllib.parse.__all__.
Patch by Martin Panter.
- Issue #23853: :meth:`socket.socket.sendall` does no more reset the socket
timeout each time data is sent successfuly. The socket timeout is now the
maximum total duration to send all data.
- Issue #22721: An order of multiline pprint output of set or dict containing
orderable and non-orderable elements no longer depends on iteration order of
set or dict.
- Issue #10590: xml.sax.parseString() now supports string argument.
- Issue #15582: inspect.getdoc() now follows inheritance chains.
- Issue #2175: SAX parsers now support a character stream of InputSource object.
- Issue #23618: :meth:`socket.socket.connect` now waits until the connection
completes instead of raising :exc:`InterruptedError` if the connection is
interrupted by signals, signal handlers don't raise an exception and the
socket is blocking or has a timeout. :meth:`socket.socket.connect` still
raise :exc:`InterruptedError` for non-blocking sockets.
- Issue #23836: Fix the faulthandler module to handle reentrant calls to
its signal handlers.
- Issue #10395: Added os.path.commonpath(). Implemented in posixpath and ntpath.
Based on patch by Rafik Draoui.
- Issue #23611: Serializing more "lookupable" objects (such as unbound methods
or nested classes) now are supported with pickle protocols < 4.
- Issue #13583: sqlite3.Row now supports slice indexing.
- Issue #23485: select.select() is now retried automatically with the
recomputed timeout when interrupted by a signal, except if the signal handler
raises an exception. This change is part of the PEP 475.
- Issue #23752: When built from an existing file descriptor, io.FileIO() now
only calls fstat() once. Before fstat() was called twice, which was not
necessary.
- Issue #23704: collections.deque() objects now support __add__, __mul__, and
__imul__().
- Issue #23171: csv.Writer.writerow() now supports arbitrary iterables.
- Issue #22117: Fix os.utime(), it now rounds the timestamp towards minus
infinity (-inf) instead of rounding towards zero.
Build
-----
- Issue #23817: FreeBSD now uses "1.0" the the SOVERSION as other operating
systems, instead of just "1".
- Issue #23501: Argument Clinic now generates code into separate files by default.
Tests
-----
Tools/Demos
-----------
- Issue #18128: pygettext now uses standard +NNNN format in the
POT-Creation-Date header.
- Issue #23935: Argument Clinic's understanding of format units
accepting bytes, bytearrays, and buffers is now consistent with
both the documentation and the implementation.
- Issue #23944: Argument Clinic now wraps long impl prototypes at column 78.
- Issue #20586: Argument Clinic now ensures that functions without docstrings
have signatures.
- Issue #23492: Argument Clinic now generates argument parsing code with
PyArg_Parse instead of PyArg_ParseTuple if possible.
- Issue #23500: Argument Clinic is now smarter about generating the "#ifndef"
(empty) definition of the methoddef macro: it's only generated once, even
if Argument Clinic processes the same symbol multiple times, and it's emitted
at the end of all processing rather than immediately after the first use.
C API
-----
What's New in Python 3.5.0 alpha 3?
===================================
Release date: 2015-03-28
Core and Builtins
-----------------
- Issue #23573: Increased performance of string search operations (str.find,
str.index, str.count, the in operator, str.split, str.partition) with
arguments of different kinds (UCS1, UCS2, UCS4).
- Issue #23753: Python doesn't support anymore platforms without stat() or
fstat(), these functions are always required.
- Issue #23681: The -b option now affects comparisons of bytes with int.
- Issue #23632: Memoryviews now allow tuple indexing (including for
multi-dimensional memoryviews).
Library
-------
- Issue #14260: The groupindex attribute of regular expression pattern object
now is non-modifiable mapping.
- Issue #23775: pprint() of OrderedDict now outputs the same representation
as repr().
- Issue #23765: Removed IsBadStringPtr calls in ctypes
- Issue #22364: Improved some re error messages using regex for hints.
- Issue #21717: The zipfile.ZipFile.open function now supports 'x' (exclusive
creation) mode.
- Issue #23622: Unknown escapes in regular expressions that consist of ``'\'``
and ASCII letter now raise a deprecation warning and will be forbidden in
Python 3.6.
- Issue #23502: The pprint module now supports mapping proxies.
- Issue #17530: pprint now wraps long bytes objects and bytearrays.
- Issue #22687: Fixed some corner cases in breaking words in tetxtwrap.
Got rid of quadratic complexity in breaking long words.
- Issue #4727: The copy module now uses pickle protocol 4 (PEP 3154) and
supports copying of instances of classes whose __new__ method takes
keyword-only arguments.
- Issue #23491: Added a zipapp module to support creating executable zip
file archives of Python code. Registered ".pyz" and ".pyzw" extensions
on Windows for these archives (PEP 441).
- Issue #23657: Avoid explicit checks for str in zipapp, adding support
for pathlib.Path objects as arguments.
- Issue #23688: Added support of arbitrary bytes-like objects and avoided
unnecessary copying of memoryview in gzip.GzipFile.write().
Original patch by Wolfgang Maier.
- Issue #23252: Added support for writing ZIP files to unseekable streams.
- Issue #23704: collections.deque() objects now support methods for index(),
insert(), and copy(). This allows deques to be registered as a
MutableSequence and it improves their substitutablity for lists.
- Issue #23715: :func:`signal.sigwaitinfo` and :func:`signal.sigtimedwait` are
now retried when interrupted by a signal not in the *sigset* parameter, if
the signal handler does not raise an exception. signal.sigtimedwait()
recomputes the timeout with a monotonic clock when it is retried.
- Issue #23001: Few functions in modules mmap, ossaudiodev, socket, ssl, and
codecs, that accepted only read-only bytes-like object now accept writable
bytes-like object too.
- Issue #23646: If time.sleep() is interrupted by a signal, the sleep is now
retried with the recomputed delay, except if the signal handler raises an
exception (PEP 475).
- Issue #22181: On Linux, os.urandom() now uses the new getrandom() syscall if
available, syscall introduced in the Linux kernel 3.17. It is more reliable
and more secure, because it avoids the need of a file descriptor and waits
until the kernel has enough entropy.
- Issue #2211: Updated the implementation of the http.cookies.Morsel class.
Setting attributes key, value and coded_value directly now is deprecated.
update() and setdefault() now transform and check keys. Comparing for
equality now takes into account attributes key, value and coded_value.
copy() now returns a Morsel, not a dict. repr() now contains all attributes.
Optimized checking keys and quoting values. Added new tests.
Original patch by Demian Brecht.
- Issue #18983: Allow selection of output units in timeit.
Patch by Julian Gindi.
- Issue #23631: Fix traceback.format_list when a traceback has been mutated.
- Issue #2052: Add charset parameter to HtmlDiff.make_file().
- Issue #23668: Support os.truncate and os.ftruncate on Windows.
- Issue #23581: Add matmul support to MagicMock. Patch by Håkan Lövdahl.
- Issue #23566: enable(), register(), dump_traceback() and
dump_traceback_later() functions of faulthandler now accept file
descriptors. Patch by Wei Wu.
- Issue #23605: os.walk() now calls os.scandir() instead of os.listdir().
The usage of os.scandir() reduces the number of calls to os.stat().
Initial patch written by Ben Hoyt.
Build
-----
- Issue #23585: make patchcheck will ensure the interpreter is built.
Tests
-----
Tools/Demos
-----------
- Issue #22826: The result of open() in Tools/freeze/bkfile.py is now better
compatible with regular files (in particular it now supports the context
management protocol).
What's New in Python 3.5 alpha 2?
=================================
Release date: 2015-03-09
Core and Builtins
-----------------
- Issue #23571: PyObject_Call() and PyCFunction_Call() now raise a SystemError
if a function returns a result and raises an exception. The SystemError is
chained to the previous exception.
Library
-------
- Issue #22524: New os.scandir() function, part of the PEP 471: "os.scandir()
function -- a better and faster directory iterator". Patch written by Ben
Hoyt.
- Issue #23103: Reduced the memory consumption of IPv4Address and IPv6Address.
- Issue #21793: BaseHTTPRequestHandler again logs response code as numeric,
not as stringified enum. Patch by Demian Brecht.
- Issue #23563: Optimized utility functions in urllib.parse.
- Issue #7830: Flatten nested functools.partial.
- Issue #19980: Improved help() for non-recognized strings. help('') now
shows the help on str. help('help') now shows the help on help().
Original patch by Mark Lawrence.
* Eliminated OverflowError from timedelta * float for some floats;
* Corrected rounding in timedlta true division.
- Issue #22936: Make it possible to show local variables in tracebacks for
both the traceback module and unittest.
- Issue #15955: Add an option to limit the output size in bz2.decompress().
Patch by Nikolaus Rath.
- Issues #814253, #9179: Group references and conditional group references now
work in lookbehind assertions in regular expressions.
- Issue #23239: ssl.match_hostname() now supports matching of IP addresses.
- Issue #23096: Pickle representation of floats with protocol 0 now is the same
for both Python and C implementations.
- Issue #19105: pprint now more efficiently uses free space at the right.
- Issue #14910: Add allow_abbrev parameter to argparse.ArgumentParser. Patch by
Jonathan Paugh, Steven Bethard, paul j3 and Daniel Eriksson.
- Issue #21717: tarfile.open() now supports 'x' (exclusive creation) mode.
- Issue #23344: marshal.dumps() is now 20-25% faster on average.
- Issue #20416: marshal.dumps() with protocols 3 and 4 is now 40-50% faster on
average.
- logging.handlers.QueueListener now takes a respect_handler_level keyword
argument which, if set to True, will pass messages to handlers taking handler
levels into account.
- Issue #19705: turtledemo now has a visual sorting algorithm demo. Original
patch from Jason Yeo.
Build
-----
- Issue #23686: Update OS X 10.5 installer build to use OpenSSL 1.0.2a.
C API
-----
- Issue #20204: Deprecation warning is now raised for builtin type without the
__module__ attribute.
Windows
-------
- Issue #23465: Implement PEP 486 - Make the Python Launcher aware of virtual
environments. Patch by Paul Moore.
- Issue #23437: Make user scripts directory versioned on Windows. Patch by Paul
Moore.
What's New in Python 3.5 alpha 1?
=================================
Release date: 2015-02-08
Core and Builtins
-----------------
- Issue #23285: PEP 475 - EINTR handling.
- Issue #22986: Allow changing an object's __class__ between a dynamic type and
static type in some cases.
- Issue #15859: PyUnicode_EncodeFSDefault(), PyUnicode_EncodeMBCS() and
PyUnicode_EncodeCodePage() now raise an exception if the object is not an
Unicode object. For PyUnicode_EncodeFSDefault(), it was already the case on
platforms other than Windows. Patch written by Campbell Barton.
- Issue #22286: The "backslashreplace" error handlers now works with
decoding and translating.
- Issue #23253: Delay-load ShellExecute[AW] in os.startfile for reduced
startup overhead on Windows.
- Issue #22038: pyatomic.h now uses stdatomic.h or GCC built-in functions for
atomic memory access if available. Patch written by Vitor de Lima and Gustavo
Temple.
- Issue #20284: %-interpolation (aka printf) formatting added for bytes and
bytearray.
- Issue #22834: If the current working directory ends up being set to a
non-existent directory then import will no longer raise FileNotFoundError.
- Issue #22869: Move the interpreter startup & shutdown code to a new
dedicated pylifecycle.c module
- Issue #22847: Improve method cache efficiency.
- Issue #17636: Circular imports involving relative imports are now
supported.
- Issue #21052: Do not raise ImportWarning when sys.path_hooks or sys.meta_path
are set to None.
- Issue #16518: Use 'bytes-like object required' in error messages that
previously used the far more cryptic "'x' does not support the buffer
protocol.
- Issue #22540: speed up `PyObject_IsInstance` and `PyObject_IsSubclass` in the
common case that the second argument has metaclass `type`.
- Issue #18711: Add a new `PyErr_FormatV` function, similar to `PyErr_Format`
but accepting a `va_list` argument.
- Issue #16324: _charset parameter of MIMEText now also accepts
email.charset.Charset instances. Initial patch by Claude Paroz.
- Issue #1764286: Fix inspect.getsource() to support decorated functions.
Patch by Claudiu Popa.
- Issue #18554: os.__all__ includes posix functions.
- Issue #21391: Use os.path.abspath in the shutil module.
- Issue #11471: avoid generating a JUMP_FORWARD instruction at the end of
an if-block if there is no else-clause. Original patch by Eugene Toder.
- Issue #22215: Now ValueError is raised instead of TypeError when str or bytes
argument contains not permitted null character or byte.
- Issue #22258: Fix the internal function set_inheritable() on Illumos.
This platform exposes the function ``ioctl(FIOCLEX)``, but calling it fails
with errno is ENOTTY: "Inappropriate ioctl for device". set_inheritable()
now falls back to the slower ``fcntl()`` (``F_GETFD`` and then ``F_SETFD``).
- Issue #21389: Displaying the __qualname__ of the underlying function in the
repr of a bound method.
- Issue #22206: Using pthread, PyThread_create_key() now sets errno to ENOMEM
and returns -1 (error) on integer overflow.
- Issue #20184: Argument Clinic based signature introspection added for
30 of the builtin functions.
- Issue #22116: C functions and methods (of the 'builtin_function_or_method'
type) can now be weakref'ed. Patch by Wei Wu.
- Issue #22077: Improve index error messages for bytearrays, bytes, lists,
and tuples by adding 'or slices'. Added ', not <typename' for bytearrays.
Original patch by Claudiu Popa.
- Issue #20179: Apply Argument Clinic to bytes and bytearray.
Patch by Tal Einat.
- Issue #22082: Clear interned strings in slotdefs.
- Upgrade Unicode database to Unicode 7.0.0.
- Issue #21205: Add a new ``__qualname__`` attribute to generator, the
qualified name, and use it in the representation of a generator
(``repr(gen)``). The default name of the generator (``__name__`` attribute)
is now get from the function instead of the code. Use ``gen.gi_code.co_name``
to get the name of the code.
- Issue #21377: PyBytes_Concat() now tries to concatenate in-place when the
first argument has a reference count of 1. Patch by Nikolaus Rath.
- Issue #20355: -W command line options now have higher priority than the
PYTHONWARNINGS environment variable. Patch by Arfrever.
- Issue #20904: Support setting FPU precision on m68k.
- Issue #21193: pow(a, b, c) now raises ValueError rather than TypeError when b
is negative. Patch by Josh Rosenberg.
- PEP 465 and Issue #21176: Add the '@' operator for matrix multiplication.
- Issue #8297: Attributes missing from modules now include the module name
in the error text. Original patch by ysj.ray.
- Issue #19995: %c, %o, %x, and %X now raise TypeError on non-integer input.
- Issue #19655: The ASDL parser - used by the build process to generate code for
managing the Python AST in C - was rewritten. The new parser is self contained
and does not require to carry long the spark.py parser-generator library;
spark.py was removed from the source base.
- Issue #20480: Add ipaddress.reverse_pointer. Patch by Leon Weber.
- Issue #8931: Make alternate formatting ('#') for type 'c' raise an
exception. In versions prior to 3.5, '#' with 'c' had no effect. Now
specifying it is an error. Patch by Torsten Landschoff.
Library
-------
- Issue #20289: cgi.FieldStorage() now supports the context management
protocol.
- Issue #13128: Print response headers for CONNECT requests when debuglevel
> 0. Patch by Demian Brecht.
- Issue #15381: Optimized io.BytesIO to make less allocations and copyings.
- Issue #22818: Splitting on a pattern that could match an empty string now
raises a warning. Patterns that can only match empty strings are now
rejected.
- Issue #23326: Removed __ne__ implementations. Since fixing default __ne__
implementation in issue #21408 they are redundant.
- Issue #14099: Restored support of writing ZIP files to tellable but
non-seekable streams.
- Issue #14099: Writing to ZipFile and reading multiple ZipExtFiles is
threadsafe now.
- Issue #19361: JSON decoder now raises JSONDecodeError instead of ValueError.
- Issue #20188: Support Application-Layer Protocol Negotiation (ALPN) in the ssl
module.
- Issue #23133: Pickling of ipaddress objects now produces more compact and
portable representation.
- Issue #23266: Much faster implementation of ipaddress.collapse_addresses()
when there are many non-consecutive addresses.
- Issue #21817: When an exception is raised in a task submitted to a
ProcessPoolExecutor, the remote traceback is now displayed in the
parent process. Patch by Claudiu Popa.
- Issue #15955: Add an option to limit output size when decompressing LZMA
data. Patch by Nikolaus Rath and Martin Panter.
- Issue #23209, #23225: selectors.BaseSelector.get_key() now raises a
RuntimeError if the selector is closed. And selectors.BaseSelector.close()
now clears its internal reference to the selector mapping to break a
reference cycle. Initial patch written by Martin Richard.
- Issue #17911: Provide a way to seed the linecache for a PEP-302 module
without actually loading the code.
- Issue #17911: Provide a new object API for traceback, including the ability
to not lookup lines at all until the traceback is actually rendered, without
any trace of the original objects being kept alive.
- Issue #19777: Provide a home() classmethod on Path objects. Contributed
by Victor Salgado and Mayank Tripathi.
- Issue #23206: Make ``json.dumps(..., ensure_ascii=False)`` as fast as the
default case of ``ensure_ascii=True``. Patch by Naoki Inada.
- Issue #23185: Add math.inf and math.nan constants.
- Issue #23186: Add ssl.SSLObject.shared_ciphers() and
ssl.SSLSocket.shared_ciphers() to fetch the client's list ciphers sent at
handshake.
- Issue #23143: Remove compatibility with OpenSSLs older than 0.9.8.
- Issue #23132: Improve performance and introspection support of comparison
methods created by functool.total_ordering.
- Issue #19776: Add a expanduser() method on Path objects.
- Issue #21793: Added http.HTTPStatus enums (i.e. HTTPStatus.OK,
HTTPStatus.NOT_FOUND). Patch by Demian Brecht.
- Issue #22783: Pickling now uses the NEWOBJ opcode instead of the NEWOBJ_EX
opcode if possible.
- Issue #21740: Support wrapped callables in doctest. Patch by Claudiu Popa.
- Issue #22696: Add function :func:`sys.is_finalizing` to know about
interpreter shutdown.
- Issue #14099: ZipFile.open() no longer reopen the underlying file. Objects
returned by ZipFile.open() can now operate independently of the ZipFile even
if the ZipFile was created by passing in a file-like object as the first
argument to the constructor.
- Issue #22407: Deprecated the use of re.LOCALE flag with str patterns or
re.ASCII. It was newer worked.
- Issue #22902: The "ip" command is now used on Linux to determine MAC address
in uuid.getnode(). Pach by Bruno Cauet.
- Issue #22389: Add contextlib.redirect_stderr().
- Issue #22940: Add readline.append_history_file.
- Issue #19676: Added the "namereplace" error handler.
- Issue #22796: HTTP cookie parsing is now stricter, in order to protect
against potential injection attacks.
- Issue #19494: Added urllib.request.HTTPBasicPriorAuthHandler. Patch by
Matej Cepl.
- Issue #22578: Added attributes to the re.error class.
- Issue #21650: Add an `--sort-keys` option to json.tool CLI.
- Issue #22824: Updated reprlib output format for sets to use set literals.
Patch contributed by Berker Peksag.
- Issue #22824: Updated reprlib output format for arrays to display empty
arrays without an unnecessary empty list. Suggested by Serhiy Storchaka.
- Issue #6623: Remove deprecated Netrc class in the ftplib module. Patch by
Matt Chaput.
- Issue #22217: Implemented reprs of classes in the zipfile module.
- Issue #22457: Honour load_tests in the start_dir of discovery.
- Issue #18216: gettext now raises an error when a .mo file has an
unsupported major version number. Patch by Aaron Hill.
- Issue #13918: Provide a locale.delocalize() function which can remove
locale-specific number formatting from a string representing a number,
without then converting it to a specific type. Patch by Cédric Krier.
- Issue #22676: Make the pickling of global objects which don't have a
__module__ attribute less slow.
- Issue #7559: unittest test loading ImportErrors are reported as import errors
with their import exception rather than as attribute errors after the import
has already failed.
- Issue #19746: Make it possible to examine the errors from unittest
discovery without executing the test suite. The new `errors` attribute
on TestLoader exposes these non-fatal errors encountered during discovery.
- Issue #17401: Include closefd in io.FileIO repr.
- Issue #21338: Add silent mode for compileall. quiet parameters of
compile_{dir, file, path} functions now have a multilevel value. Also,
-q option of the CLI now have a multilevel value. Patch by Thomas Kluyver.
- Issue #20152: Convert the array and cmath modules to Argument Clinic.
- Issue #18643: Add socket.socketpair() on Windows.
- Issue #19380: Optimized parsing of regular expressions.
- Issue #1519638: Now unmatched groups are replaced with empty strings in re.sub()
and re.subn().
- Issue #18615: sndhdr.what/whathdr now return a namedtuple.
- Issue #21965: Add support for in-memory SSL to the ssl module. Patch
by Geert Jansen.
- Issue #11271: concurrent.futures.Executor.map() now takes a *chunksize*
argument to allow batching of tasks in child processes and improve
performance of ProcessPoolExecutor. Patch by Dan O'Reilly.
- Issue #21883: os.path.join() and os.path.relpath() now raise a TypeError with
more helpful error message for unsupported or mismatched types of arguments.
- Issue #22508: The email.__version__ variable has been removed; the email
code is no longer shipped separately from the stdlib, and __version__
hasn't been updated in several releases.
- Issue #20218: Added convenience methods read_text/write_text and read_bytes/
write_bytes to pathlib.Path objects.
- Issue #22437: Number of capturing groups in regular expression is no longer
limited by 100.
- Issue #17442: InteractiveInterpreter now displays the full chained traceback
in its showtraceback method, to match the built in interactive interpreter.
- Issue #5309: distutils' build and build_ext commands now accept a ``-j``
option to enable parallel building of extension modules.
- Issue #22362: Forbidden ambiguous octal escapes out of range 0-0o377 in
regular expressions.
- Issue #22278: Fix urljoin problem with relative urls, a regression observed
after changes to issue22118 were submitted.
- Issue #21091: Fix API bug: email.message.EmailMessage.is_attachment is now
a method.
- Issue #20537: logging methods now accept an exception instance as well as a
Boolean value or exception tuple. Thanks to Yury Selivanov for the patch.
- Issue #13968: The glob module now supports recursive search in
subdirectories using the "**" pattern.
- Issue #12410: imaplib.IMAP4 now supports the context management protocol.
Original patch by Tarek Ziadé.
- Issue #21270: We now override tuple methods in mock.call objects so that
they can be used as normal call attributes.
- Issue #16662: load_tests() is now unconditionally run when it is present in
a package's __init__.py. TestLoader.loadTestsFromModule() still accepts
use_load_tests, but it is deprecated and ignored. A new keyword-only
attribute `pattern` is added and documented. Patch given by Robert Collins,
tweaked by Barry Warsaw.
- Issue #20421: Add a .version() method to SSL sockets exposing the actual
protocol version in use.
- Issue #19546: configparser exceptions no longer expose implementation details.
Chained KeyErrors are removed, which leads to cleaner tracebacks. Patch by
Claudiu Popa.
- Issue #22043: time.monotonic() is now always available.
``threading.Lock.acquire()``, ``threading.RLock.acquire()`` and socket
operations now use a monotonic clock, instead of the system clock, when a
timeout is used.
- Issue #21527: Add a default number of workers to ThreadPoolExecutor equal
to 5 times the number of CPUs. Patch by Claudiu Popa.
- Issue #22098: ctypes' BigEndianStructure and LittleEndianStructure now
define an empty __slots__ so that subclasses don't always get an instance
dict. Patch by Claudiu Popa.
- Issue #22287: On UNIX, _PyTime_gettimeofday() now uses
clock_gettime(CLOCK_REALTIME) if available. As a side effect, Python now
depends on the librt library on Solaris and on Linux (only with glibc older
than 2.17).
- Issue #22042: signal.set_wakeup_fd(fd) now raises an exception if the file
descriptor is in blocking mode.
- Issue #16808: inspect.stack() now returns a named tuple instead of a tuple.
Patch by Daniel Shahaf.
- Issue #2527: Add a *globals* argument to timeit functions, in order to
override the globals namespace in which the timed code is executed.
Patch by Ben Roberts.
- Issue #22118: Switch urllib.parse to use RFC 3986 semantics for the
resolution of relative URLs, rather than RFCs 1808 and 2396.
Patch by Demian Brecht.
- Issue #21549: Added the "members" parameter to TarFile.list().
- Issue #19628: Allow compileall recursion depth to be specified with a -r
option.
- Issue #15381: Optimized line reading in io.BytesIO.
- Issue #21725: Added support for RFC 6531 (SMTPUTF8) in smtpd.
- Issue #5411: Added support for the "xztar" format in the shutil module.
- Issue #20170: Convert posixmodule to use Argument Clinic.
- Issue #21539: Add a *exists_ok* argument to `Pathlib.mkdir()` to mimic
`mkdir -p` and `os.makedirs()` functionality. When true, ignore
FileExistsErrors. Patch by Berker Peksag.
- Issue #22127: Bypass IDNA for pure-ASCII host names in the socket module
(in particular for numeric IPs).
- Issue #21047: set the default value for the *convert_charrefs* argument
of HTMLParser to True. Patch by Berker Peksag.
- Add an __all__ to html.entities.
- Issue #15114: the strict mode and argument of HTMLParser, HTMLParser.error,
and the HTMLParserError exception have been removed.
- Issue #22085: Dropped support of Tk 8.3 in Tkinter.
- Issue #22003: When initialized from a bytes object, io.BytesIO() now
defers making a copy until it is mutated, improving performance and
memory use on some use cases. Patch by David Wilson.
- Issue #22018: On Windows, signal.set_wakeup_fd() now also supports sockets.
A side effect is that Python depends to the WinSock library.
- Issue #22054: Add os.get_blocking() and os.set_blocking() functions to get
and set the blocking mode of a file descriptor (False if the O_NONBLOCK flag
is set, True otherwise). These functions are not available on Windows.
- Issue #20173: Convert sha1, sha256, sha512 and md5 to ArgumentClinic.
Patch by Vajrasky Kok.
- Issue #22033: Reprs of most Python implemened classes now contain actual
class name instead of hardcoded one.
- Issue #21947: The dis module can now disassemble generator-iterator
objects based on their gi_code attribute. Patch by Clement Rouault.
- Issue #4350: Removed a number of out-of-dated and non-working for a long time
Tkinter methods.
- Issue #6167: Scrollbar.activate() now returns the name of active element if
the argument is not specified. Scrollbar.set() now always accepts only 2
arguments.
- Issue #15275: Clean up and speed up the ntpath module.
- Issue #22032: __qualname__ instead of __name__ is now always used to format
fully qualified class names of Python implemented classes.
- Issue #22031: Reprs now always use hexadecimal format with the "0x" prefix
when contain an id in form " at 0x...".
- Issue #22018: signal.set_wakeup_fd() now raises an OSError instead of a
ValueError on ``fstat()`` failure.
- Issue #21966: Respect -q command-line option when code module is ran.
- Issue #16382: Improve exception message of warnings.warn() for bad
category. Initial patch by Phil Elson.
- Issue #21932: os.read() now uses a :c:func:`Py_ssize_t` type instead of
:c:type:`int` for the size to support reading more than 2 GB at once. On
Windows, the size is truncted to INT_MAX. As any call to os.read(), the OS
may read less bytes than the number of requested bytes.
- Issue #15014: Added 'auth' method to smtplib to make implementing auth
mechanisms simpler, and used it internally in the login method.
- Issue #5800: headers parameter of wsgiref.headers.Headers is now optional.
Initial patch by Pablo Torres Navarrete and SilentGhost.
- Issue #21679: Prevent extraneous fstat() calls during open(). Patch by
Bohuslav Kabrda.
- Issue #21863: cProfile now displays the module name of C extension functions,
in addition to their own name.
- Issue #20295: imghdr now recognizes OpenEXR format images.
- Issue #21719: Added the ``st_file_attributes`` field to os.stat_result on
Windows.
- Issue #21711: support for "site-python" directories has now been removed
from the site module (it was deprecated in 3.4).
- Issue #17552: new socket.sendfile() method allowing to send a file over a
socket by using high-performance os.sendfile() on UNIX.
Patch by Giampaolo Rodola'.
- Issue #18039: dbm.dump.open() now always creates a new database when the
flag has the value 'n'. Patch by Claudiu Popa.
- Issue #21256: Printout of keyword args should be in deterministic order in
a mock function call. This will help to write better doctests.
- Issue #21515: tempfile.TemporaryFile now uses os.O_TMPFILE flag is available.
- Issue #20383: Introduce importlib.util.module_from_spec() as the preferred way
to create a new module.
- Issue #13742: Added "key" and "reverse" parameters to heapq.merge().
(First draft of patch contributed by Simon Sapin.)
- Issue #3015: _tkinter.create() now creates tkapp object with wantobject=1 by
default.
- Issue #20197: Added support for the WebP image type in the imghdr module.
Patch by Fabrice Aneche and Claudiu Popa.
- Issue #21513: Speedup some properties of IP addresses (IPv4Address,
IPv6Address) such as .is_private or .is_multicast.
- Issue #21137: Improve the repr for threading.Lock() and its variants
by showing the "locked" or "unlocked" status. Patch by Berker Peksag.
- Issue #21455: Add a default backlog to socket.listen().
- Issue #21525: Most Tkinter methods which accepted tuples now accept lists too.
- Issue #20826: Optimize ipaddress.collapse_addresses().
- Issue #21487: Optimize ipaddress.summarize_address_range() and
ipaddress.{IPv4Network,IPv6Network}.subnets().
- Issue #21486: Optimize parsing of netmasks in ipaddress.IPv4Network and
ipaddress.IPv6Network.
- Issue #13916: Disallowed the surrogatepass error handler for non UTF-*
encodings.
- Issue #19775: Add a samefile() method to pathlib Path objects. Initial
patch by Vajrasky Kok.
- Issue #21226: Set up modules properly in PyImport_ExecCodeModuleObject
(and friends).
- Issue #16531: ipaddress.IPv4Network and ipaddress.IPv6Network now accept
an (address, netmask) tuple argument, so as to easily construct network
objects from existing addresses.
- Issue #21156: importlib.abc.InspectLoader.source_to_code() is now a
staticmethod.
- Issue #21424: Simplified and optimized heaqp.nlargest() and nmsmallest()
to make fewer tuple comparisons.
- Issue #18314: Unlink now removes junctions on Windows. Patch by Kim Gräsman
- Issue #21407: _decimal: The module now supports function signatures.
- Issue #10650: Remove the non-standard 'watchexp' parameter from the
Decimal.quantize() method in the Python version. It had never been
present in the C version.
- Issue #19414: Have the OrderedDict mark deleted links as unusable.
This gives an early failure if the link is deleted during iteration.
- Issue #21421: Add __slots__ to the MappingViews ABC.
Patch by Josh Rosenberg.
- Issue #21101: Eliminate double hashing in the C speed-up code for
collections.Counter().
- Issue #21057: TextIOWrapper now allows the underlying binary stream's
read() or read1() method to return an arbitrary bytes-like object
(such as a memoryview). Patch by Nikolaus Rath.
- Issue #20951: SSLSocket.send() now raises either SSLWantReadError or
SSLWantWriteError on a non-blocking socket if the operation would block.
Previously, it would return 0. Patch by Nikolaus Rath.
- Issue #13248: removed previously deprecated asyncore.dispatcher __getattr__
cheap inheritance hack.
- Issue #19940: ssl.cert_time_to_seconds() now interprets the given time
string in the UTC timezone (as specified in RFC 5280), not the local
timezone.
- Issue #21068: The ssl.PROTOCOL* constants are now enum members.
- Issue #21262: New method assert_not_called for Mock.
It raises AssertionError if the mock has been called.
- Issue #21238: New keyword argument `unsafe` to Mock. It raises
`AttributeError` incase of an attribute startswith assert or assret.
- Issue #20896: ssl.get_server_certificate() now uses PROTOCOL_SSLv23, not
PROTOCOL_SSLv3, for maximum compatibility.
- Issue #21203: Updated fileConfig and dictConfig to remove inconsistencies.
Thanks to Jure Koren for the patch.
- Issue #20539: Improved math.factorial error message for large positive inputs
and changed exception type (OverflowError -> ValueError) for large negative
inputs.
- Issue #21136: Avoid unnecessary normalization of Fractions resulting from
power and other operations. Patch by Raymond Hettinger.
- Issue #17621: Introduce importlib.util.LazyLoader.
- Issue #21076: signal module constants were turned into enums.
Patch by Giampaolo Rodola'.
- Issue #20636: Improved the repr of Tkinter widgets.
- Issue #19505: The items, keys, and values views of OrderedDict now support
reverse iteration using reversed().
- Issue #21000: Improve the command-line interface of json.tool.
- Issue #20627: xmlrpc.client.ServerProxy is now a context manager.
- Issue #19165: The formatter module now raises DeprecationWarning instead of
PendingDeprecationWarning.
- Issue #13936: Remove the ability of datetime.time instances to be considered
false in boolean contexts.
- Issue 18931: selectors module now supports /dev/poll on Solaris.
Patch by Giampaolo Rodola'.
- Issue #19977: When the ``LC_TYPE`` locale is the POSIX locale (``C`` locale),
:py:data:`sys.stdin` and :py:data:`sys.stdout` are now using the
``surrogateescape`` error handler, instead of the ``strict`` error handler.
- Issue #20574: Implement incremental decoder for cp65001 code (Windows code
page 65001, Microsoft UTF-8).
- Issue #19573: inspect.signature: Use enum for parameter kind constants.
- Issue #20726: inspect.signature: Make Signature and Parameter picklable.
- Issue #17373: Add inspect.Signature.from_callable method.
- Issue #20378: Improve repr of inspect.Signature and inspect.Parameter.
- Issue #20334: inspect.Signature and inspect.Parameter are now hashable.
Thanks to Antony Lee for bug reports and suggestions.
- Issue #15916: doctest.DocTestSuite returns an empty unittest.TestSuite instead
of raising ValueError if it finds no tests
- Issue #22733: Fix ffi_prep_args not zero-extending argument values correctly
on 64-bit Windows.
- Issue #23302: Default to TCP_NODELAY=1 upon establishing an HTTPConnection.
Removed use of hard-coded MSS as it's an optimization that's no longer needed
with Nagle disabled.
IDLE
----
- Issue #21477: htest.py - Improve framework, complete set of tests.
Patches by Saimadhav Heblikar
Build
-----
- Issue #22592: Drop support of the Borland C compiler to build Python. The
distutils module still supports it to build extensions.
- Issue #22591: Drop support of MS-DOS, especially of the DJGPP compiler
(MS-DOS port of GCC).
- Issue #22359: Remove incorrect uses of recursive make. Patch by Jonas
Wagner.
- Issue #18093: the programs that embed the CPython runtime are now in a
separate "Programs" directory, rather than being kept in the Modules
directory.
- Issue #21141: The Windows build process no longer attempts to find Perl,
instead relying on OpenSSL source being configured and ready to build. The
``PCbuild\build_ssl.py`` script has been re-written and re-named to
``PCbuild\prepare_ssl.py``, and takes care of configuring OpenSSL source
for both 32 and 64 bit platforms. OpenSSL sources obtained from
svn.python.org will always be pre-configured and ready to build.
- Issue #21037: Add a build option to enable AddressSanitizer support.
- Issue #19962: The Windows build process now creates "python.bat" in the
root of the source tree, which passes all arguments through to the most
recently built interpreter.
- Issue #17861: Tools/scripts/generate_opcode_h.py automatically regenerates
Include/opcode.h from Lib/opcode.py if the later gets any change.
- Issue #20022: Eliminate use of deprecated bundlebuilder in OS X builds.
- Issue #15968: Incorporated Tcl, Tk, and Tix builds into the Windows build
solution.
- Issue #22919: Windows build updated to support VC 14.0 (Visual Studio 2015),
which will be used for the official release.
- Issue #21236: Build _msi.pyd with cabinet.lib instead of fci.lib
- Issue #17128: Use private version of OpenSSL for OS X 10.5+ installer.
C API
-----
- Issue #14203: Remove obsolete support for view==NULL in PyBuffer_FillInfo(),
bytearray_getbuffer(), bytesiobuf_getbuffer() and array_buffer_getbuf().
All functions now raise BufferError in that case.
- Issue #22445: PyBuffer_IsContiguous() now implements precise contiguity
tests, compatible with NumPy's NPY_RELAXED_STRIDES_CHECKING compilation
flag. Previously the function reported false negatives for corner cases.
- Issue #22453: Removed non-documented macro PyObject_REPR().
- Issue #18395: Rename ``_Py_char2wchar()`` to :c:func:`Py_DecodeLocale`,
rename ``_Py_wchar2char()`` to :c:func:`Py_EncodeLocale`, and document
these functions.
- Issue #21233: Add new C functions: PyMem_RawCalloc(), PyMem_Calloc(),
PyObject_Calloc(), _PyObject_GC_Calloc(). bytes(int) is now using
``calloc()`` instead of ``malloc()`` for large objects which is faster and
use less memory.
Documentation
-------------
- Issue #22394: Doc/Makefile now supports ``make venv PYTHON=../python`` to
create a venv for generating the documentation, e.g.,
``make html PYTHON=venv/bin/python3``.
- Issue #6916: undocument deprecated asynchat.fifo class.
- Issue #21312: Update the thread_foobar.h template file to include newer
threading APIs. Patch by Jack McCracken.
Tests
-----
- Issue #22111: Assorted cleanups in test_imaplib. Patch by Milan Oberkirch.
- Issue #9554: Use modern unittest features in test_argparse. Initial patch by
Denver Coneybeare and Radu Voicilas.
- Issue #21503: Use test_both() consistently in test_importlib.
Tools/Demos
-----------
- Issue #22615: Argument Clinic now supports the "type" argument for the
int converter. This permits using the int converter with enums and
typedefs.
- Issue #20076: The makelocalealias.py script no longer ignores UTF-8 mapping.
- Issue #20079: The makelocalealias.py script now can parse the SUPPORTED file
from glibc sources and supports command line options for source paths.
- Issue #22120: For functions using an unsigned integer return converter,
Argument Clinic now generates a cast to that type for the comparison
to -1 in the generated code. (This supresses a compilation warning.)
- Issue #18974: Tools/scripts/diff.py now uses argparse instead of optparse.
Windows
-------
- Issue #23260: Update Windows installer
- The bundled version of Tcl/Tk has been updated to 8.6.3. The most visible
result of this change is the addition of new native file dialogs when
running on Windows Vista or newer. See Tcl/Tk's TIP 432 for more
information. Also, this version of Tcl/Tk includes support for Windows 10.
- Issue #21907: Improved the batch scripts provided for building Python.
- Issue #22980: .pyd files with a version and platform tag (for example,
".cp35-win32.pyd") will now be loaded in preference to those without tags.
What's New in Python 3.4.0?
===========================
Release date: 2014-03-16
Library
-------
Documentation
-------------
What's New in Python 3.4.0 release candidate 3?
===============================================
Release date: 2014-03-09
Core and Builtins
-----------------
Library
-------
Build
-----
What's New in Python 3.4.0 release candidate 2?
===============================================
Release date: 2014-02-23
Core and Builtins
-----------------
Library
-------
Build
-----
What's New in Python 3.4.0 release candidate 1?
===============================================
Release date: 2014-02-10
Core and Builtins
-----------------
Library
-------
IDLE
----
Tests
-----
Tools/Demos
-----------
Build
-----
C-API
-----
Documentation
-------------
What's New in Python 3.4.0 Beta 3?
==================================
Release date: 2014-01-26
Core and Builtins
-----------------
Library
-------
IDLE
----
Tests
-----
Tools/Demos
-----------
Build
-----
What's New in Python 3.4.0 Beta 2?
==================================
Release date: 2014-01-05
Core and Builtins
-----------------
Library
-------
IDLE
----
Tests
-----
Build
-----
Documentation
-------------
Tools/Demos
-----------
What's New in Python 3.4.0 Beta 1?
==================================
Release date: 2013-11-24
Core and Builtins
-----------------
Library
-------
Tests
-----
Documentation
-------------
Build
-----
Tools/Demos
-----------
What's New in Python 3.4.0 Alpha 4?
===================================
Release date: 2013-10-20
Core and Builtins
-----------------
Library
-------
C API
-----
Tests
-----
Documentation
-------------
Build
-----
What's New in Python 3.4.0 Alpha 3?
===================================
Release date: 2013-09-29
Core and Builtins
-----------------
Library
-------
Tests
-----
IDLE
----
Documentation
-------------
Build
-----
Tools/Demos
-----------
What's New in Python 3.4.0 Alpha 2?
===================================
Release date: 2013-09-09
Core and Builtins
-----------------
Library
-------
Tests
-----
IDLE
----
Documentation
-------------
Build
-----
Tools/Demos
-----------
What's New in Python 3.4.0 Alpha 1?
===================================
Release date: 2013-08-03
Core and Builtins
-----------------
Library
-------
Patch by Fraser Tweedale.
IDLE
----
Tests
-----
Build
-----
C-API
-----
Documentation
-------------
Tools/Demos
-----------
Windows
-------
**(For information about older versions, consult the HISTORY file.)**
More information about the Python-Dev
mailing list