| .. bpo: 42967 |
| .. date: 2021-02-14-15-59-16 |
| .. nonce: YApqDS |
| .. release date: 2021-03-01 |
| .. section: Security |
| |
| Fix web cache poisoning vulnerability by defaulting the query args separator |
| to ``&``, and allowing the user to choose a custom separator. |
| |
| .. |
| |
| .. bpo: 43321 |
| .. date: 2021-02-26-13-17-52 |
| .. nonce: TCS3ph |
| .. section: Core and Builtins |
| |
| Fix ``SystemError`` raised when ``PyArg_Parse*()`` is used with ``#`` but |
| without ``PY_SSIZE_T_CLEAN`` defined. |
| |
| .. |
| |
| .. bpo: 36346 |
| .. date: 2021-02-22-19-00-00 |
| .. nonce: uAoni0 |
| .. section: Core and Builtins |
| |
| ``PyArg_Parse*()`` functions now emits ``DeprecationWarning`` when ``u`` or |
| ``Z`` format is used. See :pep:`623` for detail. |
| |
| .. |
| |
| .. bpo: 43277 |
| .. date: 2021-02-20-16-50-22 |
| .. nonce: FXkRXk |
| .. section: Core and Builtins |
| |
| Add a new :c:func:`PySet_CheckExact` function to the C-API to check if an |
| object is an instance of :class:`set` but not an instance of a subtype. |
| Patch by Pablo Galindo. |
| |
| .. |
| |
| .. bpo: 42990 |
| .. date: 2021-02-18-15-12-30 |
| .. nonce: toAqBH |
| .. section: Core and Builtins |
| |
| The :data:`types.FunctionType` constructor now inherits the current builtins |
| if the *globals* dictionary has no ``"__builtins__"`` key, rather than using |
| ``{"None": None}`` as builtins: same behavior as :func:`eval` and |
| :func:`exec` functions. Defining a function with ``def function(...): ...`` |
| in Python is not affected, globals cannot be overridden with this syntax: it |
| also inherits the current builtins. Patch by Victor Stinner. |
| |
| .. |
| |
| .. bpo: 42990 |
| .. date: 2021-02-17-19-02-21 |
| .. nonce: SKXHiI |
| .. section: Core and Builtins |
| |
| Functions have a new ``__builtins__`` attribute which is used to look for |
| builtin symbols when a function is executed, instead of looking into |
| ``__globals__['__builtins__']``. Patch by Mark Shannon and Victor Stinner. |
| |
| .. |
| |
| .. bpo: 43149 |
| .. date: 2021-02-07-03-27-14 |
| .. nonce: 0umPKD |
| .. section: Core and Builtins |
| |
| Improve the error message in the parser for exception groups without |
| parentheses. Patch by Pablo Galindo. |
| |
| .. |
| |
| .. bpo: 43121 |
| .. date: 2021-02-03-22-33-05 |
| .. nonce: jqcViq |
| .. section: Core and Builtins |
| |
| Fixed an incorrect :exc:`SyntaxError` message for missing comma in literals. |
| Patch by Pablo Galindo. |
| |
| .. |
| |
| .. bpo: 42819 |
| .. date: 2021-01-04-23-54-34 |
| .. nonce: 4KO6wU |
| .. section: Core and Builtins |
| |
| :mod:`readline`: Explicitly disable bracketed paste in the interactive |
| interpreter, even if it's set in the inputrc, is enabled by default (eg GNU |
| Readline 8.1), or a user calls ``readline.read_init_file()``. The Python |
| REPL has not implemented bracketed paste support. Also, bracketed mode |
| writes the ``"\x1b[?2004h"`` escape sequence into stdout which causes test |
| failures in applications that don't support it. It can still be explicitly |
| enabled by calling ``readline.parse_and_bind("set enable-bracketed-paste |
| on")``. Patch by Dustin Rodrigues. |
| |
| .. |
| |
| .. bpo: 42808 |
| .. date: 2021-01-02-05-10-58 |
| .. nonce: AOxgxl |
| .. section: Core and Builtins |
| |
| Simple calls to ``type(object)`` are now faster due to the ``vectorcall`` |
| calling convention. Patch by Dennis Sweeney. |
| |
| .. |
| |
| .. bpo: 42217 |
| .. date: 2020-10-31-16-54-00 |
| .. nonce: GdcHe5 |
| .. section: Core and Builtins |
| |
| Make the compiler merges same co_code and co_linetable objects in a module |
| like already did for co_consts. |
| |
| .. |
| |
| .. bpo: 41972 |
| .. date: 2020-10-23-23-17-23 |
| .. nonce: kbAwg4 |
| .. section: Core and Builtins |
| |
| Substring search functions such as ``str1 in str2`` and ``str2.find(str1)`` |
| now sometimes use the "Two-Way" string comparison algorithm to avoid |
| quadratic behavior on long strings. |
| |
| .. |
| |
| .. bpo: 42128 |
| .. date: 2020-10-23-08-54-04 |
| .. nonce: SWmVEm |
| .. section: Core and Builtins |
| |
| Implement :pep:`634` (structural pattern matching). Patch by Brandt Bucher. |
| |
| .. |
| |
| .. bpo: 40692 |
| .. date: 2020-05-19-22-10-05 |
| .. nonce: ajEhrR |
| .. section: Core and Builtins |
| |
| In the :class:`concurrent.futures.ProcessPoolExecutor`, validate that |
| :func:`multiprocess.synchronize` is available on a given platform and rely |
| on that check in the :mod:`concurrent.futures` test suite so we can run |
| tests that are unrelated to :class:`ProcessPoolExecutor` on those platforms. |
| |
| .. |
| |
| .. bpo: 38302 |
| .. date: 2019-09-28-12-23-23 |
| .. nonce: hsCNgX |
| .. section: Core and Builtins |
| |
| If :func:`object.__ipow__` returns :const:`NotImplemented`, the operator |
| will correctly fall back to :func:`object.__pow__` and |
| :func:`object.__rpow__` as expected. |
| |
| .. |
| |
| .. bpo: 43316 |
| .. date: 2021-02-25-09-44-36 |
| .. nonce: k9Gyqn |
| .. section: Library |
| |
| The ``python -m gzip`` command line application now properly fails when |
| detecting an unsupported extension. It exits with a non-zero exit code and |
| prints an error message to stderr. |
| |
| .. |
| |
| .. bpo: 43317 |
| .. date: 2021-02-25-09-08-55 |
| .. nonce: qrOOpB |
| .. section: Library |
| |
| Set the chunk size for the ``gzip`` module main function to |
| io.DEFAULT_BUFFER_SIZE. This is slightly faster than the 1024 bytes constant |
| that was used previously. |
| |
| .. |
| |
| .. bpo: 43146 |
| .. date: 2021-02-23-17-20-16 |
| .. nonce: JAFplg |
| .. section: Library |
| |
| Handle None in single-arg versions of :func:`~traceback.print_exception` and |
| :func:`~traceback.format_exception`. |
| |
| .. |
| |
| .. bpo: 43260 |
| .. date: 2021-02-20-12-15-29 |
| .. nonce: 6znAas |
| .. section: Library |
| |
| Fix TextIOWrapper can not flush internal buffer forever after very large |
| text is written. |
| |
| .. |
| |
| .. bpo: 43258 |
| .. date: 2021-02-18-23-30-52 |
| .. nonce: LeU-q8 |
| .. section: Library |
| |
| Prevent needless allocation of :mod:`sqlite3` aggregate function context |
| when no rows match an aggregate query. Patch by Erlend E. Aasland. |
| |
| .. |
| |
| .. bpo: 43251 |
| .. date: 2021-02-18-14-24-42 |
| .. nonce: n6WZDw |
| .. section: Library |
| |
| Improve :mod:`sqlite3` error handling: ``sqlite3_column_name()`` failures |
| now result in :exc:`MemoryError`. Patch by Erlend E. Aasland. |
| |
| .. |
| |
| .. bpo: 40956 |
| .. date: 2021-02-10-23-29-50 |
| .. nonce: LcAbwG |
| .. section: Library |
| |
| Fix segfault in :meth:`sqlite3.Connection.backup` if no argument was |
| provided. The regression was introduced by GH-23838. Patch by Erlend E. |
| Aasland. |
| |
| .. |
| |
| .. bpo: 43172 |
| .. date: 2021-02-10-06-00-53 |
| .. nonce: ZMCJni |
| .. section: Library |
| |
| The readline module now passes its tests when built directly against |
| libedit. Existing irreconcilable API differences remain in |
| :func:`readline.get_begidx` and :func:`readline.get_endidx` behavior based |
| on libreadline vs libedit use. |
| |
| .. |
| |
| .. bpo: 43163 |
| .. date: 2021-02-08-21-13-51 |
| .. nonce: E2MgzH |
| .. section: Library |
| |
| Fix a bug in :mod:`codeop` that was causing it to not ask for more input |
| when multi-line snippets have unclosed parentheses. Patch by Pablo Galindo |
| |
| .. |
| |
| .. bpo: 43162 |
| .. date: 2021-02-08-16-27-00 |
| .. nonce: t-W7h3 |
| .. section: Library |
| |
| deprecate unsupported ability to access enum members as attributes of other |
| enum members |
| |
| .. |
| |
| .. bpo: 43146 |
| .. date: 2021-02-06-21-21-35 |
| .. nonce: MHtb2v |
| .. section: Library |
| |
| Fix recent regression in None argument handling in :mod:`~traceback` module |
| functions. |
| |
| .. |
| |
| .. bpo: 43102 |
| .. date: 2021-02-03-22-55-27 |
| .. nonce: TSlZ6J |
| .. section: Library |
| |
| The namedtuple __new__ method had its __builtins__ set to None instead of an |
| actual dictionary. This created problems for introspection tools. |
| |
| .. |
| |
| .. bpo: 43106 |
| .. date: 2021-02-03-17-06-38 |
| .. nonce: SwcSuU |
| .. section: Library |
| |
| Added :data:`~os.O_EVTONLY`, :data:`~os.O_FSYNC`, :data:`~os.O_SYMLINK` and |
| :data:`~os.O_NOFOLLOW_ANY` for macOS. Patch by Dong-hee Na. |
| |
| .. |
| |
| .. bpo: 42960 |
| .. date: 2021-01-18-21-07-20 |
| .. nonce: a7Dote |
| .. section: Library |
| |
| Adds :data:`resource.RLIMIT_KQUEUES` constant from FreeBSD to the |
| :mod:`resource` module. |
| |
| .. |
| |
| .. bpo: 42151 |
| .. date: 2020-10-26-18-01-09 |
| .. nonce: et5f7s |
| .. section: Library |
| |
| Make the pure Python implementation of :mod:`xml.etree.ElementTree` behave |
| the same as the C implementation (:mod:`_elementree`) regarding default |
| attribute values (by not setting ``specified_attributes=1``). |
| |
| .. |
| |
| .. bpo: 29753 |
| .. date: 2020-05-02-01-01-30 |
| .. nonce: n2M-AF |
| .. section: Library |
| |
| In ctypes, now packed bitfields are calculated properly and the first item |
| of packed bitfields is now shrank correctly. |
| |
| .. |
| |
| .. bpo: 27646 |
| .. date: 2021-02-20-00-09-13 |
| .. nonce: HRsmo- |
| .. section: Documentation |
| |
| Clarify that 'yield from <expr>' works with any iterable, not just |
| iterators. |
| |
| .. |
| |
| .. bpo: 36346 |
| .. date: 2020-06-15-10-45-45 |
| .. nonce: H0sS_i |
| .. section: Documentation |
| |
| Update some deprecated unicode APIs which are documented as "will be removed |
| in 4.0" to "3.12". See :pep:`623` for detail. |
| |
| .. |
| |
| .. bpo: 43288 |
| .. date: 2021-02-21-11-11-53 |
| .. nonce: LfTvL- |
| .. section: Tests |
| |
| Fix test_importlib to correctly skip Unicode file tests if the filesystem |
| does not support them. |
| |
| .. |
| |
| .. bpo: 43174 |
| .. date: 2021-02-10-14-11-53 |
| .. nonce: F9zwXQ |
| .. section: Build |
| |
| Windows build now uses ``/utf-8`` compiler option. |
| |
| .. |
| |
| .. bpo: 43103 |
| .. date: 2021-02-02-16-26-44 |
| .. nonce: VWeyP_ |
| .. section: Build |
| |
| Add a new configure ``--without-static-libpython`` option to not build the |
| ``libpythonMAJOR.MINOR.a`` static library and not install the ``python.o`` |
| object file. |
| |
| .. |
| |
| .. bpo: 13501 |
| .. date: 2021-01-10-22-25-23 |
| .. nonce: g4L-6R |
| .. section: Build |
| |
| The configure script can now use *libedit* instead of *readline* with the |
| command line option ``--with-readline=editline``. |
| |
| .. |
| |
| .. bpo: 42603 |
| .. date: 2020-12-08-19-25-20 |
| .. nonce: mXs2dB |
| .. section: Build |
| |
| Make configure script use pkg-config to detect the location of Tcl/Tk |
| headers and libraries, used to build tkinter. |
| |
| On macOS, a Tcl/Tk configuration provided by pkg-config will be preferred |
| over Tcl/Tk frameworks installed in ``/{System/,}Library/Frameworks``. If |
| both exist and the latter is preferred, the appropriate ``--with-tcltk-*`` |
| configuration options need to be explicitly set. |
| |
| .. |
| |
| .. bpo: 39448 |
| .. date: 2020-01-24-12-54-22 |
| .. nonce: k4pv14 |
| .. section: Build |
| |
| Add the "regen-frozen" makefile target that regenerates the code for the |
| frozen ``__hello__`` module. |
| |
| .. |
| |
| .. bpo: 43155 |
| .. date: 2021-02-10-04-16-51 |
| .. nonce: O1tURk |
| .. section: Windows |
| |
| :c:func:`PyCMethod_New` is now present in ``python3.lib``. |
| |
| .. |
| |
| .. bpo: 41837 |
| .. date: 2021-02-28-22-49-46 |
| .. nonce: 9fqyXC |
| .. section: macOS |
| |
| Update macOS installer build to use OpenSSL 1.1.1j. |
| |
| .. |
| |
| .. bpo: 43283 |
| .. date: 2021-02-21-16-30-10 |
| .. nonce: DLBwYn |
| .. section: IDLE |
| |
| Document why printing to IDLE's Shell is often slower than printing to a |
| system terminal and that it can be made faster by pre-formatting a single |
| string before printing. |
| |
| .. |
| |
| .. bpo: 43278 |
| .. date: 2021-02-21-15-30-38 |
| .. nonce: DMPaWH |
| .. section: C API |
| |
| Always put compiler and system information on the first line of the REPL |
| welcome message. |
| |
| .. |
| |
| .. bpo: 43270 |
| .. date: 2021-02-19-14-28-26 |
| .. nonce: UKx4XN |
| .. section: C API |
| |
| Remove the private ``_PyErr_OCCURRED()`` macro: use the public |
| :c:func:`PyErr_Occurred` function instead. |
| |
| .. |
| |
| .. bpo: 35134 |
| .. date: 2021-02-18-18-46-42 |
| .. nonce: dFpEDT |
| .. section: C API |
| |
| Move odictobject.h, parser_interface.h, picklebufobject.h, pydebug.h, and |
| pyfpe.h into the cpython/ directory. They must not be included directly, as |
| they are already included by Python.h: :ref:`Include Files <api-includes>`. |
| |
| .. |
| |
| .. bpo: 35134 |
| .. date: 2021-02-17-18-51-26 |
| .. nonce: YoQdk8 |
| .. section: C API |
| |
| Move pyarena.h, pyctype.h, and pytime.h into the cpython/ directory. They |
| must not be included directly, as they are already included by Python.h: |
| :ref:`Include Files <api-includes>`. |
| |
| .. |
| |
| .. bpo: 40170 |
| .. date: 2021-02-16-22-29-39 |
| .. nonce: ahHmOo |
| .. section: C API |
| |
| :c:func:`PyExceptionClass_Name` is now always declared as a function, in |
| order to hide implementation details. The macro accessed |
| :c:member:`PyTypeObject.tp_name` directly. Patch by Erlend E. Aasland. |
| |
| .. |
| |
| .. bpo: 43239 |
| .. date: 2021-02-16-17-30-16 |
| .. nonce: FQqOGz |
| .. section: C API |
| |
| The :c:func:`PyCFunction_New` function is now exported in the ABI when |
| compiled with ``-fvisibility=hidden``. |
| |
| .. |
| |
| .. bpo: 40170 |
| .. date: 2021-02-15-15-06-43 |
| .. nonce: ZYeSii |
| .. section: C API |
| |
| :c:func:`PyIter_Check` is now always declared as a function, in order to |
| hide implementation details. The macro accessed |
| :c:member:`PyTypeObject.tp_iternext` directly. Patch by Erlend E. Aasland. |
| |
| .. |
| |
| .. bpo: 40170 |
| .. date: 2021-02-15-13-41-14 |
| .. nonce: r2FAtl |
| .. section: C API |
| |
| Convert :c:func:`PyDescr_IsData` macro to a function to hide implementation |
| details: The macro accessed :c:member:`PyTypeObject.tp_descr_set` directly. |
| Patch by Erlend E. Aasland. |
| |
| .. |
| |
| .. bpo: 43181 |
| .. date: 2021-02-11-11-37-14 |
| .. nonce: ydv33S |
| .. section: C API |
| |
| Convert :c:func:`PyObject_TypeCheck` macro to a static inline function. |
| Patch by Erlend E. Aasland. |