summaryrefslogtreecommitdiffstats
path: root/Misc/NEWS.d/next
Commit message (Collapse)AuthorAgeFilesLines
* gh-127076: Disable strace tests under LD_PRELOAD (#127086)Cody Maloney2024-11-211-0/+1
| | | | | | | | Distribution tooling (ex. sandbox on Gentoo and fakeroot on Debian) uses LD_PRELOAD to intercept system calls and potentially modify them when building. These tools can change the set of system calls, so disable system call testing under these cases. Co-authored-by: Michał Górny <mgorny@gentoo.org>
* gh-126898: Emscripten support: Use es6 modules (#126903)Hood Chatham2024-11-211-0/+1
| | | | Modify Emscripten support to use ES6 modules.
* Move NEWS entries out of directories with spaces (GH-127067)Zachary Ware2024-11-203-0/+0
| | | Cleanup after GH-126063, including moving the `README.rst` files to the new directories.
* gh-121058: Warn if `PyThreadState_Clear` is called with an exception set ↵Peter Bierma2024-11-201-0/+2
| | | | (gh-121343)
* GH-127010: Don't lazily track and untrack dicts (GH-127027)Mark Shannon2024-11-201-0/+4
|
* gh-97514: Authenticate the forkserver control socket. (GH-99309)Gregory P. Smith2024-11-201-0/+10
| | | | | | | | | | | | | | | | | | | This adds authentication to the forkserver control socket. In the past only filesystem permissions protected this socket from code injection into the forkserver process by limiting access to the same UID, which didn't exist when Linux abstract namespace sockets were used (see issue) meaning that any process in the same system network namespace could inject code. We've since stopped using abstract namespace sockets by default, but protecting our control sockets regardless of type is a good idea. This reuses the HMAC based shared key auth already used by `multiprocessing.connection` sockets for other purposes. Doing this is useful so that filesystem permissions are not relied upon and trust isn't implied by default between all processes running as the same UID with access to the unix socket. ### pyperformance benchmarks No significant changes. Including `concurrent_imap` which exercises `multiprocessing.Pool.imap` in that suite. ### Microbenchmarks This does _slightly_ slow down forkserver use. How much so appears to depend on the platform. Modern platforms and simple platforms are less impacted. This PR adds additional IPC round trips to the control socket to tell forkserver to spawn a new process. Systems with potentially high latency IPC are naturally impacted more. Typically a 1-4% slowdown on a very targeted process creation microbenchmark, with a worst case overloaded system slowdown of 20%. No evidence that these slowdowns appear in practical sense. See the PR for details.
* GH-126892: Reset warmup counters when JIT compiling code (GH-126893)Brandt Bucher2024-11-201-0/+2
|
* gh-126615: `ctypes`: Make `COMError` public (GH-126686)Jun Komoda2024-11-201-0/+2
| | | Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
* GH-85168: Use filesystem encoding when converting to/from `file` URIs (#126852)Barney Gale2024-11-191-0/+4
| | | | | | | | Adjust `urllib.request.url2pathname()` and `pathname2url()` to use the filesystem encoding when quoting and unquoting file URIs, rather than forcing use of UTF-8. No changes are needed in the `nturl2path` module because Windows always uses UTF-8, per PEP 529.
* Merge remote-tracking branch 'upstream/main'Hugo van Kemenade2024-11-194-0/+8
|\
| * gh-126947: Typechecking for _pydatetime.timedelta.__new__ arguments (#126949)Beomsoo Kim2024-11-191-0/+2
| | | | | | | | Co-authored-by: sobolevn <mail@sobolevn.me> Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
| * gh-125729: Makes the installation of the turtle module dependent on the ↵CoderTCY2024-11-191-0/+1
| | | | | | | | Tcl/Tk install option (GH-126176)
| * gh-118201: Simplify conv_confname (#126089)Malcolm Smith2024-11-191-0/+2
| |
| * gh-126980: Fix `bytearray.__buffer__` crash on `PyBUF_{READ,WRITE}` (#126981)sobolevn2024-11-191-0/+3
| | | | | | Co-authored-by: Victor Stinner <vstinner@python.org>
* | Python 3.14.0a2v3.14.0a2Hugo van Kemenade2024-11-19170-368/+0
|/
* GH-84850: Remove `urllib.request.URLopener` and `FancyURLopener` (#125739)Barney Gale2024-11-191-0/+3
|
* gh-126076: Account for relocated objects in tracemalloc (#126077)Pablo Galindo Salgado2024-11-191-0/+3
|
* Revert "GH-126491: GC: Mark objects reachable from roots before doing cycle ↵Hugo van Kemenade2024-11-191-4/+0
| | | | collection (GH-126502)" (#126983)
* GH-126795: Increase the JIT threshold from 16 to 4096 (GH-126816)Brandt Bucher2024-11-181-0/+2
|
* gh-85957: Add missing MIME types for images with RFCs (#126966)Hugo van Kemenade2024-11-181-0/+2
|
* gh-123803: Support arbitrary code page encodings on Windows (GH-123804)Serhiy Storchaka2024-11-181-0/+1
| | | | | | If the cpXXX encoding is not directly implemented in Python, fall back to use the Windows-specific API codecs.code_page_encode() and codecs.code_page_decode().
* gh-126911: Update credits output (#126913)Stan U.2024-11-181-0/+1
| | | | | | | Co-authored-by: Petr Viktorin <encukou@gmail.com> Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com> Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu> Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
* GH-126491: GC: Mark objects reachable from roots before doing cycle ↵Mark Shannon2024-11-181-0/+4
| | | | | | | | | | | | | | | | collection (GH-126502) * Mark almost all reachable objects before doing collection phase * Add stats for objects marked * Visit new frames before each increment * Remove lazy dict tracking * Update docs * Clearer calculation of work to do.
* gh-126909: Fix running xattr tests on systems with lower limits (#126930)Michał Górny2024-11-181-0/+2
| | | | | | Modify the extended attribute tests to write fewer and smaller extended attributes, in order to fit within filesystems with total xattr limit of 1 KiB (e.g. ext4 with 1 KiB blocks). Previously, the test would write over 2 KiB, making it fail with ENOSPC on such systems.
* gh-101955: Fix SystemError in possesive quantifier with alternative and ↵Serhiy Storchaka2024-11-181-0/+2
| | | | | group (GH-111362) Co-authored-by: <wjssz@users.noreply.github.com>
* gh-67877: Fix memory leaks in terminated RE matching (GH-126840)Serhiy Storchaka2024-11-181-0/+2
| | | | | | | | If SRE(match) function terminates abruptly, either because of a signal or because memory allocation fails, allocated SRE_REPEAT blocks might be never released. Co-authored-by: <wjssz@users.noreply.github.com>
* gh-126167: Modify iOS Testbed to read arguments from Info.plist (#126169)Russell Keith-Magee2024-11-171-0/+2
| | | Modify iOS Testbed to read arguments from Info.plist.
* GH-126920: fix Makefile overwriting sysconfig.get_config_varsFilipe Laíns 🇵🇸2024-11-171-0/+5
|
* GH-126789: fix some sysconfig data on late site initializationsFilipe Laíns 🇵🇸2024-11-171-0/+4
|
* gh-124452: Fix header mismatches when folding/unfolding with email message ↵RanKKI2024-11-161-0/+4
| | | | | | | | | | | | | | | | | | (#125919) The header-folder of the new email API has a long standing known buglet where if the first token is longer than max_line_length, it puts that token on the next line. It turns out there is also a *parsing* bug when parsing such a header: the space prefixing that first, non-empty line gets preserved and tacked on to the start of the header value, which is not the expected behavior per the RFCs. The bug arises from the fact that the parser assumed that there would be at least one token on the line with the header, which is going to be true for probably every email producer other than the python email library with its folding buglet. Clearly, though, this is a case that needs to be handled correctly. The fix is simple: strip the blanks off the start of the whole value, not just the first physical line of the value. Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com> Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
* gh-126691: Remove --with-emscripten-target (#126787)Hood Chatham2024-11-161-0/+3
| | | | | This unifies the code for nodejs and the code for the browser. After this commit, the browser example doesn't work; this will be fixed in a subsequent update.
* gh-126476: Raise IllegalMonthError for calendar.formatmonth() when the input ↵Nadeshiko Manju2024-11-151-0/+2
| | | | | month is not correct (GH-126484) Co-authored-by: Ethan Furman <ethan@stoneleaf.us>
* gh-122549: Add platform.invalidate_caches() (#122547)Bénédikt Tran2024-11-151-0/+1
| | | Allow to invalidate platform's cached results.
* gh-125063: marshal: Add version 5, improve documentation (GH-126829)Petr Viktorin2024-11-151-0/+2
| | | | | | | | | | * Document that slices can be marshalled * Deduplicate and organize the list of supported types in docs * Organize the type code list in marshal.c, to make it more obvious that this is a versioned format * Back-fill some historical info Co-authored-by: Michael Droettboom <mdboom@gmail.com>
* gh-118973: Add _tkinter to freethreaded MSI (GH-126768)Steve Dower2024-11-151-0/+3
|
* gh-126312: Don't traverse frozen objects on the free-threaded build (#126338)Peter Bierma2024-11-151-0/+2
| | | | | Also, _PyGC_Freeze() no longer freezes unreachable objects. Co-authored-by: Sergey B Kirpichev <skirpichev@gmail.com>
* gh-126554: ctypes: Correctly handle NULL dlsym values (GH-126555)George Alexopoulos2024-11-151-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | For dlsym(), a return value of NULL does not necessarily indicate an error [1]. Therefore, to avoid using stale (or NULL) dlerror() values, we must: 1. clear the previous error state by calling dlerror() 2. call dlsym() 3. call dlerror() If the return value of dlerror() is not NULL, an error occured. In ctypes we choose to treat a NULL return value from dlsym() as a "not found" error. This is the same as the fallback message we use on Windows, Cygwin or when getting/formatting the error reason fails. [1]: https://man7.org/linux/man-pages/man3/dlsym.3.html Signed-off-by: Georgios Alexopoulos <grgalex42@gmail.com> Signed-off-by: Georgios Alexopoulos <grgalex@ba.uoa.gr> Co-authored-by: Peter Bierma <zintensitydev@gmail.com> Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com> Co-authored-by: Petr Viktorin <encukou@gmail.com>
* gh-103951: enable optimization for fast attribute access on module ↵Sergey B Kirpichev2024-11-151-0/+2
| | | | | subclasses (GH-126264) Co-authored-by: Nicolas Tessore <n.tessore@ucl.ac.uk>
* gh-126807: pygettext: Do not attempt to extract messages from function ↵Tomas R.2024-11-141-0/+2
| | | | | | | | | | | | | | | | definitions. (GH-126808) Fixes a bug where pygettext would attempt to extract a message from a code like this: def _(x): pass This is because pygettext only looks at one token at a time and '_(x)' looks like a function call. However, since 'x' is not a string literal, it would erroneously issue a warning.
* GH-126766: `url2pathname()`: handle empty authority section. (#126767)Barney Gale2024-11-141-0/+2
| | | | | Discard two leading slashes from the beginning of a `file:` URI if they introduce an empty authority section. As a result, file URIs like `///etc/hosts` are correctly parsed as `/etc/hosts`.
* gh-124111: Update tkinter for compatibility with Tcl/Tk 9.0.0 (GH-124156)Marc Culler2024-11-141-0/+4
|
* GH-118289: Fix handling of non-directories in `posixpath.realpath()` (#120127)Barney Gale2024-11-131-0/+2
| | | | | | | In strict mode, raise `NotADirectoryError` if we encounter a non-directory while we still have path parts left to process. We use a `part_count` variable rather than `len(rest)` because the `rest` stack also contains markers for unresolved symlinks.
* GH-126606: don't write incomplete pyc files (GH-126627)CF Bolz-Tereick2024-11-131-0/+3
| | | | Co-authored-by: Kirill Podoprigora <kirill.bast9@mail.ru> Co-authored-by: Brett Cannon <brett@python.org>
* gh-126188: Update bundled pip to 24.3.1 (gh-126805)Stéphane Bidoul2024-11-131-0/+1
| | | Update bundled pip to 24.3.1
* gh-126390: Support for preserving order of options and nonoption arguments ↵Serhiy Storchaka2024-11-131-0/+2
| | | | in gnu_getopt() (GH-126393)
* gh-126623: Update libexpat to 2.6.4, make future updates easier (GH-126792)Seth Michael Larson2024-11-131-0/+1
| | | Update libexpat to 2.6.4, make future updates easier.
* gh-123619: Add an unstable C API function for enabling deferred reference ↵Peter Bierma2024-11-131-0/+2
| | | | | | counting (GH-123635) Co-authored-by: Sam Gross <colesbury@gmail.com>
* gh-126175: Add attributes to TOMLDecodeError. Deprecate free-form `__init__` ↵Taneli Hukkinen2024-11-131-0/+2
| | | | args (GH-126428)
* gh-126341: add release check to `__iter__` method of `memoryview` (#126759)Ritvik Pasham2024-11-131-0/+1
| | | | | | Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com> Co-authored-by: Peter Bierma <zintensitydev@gmail.com> Co-authored-by: Victor Stinner <vstinner@python.org> Co-authored-by: sobolevn <mail@sobolevn.me>
* gh-71936: Fix race condition in multiprocessing.Pool (GH-124973)Petr Viktorin2024-11-131-0/+1
| | | | | | | | | | | | | | | | | | * gh-71936: Fix race condition in multiprocessing.Pool Proxes of shared objects register a Finalizer in BaseProxy._incref(), and it will call BaseProxy._decref() when it is GCed. This may cause a race condition with Pool(maxtasksperchild=None) on Windows. A connection would be closed and raised TypeError when a GC occurs between _ConnectionBase._check_writable() and _ConnectionBase._send_bytes() in _ConnectionBase.send() in the second or later task, and a new object is allocated that shares the id() of a previously deleted one. Instead of using the id() of the token (or the proxy), use a unique, non-reusable number. Co-Authored-By: Akinori Hattori <hattya@gmail.com>