]> git.ipfire.org Git - thirdparty/Python/cpython.git/log
thirdparty/Python/cpython.git
19 months agogh-117142: ctypes: Migrate global vars to module state (GH-117189)
neonene [Fri, 29 Mar 2024 09:40:48 +0000 (18:40 +0900)] 
gh-117142: ctypes: Migrate global vars to module state (GH-117189)

19 months agoFix reversed assertRegex checks in test_ssl. (#117351)
Gregory P. Smith [Fri, 29 Mar 2024 00:58:37 +0000 (17:58 -0700)] 
Fix reversed assertRegex checks in test_ssl. (#117351)

19 months agogh-117110: Fix subclasses of typing.Any with custom constructors (#117111)
傅立业(Chris Fu) [Fri, 29 Mar 2024 00:19:20 +0000 (08:19 +0800)] 
gh-117110: Fix subclasses of typing.Any with custom constructors (#117111)

19 months agogh-117339: Use NULL instead of None for LOAD_SUPER_ATTR in dis docs (GH-117343)
Christopher Chianelli [Thu, 28 Mar 2024 22:26:56 +0000 (18:26 -0400)] 
gh-117339: Use NULL instead of None for LOAD_SUPER_ATTR in dis docs (GH-117343)

19 months agoGH-117121: Add pystats to JIT builds (GH-117346)
Michael Droettboom [Thu, 28 Mar 2024 22:23:08 +0000 (18:23 -0400)] 
GH-117121: Add pystats to JIT builds (GH-117346)

19 months agogh-117335: Handle non-iterables for `ntpath.commonpath` (GH-117336)
Nice Zombies [Thu, 28 Mar 2024 21:20:08 +0000 (22:20 +0100)] 
gh-117335: Handle non-iterables for `ntpath.commonpath` (GH-117336)

19 months agoIncrease the JIT CI timeouts to 75 minutes (GH-117342)
Brandt Bucher [Thu, 28 Mar 2024 21:02:34 +0000 (14:02 -0700)] 
Increase the JIT CI timeouts to 75 minutes (GH-117342)

19 months agogh-117294: Report DocTestCase as skipped if all examples in the doctest are skipped...
Malcolm Smith [Thu, 28 Mar 2024 19:59:12 +0000 (19:59 +0000)] 
gh-117294: Report DocTestCase as skipped if all examples in the doctest are skipped (GH-117297)

19 months agogh-69201: Separate stdout and stderr stream in test_pdb (#117308)
Tian Gao [Thu, 28 Mar 2024 18:23:29 +0000 (11:23 -0700)] 
gh-69201: Separate stdout and stderr stream in test_pdb (#117308)

19 months agogh-114331: Skip decimal test_maxcontext_exact_arith on s390x (#117326)
Victor Stinner [Thu, 28 Mar 2024 16:40:58 +0000 (17:40 +0100)] 
gh-114331: Skip decimal test_maxcontext_exact_arith on s390x (#117326)

19 months agogh-116664: Make module state Py_SETREF's in _warnings thread-safe (#116959)
Erlend E. Aasland [Thu, 28 Mar 2024 15:05:08 +0000 (16:05 +0100)] 
gh-116664: Make module state Py_SETREF's in _warnings thread-safe (#116959)

Mark the swap operations as critical sections.

Add an internal Py_BEGIN_CRITICAL_SECTION_MUT API that takes a PyMutex
pointer instead of a PyObject pointer.

19 months agobpo-43848: explain optional argument mtime in gzip.py. (GH-25410)
Joachim Wuttke [Thu, 28 Mar 2024 13:43:07 +0000 (14:43 +0100)] 
bpo-43848: explain optional argument mtime in gzip.py. (GH-25410)

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
19 months agogh-110481: Fix biased reference counting queue initialization. (#117271)
Sam Gross [Thu, 28 Mar 2024 13:28:39 +0000 (09:28 -0400)] 
gh-110481: Fix biased reference counting queue initialization. (#117271)

The biased reference counting queue must be initialized from the bound
(active) thread because it uses `_Py_ThreadId()` as the key in a hash
table.

19 months agogh-117178: Recover lazy loading of self-referential modules (#117179)
Chris Markiewicz [Thu, 28 Mar 2024 10:59:31 +0000 (06:59 -0400)] 
gh-117178: Recover lazy loading of self-referential modules (#117179)

19 months agogh-117266: Fix crashes on user-created AST subclasses (GH-117276)
Jelle Zijlstra [Thu, 28 Mar 2024 10:30:31 +0000 (04:30 -0600)] 
gh-117266: Fix crashes on user-created AST subclasses (GH-117276)

Fix crashes on user-created AST subclasses

19 months agogh-117310: Remove extra DECREF on "no ciphers" error path in `_ssl._SSLContext` const...
Gregory P. Smith [Thu, 28 Mar 2024 10:11:58 +0000 (03:11 -0700)] 
gh-117310: Remove extra DECREF on "no ciphers" error path in `_ssl._SSLContext` constructor (#117309)

Remove extra self DECREF on ssl "no ciphers" error path.

This doesn't come up in practice because nobody links against a broken
OpenSSL library that provides nothing.

19 months agogh-116303: Handle disabled test modules in test.support helpers (#116482)
Erlend E. Aasland [Thu, 28 Mar 2024 08:40:37 +0000 (09:40 +0100)] 
gh-116303: Handle disabled test modules in test.support helpers (#116482)

Make sure test.support helpers skip iso. failing if test extension
modules are disabled. Also log TEST_MODULES in test.pythoninfo.

19 months agogh-114099: Add documentation for iOS platform (GH-117057)
Russell Keith-Magee [Thu, 28 Mar 2024 08:13:13 +0000 (16:13 +0800)] 
gh-114099: Add documentation for iOS platform (GH-117057)

Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Jacob Coffee <jacob@z7x.org>
Co-authored-by: Malcolm Smith <smith@chaquo.com>
Co-authored-by: Ned Deily <nad@python.org>
19 months agogh-114099: Additions to standard library to support iOS (GH-117052)
Russell Keith-Magee [Thu, 28 Mar 2024 07:59:33 +0000 (15:59 +0800)] 
gh-114099: Additions to standard library to support iOS (GH-117052)

Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Malcolm Smith <smith@chaquo.com>
Co-authored-by: Ned Deily <nad@python.org>
19 months agogh-89739: gh-77140: Support zip64 in zipimport (GH-94146)
Tim Hatch [Thu, 28 Mar 2024 06:54:51 +0000 (23:54 -0700)] 
gh-89739: gh-77140: Support zip64 in zipimport (GH-94146)

* Reads zip64 files as produced by the zipfile module
* Include tests (somewhat slow, however, because of the need to create "large" zips)
* About the same amount of strictness reading invalid zip files as zipfile has
* Still works on files with prepended data (like pex)

There are a lot more test cases at https://github.com/thatch/zipimport64/ that give me confidence that this works for real-world files.

Fixes #89739 and #77140.

---------

Co-authored-by: Itamar Ostricher <itamarost@gmail.com>
Reviewed-by: Gregory P. Smith <greg@krypto.org>
19 months agoRevert "gh-116886: Temporarily disable CIfuzz (memory) (GH-117018)" (GH-117289)
Illia Volochii [Thu, 28 Mar 2024 06:46:01 +0000 (08:46 +0200)] 
Revert "gh-116886: Temporarily disable CIfuzz (memory) (GH-117018)" (GH-117289)

This reverts commit 1ab0d0b1167d78bf19661a3b5e533a2b68a57604.

This reverts #117018.

I expect the issue to be fixed based on https://github.com/google/oss-fuzz/pull/11708#issuecomment-2006442396 and https://github.com/actions/runner-images/issues/9491.

19 months agogh-108277: Make test_os tolerate 10 ms diff for timerfd on Android emulators (#117223)
Malcolm Smith [Wed, 27 Mar 2024 22:11:44 +0000 (22:11 +0000)] 
gh-108277: Make test_os tolerate 10 ms diff for timerfd on Android emulators (#117223)

19 months agogh-113317: Change how Argument Clinic lists converters (#116853)
Victor Stinner [Wed, 27 Mar 2024 22:10:14 +0000 (23:10 +0100)] 
gh-113317: Change how Argument Clinic lists converters (#116853)

* Add a new create_parser_namespace() function for
  PythonParser to pass objects to executed code.
* In run_clinic(), list converters using 'converters' and
  'return_converters' dictionarties.
* test_clinic: add 'object()' return converter.
* Use also create_parser_namespace() in eval_ast_expr().

Co-authored-by: Erlend E. Aasland <erlend@python.org>
19 months agogh-99108: Update and check HACL* version information (GH-117295)
Seth Michael Larson [Wed, 27 Mar 2024 21:56:14 +0000 (16:56 -0500)] 
gh-99108: Update and check HACL* version information (GH-117295)

* Update and check HACL* version information

19 months agogh-117288: Allocate fewer label IDs in _PyCfg_ToInstructionSequence (#117290)
Irit Katriel [Wed, 27 Mar 2024 17:38:19 +0000 (17:38 +0000)] 
gh-117288: Allocate fewer label IDs in _PyCfg_ToInstructionSequence (#117290)

19 months agogh-71042: Add `platform.android_ver` (#116674)
Malcolm Smith [Wed, 27 Mar 2024 16:53:27 +0000 (16:53 +0000)] 
gh-71042: Add `platform.android_ver` (#116674)

19 months agogh-117225: doctest: only print "and X failed" when non-zero, don't pluralise "1 items...
Hugo van Kemenade [Wed, 27 Mar 2024 14:46:35 +0000 (16:46 +0200)] 
gh-117225: doctest: only print "and X failed" when non-zero, don't pluralise "1 items" (#117228)

19 months agoAdd statistics recipe for sampling from an estimated probability density distribution...
Raymond Hettinger [Wed, 27 Mar 2024 14:04:32 +0000 (09:04 -0500)] 
Add statistics recipe for sampling from an estimated probability density distribution (#117221)

19 months agogh-113548: Allow CLI arguments to `pdb -m` (#113557)
Tian Gao [Wed, 27 Mar 2024 01:20:12 +0000 (18:20 -0700)] 
gh-113548: Allow CLI arguments to `pdb -m` (#113557)

19 months agoChange links on the index page (#117230)
Adorilson Bezerra [Tue, 26 Mar 2024 19:08:08 +0000 (19:08 +0000)] 
Change links on the index page (#117230)

19 months agogh-104242: Enable test_is_char_device_true in pathlib test on all platform (GH-116983)
AN Long [Tue, 26 Mar 2024 18:26:48 +0000 (02:26 +0800)] 
gh-104242: Enable test_is_char_device_true in pathlib test on all platform (GH-116983)

19 months agogh-115775: Compiler adds __static_attributes__ field to classes (#115913)
Irit Katriel [Tue, 26 Mar 2024 15:18:17 +0000 (15:18 +0000)] 
gh-115775: Compiler adds __static_attributes__ field to classes (#115913)

19 months agogh-97901 add missing text/rtf to mimetypes (GH-97902)
Antonio [Tue, 26 Mar 2024 14:10:29 +0000 (15:10 +0100)] 
gh-97901 add missing text/rtf to mimetypes (GH-97902)

Co-authored-by: Noam Cohen <noam@noam.me>
19 months agogh-115538: Use isolate mode when running venv test_multiprocessing_recursion() (...
AN Long [Tue, 26 Mar 2024 14:09:57 +0000 (22:09 +0800)] 
gh-115538: Use isolate mode when running venv test_multiprocessing_recursion() (#117116)

Co-authored-by: Victor Stinner <vstinner@python.org>
19 months agopre-commit: add `check-case-conflict` and `check-merge-conflict` (#117259)
Hugo van Kemenade [Tue, 26 Mar 2024 14:09:09 +0000 (16:09 +0200)] 
pre-commit: add `check-case-conflict` and `check-merge-conflict` (#117259)

19 months agogh-98966: Handle stdout=subprocess.STDOUT (GH-98967)
Paulo Neves [Tue, 26 Mar 2024 12:37:50 +0000 (13:37 +0100)] 
gh-98966: Handle stdout=subprocess.STDOUT (GH-98967)

Explicitly handle the case where stdout=STDOUT
as otherwise the existing error handling gets
confused and reports hard to understand errors.

Signed-off-by: Paulo Neves <ptsneves@gmail.com>
19 months agogh-66543: Fix mimetype.guess_type() (GH-117217)
Serhiy Storchaka [Tue, 26 Mar 2024 11:26:45 +0000 (13:26 +0200)] 
gh-66543: Fix mimetype.guess_type() (GH-117217)

Fix parsing of the following corner cases:

* URLs with only a host name
* URLs containing a fragment
* URLs containing a query
* filenames with only a UNC sharepoint on Windows

Co-authored-by: Dong-hee Na <donghee.na92@gmail.com>
19 months agoGH-117108: Set the "old space bit" to "visited" for all young objects (#117213)
Mark Shannon [Tue, 26 Mar 2024 11:11:42 +0000 (11:11 +0000)] 
GH-117108: Set the "old space bit" to "visited" for all young objects  (#117213)

Change old space bit of young objects from 0 to gcstate->visited_space.
This ensures that any object created *and* collected during cycle GC has the bit set correctly.

19 months agoGH-116422: Tier2 hot/cold splitting (GH-116813)
Mark Shannon [Tue, 26 Mar 2024 09:35:11 +0000 (09:35 +0000)] 
GH-116422: Tier2 hot/cold splitting (GH-116813)

Splits the "cold" path, deopts and exits, from the "hot" path, reducing the size of most jitted instructions, at the cost of slower exits.

19 months agobpo-24612: Improve syntax error for 'not' after an operator (GH-28170)
Pablo Galindo Salgado [Tue, 26 Mar 2024 09:30:46 +0000 (09:30 +0000)] 
bpo-24612: Improve syntax error for 'not' after an operator (GH-28170)

Co-authored-by: Lysandros Nikolaou <lisandrosnik@gmail.com>
19 months agogh-83845: Add tests for operator module (#115883)
Hugo van Kemenade [Tue, 26 Mar 2024 09:13:32 +0000 (11:13 +0200)] 
gh-83845: Add tests for operator module (#115883)

Co-authored-by: Karthikeyan Singaravelan <tir.karthi@gmail.com>
19 months agogh-115627: Fix PySSL_SetError handling SSL_ERROR_SYSCALL (GH-115628)
yevgeny hong [Tue, 26 Mar 2024 07:45:43 +0000 (16:45 +0900)] 
gh-115627: Fix PySSL_SetError handling SSL_ERROR_SYSCALL (GH-115628)

Python 3.10 changed from using SSL_write() and SSL_read() to SSL_write_ex() and
SSL_read_ex(), but did not update handling of the return value.

Change error handling so that the return value is not examined.
OSError (not EOF) is now returned when retval is 0.

According to *recent* man pages of all functions for which we call
PySSL_SetError, (in OpenSSL 3.0 and 1.1.1), their return value should
be used to determine whether an error happened (i.e. if PySSL_SetError
should be called), but not what kind of error happened (so,
PySSL_SetError shouldn't need retval). To get the error,
we need to use SSL_get_error.

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Petr Viktorin <encukou@gmail.com>
19 months agogh-83434: Disable XML in regrtest when -R option is used (#117232)
Victor Stinner [Tue, 26 Mar 2024 07:35:59 +0000 (08:35 +0100)] 
gh-83434: Disable XML in regrtest when -R option is used (#117232)

19 months agogh-117187: Fix XML tests for vanilla Expat <2.6.0 (GH-117203)
Sebastian Pipping [Tue, 26 Mar 2024 01:48:27 +0000 (02:48 +0100)] 
gh-117187: Fix XML tests for vanilla Expat <2.6.0 (GH-117203)

This fixes XML unittest fallout from the https://github.com/python/cpython/issues/115398 security fix.  When configured using `--with-system-expat` on systems with older pre 2.6.0 versions of libexpat, our unittests were failing.

* sax|etree: Simplify Expat version guard where simplifiable

Idea by Matěj Cepl

* sax|etree: Fix reparse deferral tests for vanilla Expat <2.6.0

This *does not fix* the case of distros with an older version of libexpat with the 2.6.0 feature backported as a security fix.  (Ubuntu is a known example of this with its libexpat1 2.5.0-2ubunutu0.1 package)

19 months agogh-99108: Refresh HACL*; update modules accordingly; fix namespacing (GH-117237)
Jonathan Protzenko [Tue, 26 Mar 2024 00:35:26 +0000 (17:35 -0700)] 
gh-99108: Refresh HACL*; update modules accordingly; fix namespacing (GH-117237)

Pulls in a new update from https://github.com/hacl-star/hacl-star and fixes our C "namespacing" done by `Modules/_hacl/refresh.sh`.

19 months agogh-109870: Dataclasses: batch up exec calls (gh-110851)
Eric V. Smith [Mon, 25 Mar 2024 23:59:14 +0000 (19:59 -0400)] 
gh-109870: Dataclasses: batch up exec calls (gh-110851)

Instead of calling `exec()` once for each function added to a dataclass, only call `exec()` once per dataclass. This can lead to speed improvements of up to 20%.

19 months agoSync main docs and docstring for median_grouped(). (gh-117214)
Raymond Hettinger [Mon, 25 Mar 2024 23:49:44 +0000 (18:49 -0500)] 
Sync main docs and docstring for median_grouped(). (gh-117214)

19 months agogh-117114: Make os.path.isdevdrive available on all platforms (GH-117115)
Nice Zombies [Mon, 25 Mar 2024 22:55:11 +0000 (23:55 +0100)] 
gh-117114: Make os.path.isdevdrive available on all platforms (GH-117115)

19 months agoAdd information about negative indexes to sequence datamodel doc (#110903)
Adorilson Bezerra [Mon, 25 Mar 2024 22:34:20 +0000 (22:34 +0000)] 
Add information about negative  indexes to sequence datamodel doc (#110903)

Co-authored by Terry Jan Reedy

19 months agoA few minor tweaks to get stats working and compiling cleanly. (#117219)
Mark Shannon [Mon, 25 Mar 2024 20:43:51 +0000 (20:43 +0000)] 
A few minor tweaks to get stats working and compiling cleanly. (#117219)

Fixes a compilation error when configured with `--enable-pystats`,
an array size issue, and an unused variable.

19 months agogh-116936: Add PyType_GetModuleByDef() to the limited C API (#116937)
Victor Stinner [Mon, 25 Mar 2024 16:32:20 +0000 (17:32 +0100)] 
gh-116936: Add PyType_GetModuleByDef() to the limited C API (#116937)

19 months agogh-87193: Support bytes objects with refcount > 1 in _PyBytes_Resize() (GH-117160)
Serhiy Storchaka [Mon, 25 Mar 2024 15:32:11 +0000 (17:32 +0200)] 
gh-87193: Support bytes objects with refcount > 1 in _PyBytes_Resize() (GH-117160)

Create a new bytes object and destroy the old one if it has refcount > 1.

19 months agogh-112948: Make pdb completion similar to repl completion (#112950)
Tian Gao [Mon, 25 Mar 2024 15:18:09 +0000 (08:18 -0700)] 
gh-112948: Make pdb completion similar to repl completion (#112950)

19 months agoMinor markup and grammar fixes in the statistics docs (gh-117216)
Raymond Hettinger [Mon, 25 Mar 2024 14:26:42 +0000 (09:26 -0500)] 
Minor markup and grammar fixes in the statistics docs (gh-117216)

19 months agogh-117176: Fix compiler warning in Python/optimizer_bytecodes.c (GH-117199)
Kirill Podoprigora [Sun, 24 Mar 2024 18:34:55 +0000 (20:34 +0200)] 
gh-117176: Fix compiler warning in Python/optimizer_bytecodes.c (GH-117199)

19 months agogh-112571: Move fish venv activation script into the common folder (GH-117169)
Totally a booplicate [Sun, 24 Mar 2024 15:48:40 +0000 (18:48 +0300)] 
gh-112571: Move fish venv activation script into the common folder (GH-117169)

pythongh-112571: allow using fish venv activation script on windows

The fish shell can be used on windows under cygwin or msys2.
This change moves the script to the common folder
so the venv module will install it on both posix and nt systems (like the bash script).

19 months agogh-117194: Properly format 'base64' header in What's New (#117198)
Terry Jan Reedy [Sun, 24 Mar 2024 15:38:34 +0000 (11:38 -0400)] 
gh-117194: Properly format 'base64' header in What's New (#117198)

It needs 6, not 3, '-'s.

19 months agoGH-115986 Docs: promote pprint.pp usage as a default (#116614)
Kerim Kabirov [Sun, 24 Mar 2024 13:59:14 +0000 (14:59 +0100)] 
GH-115986 Docs: promote pprint.pp usage as a default (#116614)

Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
19 months agogh-101760: Improve the imaplib.IMAP4 example (#101764)
LilKS [Sun, 24 Mar 2024 10:01:07 +0000 (11:01 +0100)] 
gh-101760: Improve the imaplib.IMAP4 example (#101764)

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
19 months agoAdd cumulative option for the new statistics.kde() function. (#117033)
Raymond Hettinger [Sun, 24 Mar 2024 09:35:58 +0000 (11:35 +0200)] 
Add cumulative option for the new statistics.kde() function. (#117033)

19 months agogh-112383: teach dis how to interpret ENTER_EXECUTOR (#117171)
Irit Katriel [Sat, 23 Mar 2024 22:32:33 +0000 (22:32 +0000)] 
gh-112383: teach dis how to interpret ENTER_EXECUTOR (#117171)

19 months agogh-117180: Complete call sequence when trace stack overflow (GH-117184)
Ken Jin [Sat, 23 Mar 2024 22:19:17 +0000 (06:19 +0800)] 
gh-117180: Complete call sequence when trace stack overflow (GH-117184)

---------

Co-authored-by: Peter Lazorchak <lazorchakp@gmail.com>
Co-authored-by: Guido van Rossum <gvanrossum@users.noreply.github.com>
Co-authored-by: Guido van Rossum <gvanrossum@gmail.com>
19 months agogh-91227: Ignore ERROR_PORT_UNREACHABLE in proactor recvfrom() (#32011)
Erik Soma [Sat, 23 Mar 2024 15:39:35 +0000 (11:39 -0400)] 
gh-91227: Ignore ERROR_PORT_UNREACHABLE in proactor recvfrom() (#32011)

19 months agogh-117008: Fix functools test_recursive_pickle() (#117009)
Victor Stinner [Sat, 23 Mar 2024 12:01:20 +0000 (13:01 +0100)] 
gh-117008: Fix functools test_recursive_pickle() (#117009)

Use support.infinite_recursion() in test_recursive_pickle() of
test_functools to prevent a stack overflow on "ARM64 Windows
Non-Debug" buildbot.

Lower Py_C_RECURSION_LIMIT to 1,000 frames on Windows ARM64.

19 months agoGH-106747: Document another difference between `glob` and `pathlib`. (#116518)
Barney Gale [Fri, 22 Mar 2024 19:14:09 +0000 (19:14 +0000)] 
GH-106747: Document another difference between `glob` and `pathlib`. (#116518)

Document that `path.glob()` might return *path*, whereas
`glob.glob(root_dir=path)` will never return an empty string corresponding
to *path*.

19 months agoGH-117108: Change the size of the GC increment to about 1% of the total heap size...
Mark Shannon [Fri, 22 Mar 2024 18:43:25 +0000 (18:43 +0000)] 
GH-117108: Change the size of the GC increment to about 1% of the total heap size. (GH-117120)

19 months agogh-113024: C API: Add PyObject_GenericHash() function (GH-113025)
Serhiy Storchaka [Fri, 22 Mar 2024 18:19:10 +0000 (20:19 +0200)] 
gh-113024: C API: Add PyObject_GenericHash() function (GH-113025)

19 months agogh-117084: Fix ZIP file extraction for directory entry names with backslashes on...
Serhiy Storchaka [Fri, 22 Mar 2024 18:08:00 +0000 (20:08 +0200)] 
gh-117084: Fix ZIP file extraction for directory entry names with backslashes on Windows (GH-117129)

19 months agogh-117134: Microoptimize glob() for include_hidden=True (GH-117135)
Serhiy Storchaka [Fri, 22 Mar 2024 18:03:48 +0000 (20:03 +0200)] 
gh-117134: Microoptimize glob() for include_hidden=True (GH-117135)

19 months ago[docs] Fix typo in docstring and add example to logging cookbook. (GH-117157)
Vinay Sajip [Fri, 22 Mar 2024 17:25:51 +0000 (17:25 +0000)] 
[docs] Fix typo in docstring and add example to logging cookbook. (GH-117157)

19 months agoGH-113171: Fix "private" (non-global) IP address ranges (GH-113179)
Jakub Stasiak [Fri, 22 Mar 2024 16:49:56 +0000 (17:49 +0100)] 
GH-113171: Fix "private" (non-global) IP address ranges (GH-113179)

* GH-113171: Fix "private" (really non-global) IP address ranges

The _private_networks variables, used by various is_private
implementations, were missing some ranges and at the same time had
overly strict ranges (where there are more specific ranges considered
globally reachable by the IANA registries).

This patch updates the ranges with what was missing or otherwise
incorrect.

I left 100.64.0.0/10 alone, for now, as it's been made special in [1]
and I'm not sure if we want to undo that as I don't quite understand the
motivation behind it.

The _address_exclude_many() call returns 8 networks for IPv4, 121
networks for IPv6.

[1] https://github.com/python/cpython/issues/61602

19 months agoFix get_packagefamilyname helper function on Windows 32-bit (GH-117153)
Steve Dower [Fri, 22 Mar 2024 15:00:50 +0000 (15:00 +0000)] 
Fix get_packagefamilyname helper function on Windows 32-bit (GH-117153)

19 months agogh-117068: Remove useless code in bytesio.c:resize_buffer() (GH-117069)
NGRsoftlab [Fri, 22 Mar 2024 11:25:38 +0000 (14:25 +0300)] 
gh-117068: Remove useless code in bytesio.c:resize_buffer() (GH-117069)

Co-authored-by: i.khabibulin <i.khabibulin@ngrsoftlab.ru>
19 months agogh-117127: glob tests: Reopen dir_fd to pick up directory changes (GH-117128)
Petr Viktorin [Fri, 22 Mar 2024 09:42:18 +0000 (10:42 +0100)] 
gh-117127: glob tests: Reopen dir_fd to pick up directory changes (GH-117128)

19 months agoGH-116939: Rewrite binarysort() (#116940)
Tim Peters [Fri, 22 Mar 2024 03:27:25 +0000 (22:27 -0500)] 
GH-116939: Rewrite binarysort() (#116940)

Rewrote binarysort() for clarity.

Also changed the signature to be more coherent (it was mixing sortslice with raw pointers).

No change in method or functionality. However, I left some experiments in, disabled for now
via `#if` tricks. Since this code was first written, some kinds of comparisons have gotten
enormously faster (like for lists of floats), which changes the tradeoffs.

For example, plain insertion sort's simpler innermost loop and highly predictable branches
leave it very competitive (even beating, by a bit) binary insertion when comparisons are
very cheap, despite that it can do many more compares. And it wins big on runs that
are already sorted (moving the next one in takes only 1 compare then).

So I left code for a plain insertion sort, to make future experimenting easier.

Also made the maximum value of minrun a `#define` (``MAX_MINRUN`) to make
experimenting with that easier too.

And another bit of `#if``-disabled code rewrites binary insertion's innermost loop to
remove its unpredictable branch. Surprisingly, this doesn't really seem to help
overall. I'm unclear on why not. It certainly adds more instructions, but they're very
simple, and it's hard to be believe they cost as much as a branch miss.

19 months agogh-108716:: Remove _PyStaticCode_Init/Fini (#117141)
Guido van Rossum [Fri, 22 Mar 2024 01:27:48 +0000 (18:27 -0700)] 
gh-108716:: Remove _PyStaticCode_Init/Fini (#117141)

More deepfreeze cleanup.

19 months agogh-105716: Fix _PyInterpreterState_IsRunningMain() For Embedders (gh-117140)
Eric Snow [Fri, 22 Mar 2024 00:20:20 +0000 (18:20 -0600)] 
gh-105716: Fix _PyInterpreterState_IsRunningMain() For Embedders (gh-117140)

When I added _PyInterpreterState_IsRunningMain() and friends last year, I tried to accommodate applications that embed Python but don't call _PyInterpreterState_SetRunningMain() (not that they're expected to).  That mostly worked fine until my recent changes in gh-117049, where the subtleties with the fallback code led to failures; the change ended up breaking test_tools.test_freeze, which exercises a basic embedding situation.

The simplest fix is to drop the fallback code I originally added to _PyInterpreterState_IsRunningMain() (and later to _PyThreadState_IsRunningMain()).  I've kept the fallback in the _xxsubinterpreters module though.  I've also updated Py_FrozenMain() to call _PyInterpreterState_SetRunningMain().

19 months agogh-116745: Remove all internal usage of @LIBPYTHON@ (#116746)
Thomas A Caswell [Thu, 21 Mar 2024 23:54:50 +0000 (19:54 -0400)] 
gh-116745: Remove all internal usage of @LIBPYTHON@ (#116746)

Replace with MODULE_LDFLAGS.

19 months agogh-71052: Add Android build script and instructions (#116426)
Malcolm Smith [Thu, 21 Mar 2024 23:52:29 +0000 (23:52 +0000)] 
gh-71052: Add Android build script and instructions (#116426)

19 months agogh-117061: Fix test_posix.test_sched_setaffinity() on RHEL9 (#117126)
Victor Stinner [Thu, 21 Mar 2024 22:17:09 +0000 (23:17 +0100)] 
gh-117061: Fix test_posix.test_sched_setaffinity() on RHEL9 (#117126)

On RHEL9, sched_setaffinity(0, []) does not fail.

19 months agodocs: fix over-linking in dataclasses.rst (#117005)
Ned Batchelder [Thu, 21 Mar 2024 19:47:09 +0000 (15:47 -0400)] 
docs: fix over-linking in dataclasses.rst (#117005)

19 months agogh-117045: Add code object to function version cache (#117028)
Guido van Rossum [Thu, 21 Mar 2024 19:37:41 +0000 (12:37 -0700)] 
gh-117045: Add code object to function version cache (#117028)

Changes to the function version cache:

- In addition to the function object, also store the code object,
  and allow the latter to be retrieved even if the function has been evicted.
- Stop assigning new function versions after a critical attribute (e.g. `__code__`)
  has been modified; the version is permanently reset to zero in this case.
- Changes to `__annotations__` are no longer considered critical. (This fixes gh-109998.)

Changes to the Tier 2 optimization machinery:

- If we cannot map a function version to a function, but it is still mapped to a code object,
  we continue projecting the trace.
  The operand of the `_PUSH_FRAME` and `_POP_FRAME` opcodes can be either NULL,
  a function object, or a code object with the lowest bit set.

This allows us to trace through code that calls an ephemeral function,
i.e., a function that may not be alive when we are constructing the executor,
e.g. a generator expression or certain nested functions.
We will lose globals removal inside such functions,
but we can still do other peephole operations
(and even possibly [call inlining](https://github.com/python/cpython/pull/116290),
if we decide to do it), which only need the code object.
As before, if we cannot retrieve the code object from the cache, we stop projecting.

19 months agogh-116333: Relax error string text expectations in SSL-related tests (GH-116334)
Will Childs-Klein [Thu, 21 Mar 2024 19:16:36 +0000 (14:16 -0500)] 
gh-116333: Relax error string text expectations in SSL-related tests (GH-116334)

* Relax error string text expectations in SSL-related tests

As suggested [here][1], this change relaxes the OpenSSL error string
text expectations in a number of tests. This was specifically done in
support of more easily building CPython [AWS-LC][2], but because AWS-LC
is a fork of [BoringSSL][3], it should increase compatibility with that
library as well.

In addition to the error string relaxations, we also add some guards
around the `tls-unique` channel binding being used with TLSv1.3, as that
feature (described in [RFC 6929][4]) is [not defined][5] for TLSv1.3.

[1]: https://discuss.python.org/t/support-building-ssl-and-hashlib-modules-against-aws-lc/44505/4
[2]: https://github.com/aws/aws-lc
[3]: https://github.com/google/boringssl
[4]: https://datatracker.ietf.org/doc/html/rfc5929#section-3
[5]: https://datatracker.ietf.org/doc/html/rfc8446#appendix-C.5

19 months agogh-116522: Refactor `_PyThreadState_DeleteExcept` (#117131)
Sam Gross [Thu, 21 Mar 2024 18:21:02 +0000 (14:21 -0400)] 
gh-116522: Refactor `_PyThreadState_DeleteExcept` (#117131)

Split `_PyThreadState_DeleteExcept` into two functions:

- `_PyThreadState_RemoveExcept` removes all thread states other than one
  passed as an argument. It returns the removed thread states as a
  linked list.

- `_PyThreadState_DeleteList` deletes those dead thread states. It may
  call destructors, so we want to "start the world" before calling
  `_PyThreadState_DeleteList` to avoid potential deadlocks.

19 months agogh-116996: Add pystats about _Py_uop_analyse_and_optimize (GH-116997)
Michael Droettboom [Thu, 21 Mar 2024 17:27:46 +0000 (13:27 -0400)] 
gh-116996: Add pystats about _Py_uop_analyse_and_optimize (GH-116997)

19 months agogh-76785: Drop PyInterpreterID_Type (gh-117101)
Eric Snow [Thu, 21 Mar 2024 17:15:02 +0000 (11:15 -0600)] 
gh-76785: Drop PyInterpreterID_Type (gh-117101)

I added it quite a while ago as a strategy for managing interpreter lifetimes relative to the PEP 554 (now 734) implementation.  Relatively recently I refactored that implementation to no longer rely on InterpreterID objects.  Thus now I'm removing it.

19 months agogh-85283: Build _testconsole extension with limited C API (#117125)
Victor Stinner [Thu, 21 Mar 2024 16:45:43 +0000 (17:45 +0100)] 
gh-85283: Build _testconsole extension with limited C API (#117125)

19 months agogh-115754: Add Py_GetConstant() function (#116883)
Victor Stinner [Thu, 21 Mar 2024 16:07:00 +0000 (17:07 +0100)] 
gh-115754: Add Py_GetConstant() function (#116883)

Add Py_GetConstant() and Py_GetConstantBorrowed() functions.

In the limited C API version 3.13, getting Py_None, Py_False,
Py_True, Py_Ellipsis and Py_NotImplemented singletons is now
implemented as function calls at the stable ABI level to hide
implementation details. Getting these constants still return borrowed
references.

Add _testlimitedcapi/object.c and test_capi/test_object.py to test
Py_GetConstant() and Py_GetConstantBorrowed() functions.

19 months agogh-105716: Update interp->threads.main After Fork (gh-117049)
Eric Snow [Thu, 21 Mar 2024 16:06:35 +0000 (10:06 -0600)] 
gh-105716: Update interp->threads.main After Fork (gh-117049)

I missed this in gh-109921.

We also update Py_Exit() to call _PyInterpreterState_SetNotRunningMain(), if necessary.

19 months agogh-76785: Clean Up Interpreter ID Conversions (gh-117048)
Eric Snow [Thu, 21 Mar 2024 15:56:12 +0000 (09:56 -0600)] 
gh-76785: Clean Up Interpreter ID Conversions (gh-117048)

Mostly we unify the two different implementations of the conversion code (from PyObject * to int64_t.  We also drop the PyArg_ParseTuple()-style converter function, as well as rename and move PyInterpreterID_LookUp().

19 months agogh-116522: Stop the world before fork() and during shutdown (#116607)
Sam Gross [Thu, 21 Mar 2024 14:01:16 +0000 (10:01 -0400)] 
gh-116522: Stop the world before fork() and during shutdown (#116607)

This changes the free-threaded build to perform a stop-the-world pause
before deleting other thread states when forking and during shutdown.
This fixes some crashes when using multiprocessing and during shutdown
when running with `PYTHON_GIL=0`.

This also changes `PyOS_BeforeFork` to acquire the runtime lock
(i.e., `HEAD_LOCK(&_PyRuntime)`) before forking to ensure that data
protected by the runtime lock (and not just the GIL or stop-the-world)
is in a consistent state before forking.

19 months agogh-71052: Implement `ctypes.util.find_library` on Android (GH-116379)
Malcolm Smith [Thu, 21 Mar 2024 13:20:57 +0000 (13:20 +0000)] 
gh-71052: Implement `ctypes.util.find_library` on Android (GH-116379)

19 months agogh-116987: Support class code objects in inspect.findsource() (GH-117025)
Tian Gao [Thu, 21 Mar 2024 10:30:10 +0000 (03:30 -0700)] 
gh-116987: Support class code objects in inspect.findsource() (GH-117025)

19 months agoGH-109653: Defer import of ``importlib.metadata._adapters`` (#109829)
Adam Turner [Thu, 21 Mar 2024 03:49:10 +0000 (03:49 +0000)] 
GH-109653: Defer import of ``importlib.metadata._adapters`` (#109829)

* adapters

* Add comments for deferred imports with links to rationale.

* Add blurb

---------

Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
19 months agogh-117089: Apply changes from importlib_metadata 7.1.0 (#117094)
Jason R. Coombs [Thu, 21 Mar 2024 03:01:24 +0000 (23:01 -0400)] 
gh-117089: Apply changes from importlib_metadata 7.1.0 (#117094)

* Apply changes from importlib_metadata 7.1.0

* Include the data sources in the makefile (even though they're not needed)

19 months agogh-116869: Enable -Werror in test_cext for Free Threading (#117106)
Victor Stinner [Wed, 20 Mar 2024 23:06:24 +0000 (00:06 +0100)] 
gh-116869: Enable -Werror in test_cext for Free Threading (#117106)

Check for warnings, but don't enable the compiler flag
-Werror=declaration-after-statement.

19 months agogh-105927: Limit PyWeakref_GetRef() to limited C API 3.13 (#117091)
Victor Stinner [Wed, 20 Mar 2024 22:52:23 +0000 (23:52 +0100)] 
gh-105927: Limit PyWeakref_GetRef() to limited C API 3.13 (#117091)

19 months agogh-117089: Move importlib.metadata tests to their own package (#117092)
Jason R. Coombs [Wed, 20 Mar 2024 21:11:00 +0000 (17:11 -0400)] 
gh-117089: Move importlib.metadata tests to their own package (#117092)

* Ensure importlib.metadata tests do not leak references in sys.modules.

* Move importlib.metadata tests to their own package for easier syncing with importlib_metadata.

* Update owners and makefile for new directories.

* Add blurb

19 months agoFix sort order for "locale encoding" glossary item (#115794)
Carol Willing [Wed, 20 Mar 2024 21:00:59 +0000 (14:00 -0700)] 
Fix sort order for "locale encoding" glossary item (#115794)

Co-authored-by: C.A.M. Gerlach <CAM.Gerlach@Gerlach.CAM>
19 months agoGH-117066: Tier 2 optimizer: Don't throw away good traces if we can't optimize them...
Mark Shannon [Wed, 20 Mar 2024 18:24:02 +0000 (18:24 +0000)] 
GH-117066: Tier 2 optimizer: Don't throw away good traces if we can't optimize them perfectly. (GH-117067)