|
| 1 | +.. date: 2026-03-27-22-06-10 |
| 2 | +.. gh-issue: 146458 |
| 3 | +.. nonce: fYj0UQ |
| 4 | +.. release date: 2026-04-18 |
| 5 | +.. section: Windows |
| 6 | +
|
| 7 | +Fix incorrect REPL height and width tracking on console window resize on |
| 8 | +Windows. |
| 9 | + |
| 10 | +.. |
| 11 | +
|
| 12 | +.. date: 2026-04-10-16-28-21 |
| 13 | +.. gh-issue: 148395 |
| 14 | +.. nonce: kfzm0G |
| 15 | +.. section: Security |
| 16 | +
|
| 17 | +Fix a dangling input pointer in :class:`lzma.LZMADecompressor`, |
| 18 | +:class:`bz2.BZ2Decompressor`, and internal :class:`!zlib._ZlibDecompressor` |
| 19 | +when memory allocation fails with :exc:`MemoryError`, which could let a |
| 20 | +subsequent :meth:`!decompress` call read or write through a stale pointer to |
| 21 | +the already-released caller buffer. |
| 22 | + |
| 23 | +.. |
| 24 | +
|
| 25 | +.. date: 2026-03-25-00-51-03 |
| 26 | +.. gh-issue: 146333 |
| 27 | +.. nonce: LqdL__bn |
| 28 | +.. section: Security |
| 29 | +
|
| 30 | +Fix quadratic backtracking in :class:`configparser.RawConfigParser` option |
| 31 | +parsing regexes (``OPTCRE`` and ``OPTCRE_NV``). A crafted configuration line |
| 32 | +with many whitespace characters could cause excessive CPU usage. |
| 33 | + |
| 34 | +.. |
| 35 | +
|
| 36 | +.. date: 2026-04-16-13-30-00 |
| 37 | +.. gh-issue: 148651 |
| 38 | +.. nonce: ZsTdLk |
| 39 | +.. section: Library |
| 40 | +
|
| 41 | +Fix reference leak in :class:`compression.zstd.ZstdDecompressor` when an |
| 42 | +invalid option key is passed. |
| 43 | + |
| 44 | +.. |
| 45 | +
|
| 46 | +.. date: 2026-04-14-09-04-35 |
| 47 | +.. gh-issue: 148508 |
| 48 | +.. nonce: -GiXml |
| 49 | +.. section: Library |
| 50 | +
|
| 51 | +An intermittent timing error when running SSL tests on iOS has been |
| 52 | +resolved. |
| 53 | + |
| 54 | +.. |
| 55 | +
|
| 56 | +.. date: 2026-04-12-16-40-11 |
| 57 | +.. gh-issue: 148370 |
| 58 | +.. nonce: 0Li2EK |
| 59 | +.. section: Library |
| 60 | +
|
| 61 | +:mod:`configparser`: prevent quadratic behavior when a |
| 62 | +:exc:`~configparser.ParsingError` is raised after a parser fails to parse |
| 63 | +multiple lines. Patch by Bénédikt Tran. |
| 64 | + |
| 65 | +.. |
| 66 | +
|
| 67 | +.. date: 2026-04-09-12-42-42 |
| 68 | +.. gh-issue: 148254 |
| 69 | +.. nonce: Xt7vKs |
| 70 | +.. section: Library |
| 71 | +
|
| 72 | +Use singular "sec" instead of "secs" in :mod:`timeit` verbose output for |
| 73 | +consistency with other time units. |
| 74 | + |
| 75 | +.. |
| 76 | +
|
| 77 | +.. date: 2026-04-07-14-13-40 |
| 78 | +.. gh-issue: 148192 |
| 79 | +.. nonce: 34AUYQ |
| 80 | +.. section: Library |
| 81 | +
|
| 82 | +``email.generator.Generator._make_boundary`` could fail to detect a |
| 83 | +duplicate boundary string if linesep was not \n. It now correctly detects |
| 84 | +boundary strings when linesep is \r\n as well. |
| 85 | + |
| 86 | +.. |
| 87 | +
|
| 88 | +.. date: 2026-03-22-23-42-22 |
| 89 | +.. gh-issue: 146313 |
| 90 | +.. nonce: RtDeAd |
| 91 | +.. section: Library |
| 92 | +
|
| 93 | +Fix a deadlock in :mod:`multiprocessing`'s resource tracker where the parent |
| 94 | +process could hang indefinitely in :func:`os.waitpid` during interpreter |
| 95 | +shutdown if a child created via :func:`os.fork` still held the resource |
| 96 | +tracker's pipe open. |
| 97 | + |
| 98 | +.. |
| 99 | +
|
| 100 | +.. date: 2026-03-11-15-09-52 |
| 101 | +.. gh-issue: 145831 |
| 102 | +.. nonce: _sW94w |
| 103 | +.. section: Library |
| 104 | +
|
| 105 | +Fix :func:`!email.quoprimime.decode` leaving a stray ``\r`` when |
| 106 | +``eol='\r\n'`` by stripping the full *eol* string instead of one character. |
| 107 | + |
| 108 | +.. |
| 109 | +
|
| 110 | +.. date: 2026-02-22-00-00-00 |
| 111 | +.. gh-issue: 145105 |
| 112 | +.. nonce: csv-reader-reentrant |
| 113 | +.. section: Library |
| 114 | +
|
| 115 | +Fix crash in :mod:`csv` reader when iterating with a re-entrant iterator |
| 116 | +that calls :func:`next` on the same reader from within ``__next__``. |
| 117 | + |
| 118 | +.. |
| 119 | +
|
| 120 | +.. date: 2026-01-19-21-23-18 |
| 121 | +.. gh-issue: 105936 |
| 122 | +.. nonce: dGrzjM |
| 123 | +.. section: Library |
| 124 | +
|
| 125 | +Attempting to mutate non-field attributes of :mod:`dataclasses` with both |
| 126 | +*frozen* and *slots* being ``True`` now raises |
| 127 | +:class:`~dataclasses.FrozenInstanceError` instead of :class:`TypeError`. |
| 128 | +Their non-dataclass subclasses can now freely mutate non-field attributes, |
| 129 | +and the original non-slotted class can be garbage collected. |
| 130 | + |
| 131 | +.. |
| 132 | +
|
| 133 | +.. date: 2024-02-10-21-25-22 |
| 134 | +.. gh-issue: 70039 |
| 135 | +.. nonce: 6wvcAP |
| 136 | +.. section: Library |
| 137 | +
|
| 138 | +Fixed bug where :meth:`smtplib.SMTP.starttls` could fail if |
| 139 | +:meth:`smtplib.SMTP.connect` is called explicitly rather than implicitly. |
| 140 | + |
| 141 | +.. |
| 142 | +
|
| 143 | +.. date: 2026-04-02-07-20-00 |
| 144 | +.. gh-issue: 146646 |
| 145 | +.. nonce: GlobDoc1 |
| 146 | +.. section: Documentation |
| 147 | +
|
| 148 | +Document that :func:`glob.glob`, :func:`glob.iglob`, |
| 149 | +:meth:`pathlib.Path.glob`, and :meth:`pathlib.Path.rglob` silently suppress |
| 150 | +:exc:`OSError` exceptions raised from scanning the filesystem. |
| 151 | + |
| 152 | +.. |
| 153 | +
|
| 154 | +.. date: 2026-04-11-17-28-52 |
| 155 | +.. gh-issue: 148393 |
| 156 | +.. nonce: lX6gwN |
| 157 | +.. section: Core and Builtins |
| 158 | +
|
| 159 | +Fix data races between :c:func:`PyDict_Watch` / :c:func:`PyDict_Unwatch` and |
| 160 | +concurrent dict mutation in the :term:`free-threaded build`. |
| 161 | + |
| 162 | +.. |
| 163 | +
|
| 164 | +.. date: 2026-04-10-14-20-54 |
| 165 | +.. gh-issue: 148284 |
| 166 | +.. nonce: HKs-S_ |
| 167 | +.. section: Core and Builtins |
| 168 | +
|
| 169 | +Fix high stack consumption in Python's interpreter loop on Clang 22 by |
| 170 | +setting function limits for inlining when building with computed gotos. |
| 171 | + |
| 172 | +.. |
| 173 | +
|
| 174 | +.. date: 2026-04-09-14-18-33 |
| 175 | +.. gh-issue: 148037 |
| 176 | +.. nonce: aP3CSX |
| 177 | +.. section: Core and Builtins |
| 178 | +
|
| 179 | +Remove critical section from :c:func:`!PyCode_Addr2Line` in free-threading. |
| 180 | + |
| 181 | +.. |
| 182 | +
|
| 183 | +.. date: 2026-04-07-20-21-44 |
| 184 | +.. gh-issue: 148208 |
| 185 | +.. nonce: JAxpDU |
| 186 | +.. section: Core and Builtins |
| 187 | +
|
| 188 | +Fix recursion depth leak in :c:func:`PyObject_Print` |
| 189 | + |
| 190 | +.. |
| 191 | +
|
| 192 | +.. date: 2026-04-07-07-21-30 |
| 193 | +.. gh-issue: 137814 |
| 194 | +.. nonce: 6yRTeu |
| 195 | +.. section: Core and Builtins |
| 196 | +
|
| 197 | +Fix the ``__qualname__`` attribute of ``__annotate__`` functions on |
| 198 | +functions. |
| 199 | + |
| 200 | +.. |
| 201 | +
|
| 202 | +.. date: 2026-04-14-15-20-29 |
| 203 | +.. gh-issue: 148535 |
| 204 | +.. nonce: JjKiaa |
| 205 | +.. section: Build |
| 206 | +
|
| 207 | +No longer use the ``gcc -fprofile-update=atomic`` flag on i686. The flag has |
| 208 | +been added to fix a random GCC internal error on PGO build (:gh:`145801`) |
| 209 | +caused by corruption of profile data (.gcda files). The problem is that it |
| 210 | +makes the PGO build way slower (up to 47x slower) on i686. Since the GCC |
| 211 | +internal error was not seen on i686 so far, don't use |
| 212 | +``-fprofile-update=atomic`` on i686 anymore. Patch by Victor Stinner. |
| 213 | + |
| 214 | +.. |
| 215 | +
|
| 216 | +.. date: 2026-03-21-18-51-31 |
| 217 | +.. gh-issue: 146264 |
| 218 | +.. nonce: Q9Ej4m |
| 219 | +.. section: Build |
| 220 | +
|
| 221 | +Fix static module builds on non-WASI targets by linking HACL dependencies as |
| 222 | +static libraries when ``MODULE_BUILDTYPE=static``, preventing duplicate |
| 223 | +``_Py_LibHacl_*`` symbol errors at link time. |
0 commit comments