summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* gh-117378: Only run the new multiprocessing SysPath test when appropriate ↵Gregory P. Smith2024-11-101-29/+30
| | | | | | | | | (GH-126635) The first version had it running two forkserver and one spawn tests underneath each of the _fork, _forkserver, and _spawn test suites that build off the generic one. This adds to the existing complexity of the multiprocessing test suite by offering BaseTestCase classes another attribute to control which suites they are invoked under. Practicality vs purity here. :/ Net result: we don't over-run the new test and their internal logic is simplified.
* Skip test in test_socket.py if `sys.getrefcount` isn't available (#126640)CF Bolz-Tereick2024-11-101-0/+2
| | | Skip `testMakefileCloseSocketDestroy` test if `sys.getrefcount` isn't available. This is necessary for PyPy and other Python implementations that do not have `sys.getrefcount`.
* gh-126565: Skip `zipfile.Path.exists` check in write mode (#126576)Jan Hicken2024-11-102-1/+2
| | | | | | | | | | | When `zipfile.Path.open` is called, the implementation will check whether the path already exists in the ZIP file. However, this check is only required when the ZIP file is in read mode. By swapping arguments of the `and` operator, the short-circuiting will prevent the check from being run in write mode. This change will improve the performance of `open()`, because checking whether a file exists is slow in write mode, especially when the archive has many members.
* Postpone `module.__loader__` deprecation to Python 3.16 (#126482)Hugo van Kemenade2024-11-103-9/+9
|
* gh-117378: Fix multiprocessing forkserver preload sys.path inheritance. ↵Gregory P. Smith2024-11-093-0/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | (GH-126538) gh-117378: Fix multiprocessing forkserver preload sys.path inheritance. `sys.path` was not properly being sent from the parent process when launching the multiprocessing forkserver process to preload imports. This bug has been there since the forkserver start method was introduced in Python 3.4. It was always _supposed_ to inherit `sys.path` the same way the spawn method does. Observable behavior change: A `''` value in `sys.path` will now be replaced in the forkserver's `sys.path` with an absolute pathname `os.path.abspath(os.getcwd())` saved at the time that `multiprocessing` was imported in the parent process as it already was when using the spawn start method. **This will only be observable during forkserver preload imports**. The code invoked before calling things in another process already correctly sets `sys.path`. Which is likely why this went unnoticed for so long as a mere performance issue in some configurations. A workaround for the bug on impacted Pythons is to set PYTHONPATH in the environment before multiprocessing's forkserver process was started. Not perfect as that is then inherited by other children, etc, but likely good enough for many people's purposes. Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* pathlib ABCs: tighten up `resolve()` and `absolute()` (#126611)Barney Gale2024-11-093-32/+53
| | | | | | | | | | | | In `PathBase.resolve()`, raise `UnsupportedOperation` if a non-POSIX path parser is used (our implementation uses `posixpath._realpath()`, which produces incorrect results for non-POSIX path flavours.) Also tweak code to call `self.absolute()` upfront rather than supplying an emulated `getcwd()` function. Adjust `PathBase.absolute()` to work somewhat like `resolve()`. If a POSIX path parser is used, we treat the root directory as the current directory. This is the simplest useful behaviour for concrete path types without a current directory cursor.
* pathlib ABCs: support initializing paths with no arguments (#126608)Barney Gale2024-11-092-9/+8
| | | | | | | | In the past I've equivocated about whether to require at least one argument in the `PurePathBase` (and `PathBase`) initializer, and what the default should be if we make it optional. I now have a local use case that has persuaded me to make it optional and default to the empty string (a `zipp.Path`-like class that treats relative and absolute paths similarly.) Happily this brings the base class more in line with `PurePath` and `Path`.
* gh-120619: Strength reduce function guards, support 2-operand uop forms ↵Ken Jin2024-11-0917-270/+379
| | | | | (GH-124846) Co-authored-by: Brandt Bucher <brandtbucher@gmail.com>
* gh-126187 Add emscripten.py script to automate emscripten build (#126190)Hood Chatham2024-11-093-136/+354
| | | | | Add emscripten.py script to automate emscripten build. This is modeled heavily on `Tools/wasm/wasi.py`. This will form the basis of an Emscripten build bot.
* GH-126212: Fix removal of slashes in file URIs on Windows (#126214)Barney Gale2024-11-083-21/+18
| | | | | | Adjust `urllib.request.pathname2url()` and `url2pathname()` so that they don't remove slashes from Windows DOS drive paths and URLs. There was no basis for this behaviour, and it conflicts with how UNC and POSIX paths are handled.
* GH-126547: Pre-assign version numbers for a few common classes (GH-126551)Mark Shannon2024-11-0812-2/+29
|
* gh-126497: Add missing venv redirectors to freethreaded installer (GH-126556)Steve Dower2024-11-082-4/+8
|
* gh-125298: Remove misleading text in os.kill documentation (GH-125749)RUANG (James Roy)2024-11-081-2/+1
| | | Windows has not accepted process handles in many releases.
* gh-126072: Set docstring attribute for module and class (#126231)Xuanteng Huang2024-11-086-20/+77
|
* remove minor redundant code from `_asyncio` (#126578)Kumar Aditya2024-11-081-3/+1
|
* gh-126579: Adapt sys.audit() to Argument Clinic (GH-126580)Serhiy Storchaka2024-11-082-42/+63
|
* GH-107803: use circular double linked list for tasks in `_asyncio` (#126577)Kumar Aditya2024-11-081-52/+21
|
* gh-122943: Add the varpos parameter in _PyArg_UnpackKeywords (GH-126564)Serhiy Storchaka2024-11-0894-685/+1220
| | | | Remove _PyArg_UnpackKeywordsWithVararg. Add comments for integer arguments of _PyArg_UnpackKeywords.
* gh-122943: Move code generation for var-positional parameter to converters ↵Serhiy Storchaka2024-11-082-73/+91
| | | | (GH-126575)
* gh-89640: Restore configure error message on failure to detect float word ↵Hood Chatham2024-11-082-2/+7
| | | | | | | | | | | order (#126569) Before #126387, if we didn't detect float word order we'd raise the following configure error: Unknown float word ordering. You need to manually preset ax_cv_c_float_words_bigendian=no (or yes) according to your system. This puts it back (except for ARM or WASM, which as hardcoded).
* gh-126171: fix possible null dereference in _imp_find_frozen_impl (#126566)Valery Fedorenko2024-11-081-1/+1
|
* gh-122943: Remove the object converter for var-positional parameter (GH-126560)Serhiy Storchaka2024-11-087-87/+80
|
* gh-120017: use 'do-while(0)' in some `{codegen,compile}.c` multi-line macros ↵Bénédikt Tran2024-11-072-62/+72
| | | | (#120018)
* GH-123877: default to `wasm32-wasip1` instead of `wasm32-wasi` to be more ↵Brett Cannon2024-11-075-9/+12
| | | | | | | | | specific (GH-126552) Eventually wasm32-wasi will represent WASI 1.0, and so it's currently deprecated so it can be used for that eventual purpose. wasm32-wasip1 is also more specific to what version of WASI is currently supported. --------- Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
* gh-122943: Rework support of var-positional parameter in Argument Clinic ↵Serhiy Storchaka2024-11-0722-662/+1597
| | | | | | | | | | | | | | | | | | (GH-122945) Move creation of a tuple for var-positional parameter out of _PyArg_UnpackKeywordsWithVararg(). Merge _PyArg_UnpackKeywordsWithVararg() with _PyArg_UnpackKeywords(). Add a new parameter in _PyArg_UnpackKeywords(). The "parameters" and "converters" attributes of ParseArgsCodeGen no longer contain the var-positional parameter. It is now available as the "varpos" attribute. Optimize code generation for var-positional parameter and reuse the same generating code for functions with and without keyword parameters. Add special converters for var-positional parameter. "tuple" represents it as a Python tuple and "array" represents it as a continuous array of PyObject*. "object" is a temporary alias of "tuple".
* GH-126464 Fix JIT CI on aarch64-apple-darwin (GH-126494)alm2024-11-071-8/+7
|
* gh-126298: Don't deduplicate slice constants based on equality (#126398)Michael Droettboom2024-11-072-20/+93
| | | | | | | | | | | | | | | * gh-126298: Don't deduplicated slice constants based on equality * NULL check for PySlice_New * Fix refcounting * Fix refcounting some more * Fix refcounting * Make tests more complete * Fix tests
* gh-76785: Minor Cleanup of "Cross-interpreter" Code (gh-126457)Eric Snow2024-11-0715-337/+343
| | | | | | | | The primary objective here is to allow some later changes to be cleaner. Mostly this involves renaming things and moving a few things around. * CrossInterpreterData -> XIData * crossinterpdatafunc -> xidatafunc * split out pycore_crossinterp_data_registry.h * add _PyXIData_lookup_t
* Chore: Fix typo in `pyarena.c` (#126527)Aditya Borikar2024-11-071-1/+1
|
* gh-126529: Update devguide links to relative filenames in InternalDocs (#126530)Valerii2024-11-072-3/+3
| | | | Update devguide links to relative filenames in InternalDocs/parser.md and InternalDocs/compiler.md.
* Doc: C API: Demote sections to subsections for consistency (#126535)Richard Hansen2024-11-071-7/+7
| | | | The entire file should be a single section; the headings below the first heading should be subsections.
* GH-126222: Fix `_PyUop_num_popped` (GH-126507)Mark Shannon2024-11-074-56/+69
|
* gh-126500: test_ssl: Don't stop ThreadedEchoServer on OSError in ↵Petr Viktorin2024-11-071-5/+12
| | | | | | | | | | | | | | | | ConnectionHandler; rely on __exit__ (GH-126503) If `read()` in the ConnectionHandler thread raises `OSError` (except `ConnectionError`), the ConnectionHandler shuts down the entire ThreadedEchoServer, preventing further connections. It also does that for `EPROTOTYPE` in `wrap_conn`. As far as I can see, this is done to avoid the server thread getting stuck, forgotten, in its accept loop. However, since 2011 (5b95eb90a7167285b6544b50865227c584943c9a) the server is used as a context manager, and its `__exit__` does `stop()` and `join()`. (I'm not sure if we *always* used `with` since that commit, but currently we do.) Make sure that the context manager *is* used, and remove the `server.stop()` calls from ConnectionHandler.
* gh-126499: test_ssl: Don't assume err.reason is a string (GH-126501)Petr Viktorin2024-11-071-1/+1
| | | | | | | The skipping machinery called `getattr(err, "reason", "")` on an arbitrary exception. As intermittent Buildbot failures show, sometimes it's set to None. Convert it to string for this specific check.
* gh-48020: [docs] Remove the logging howto suggested future FileHandler ↵Gregory P. Smith2024-11-071-5/+2
| | | | | | | | | multiprocessing support (GH-126531) Docs: Remove the logging howto potential promise of multiprocessing support in the future. Stick to the facts and suggestions, don't provide hope where we're not going to implement complexity that we'd rather the user implement themselves when needed.
* gh-96398: Improve accuracy of compiler checks in configure.ac (#117815)Erlend E. Aasland2024-11-072-203/+127
| | | | | | | | | The following variables are now used in compiler checks: - $ac_cv_gcc_compat is set to 'yes' for GCC compatible compilers (the C preprocessor defines the __GNUC__ macro) - for compiler basename checks, use $CC_BASENAME (may contain platform triplets) - for the rest, use $ac_cv_cc_name (does not contain platform triplets)
* gh-125679: multiprocessing Lock and RLock - fix invalid representation ↵Duprat2024-11-073-2/+126
| | | | string on MacOSX. (#125680)
* Cleanup multiprocessing comment and unusual import error message (#126532)Gregory P. Smith2024-11-072-8/+8
| | | | Define constants as constants rather than calling `list(range(2))`. Explain which values must remain in sync via comments.
* gh-125926: Fix urllib.parse.urljoin() for base URI with undefined authority ↵Serhiy Storchaka2024-11-073-2/+78
| | | | | | | (GH-125989) Although this goes beyond the application of RFC 3986, urljoin() should support relative base URIs for backward compatibility.
* gh-125631: Enable setting persistent_id and persistent_load of pickler and ↵Serhiy Storchaka2024-11-073-2/+146
| | | | | | | unpickler (GH-125752) pickle.Pickler.persistent_id and pickle.Unpickler.persistent_load can again be overridden as instance attributes.
* GH-126458: disable SIMD for HACL under WASI (#126512)Brett Cannon2024-11-063-4/+9
| | | Requires an extra `-msimd128` flag and the `*mmintrin.h` header files are exclusive to x86-family CPUs.
* gh-126451: Register contextvars.Context to collections.abc.Mapping (#126452)Stephen Morton2024-11-063-0/+20
| | | | | Co-authored-by: sobolevn <mail@sobolevn.me> Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com> Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
* gh-126509: Update link to CPython's grammar docs in InternalDocs/parser.md ↵Valerii2024-11-061-1/+1
| | | | (#126510)
* gh-126513: Use helpers for `_Py_Specialize_ConstainsOp` (#126517)Kirill Podoprigora2024-11-061-17/+7
| | | | | * Use helpers for _Py_Specialize_ConstainsOp * Remove unnecessary variable
* gh-126489: Do not call persistent_id() for a persistent id in Python pickle ↵Serhiy Storchaka2024-11-063-4/+14
| | | | (GH-126490)
* gh-115999: Move specializer test from test_dis to test_opcache (gh-126498)Donghee Na2024-11-062-45/+59
|
* gh-115999: Introduce helpers for (un)specializing instructions (#126414)mpage2024-11-061-48/+84
| | | | | | | | Introduce helpers for (un)specializing instructions Consolidate the code to specialize/unspecialize instructions into two helper functions and use them in `_Py_Specialize_BinaryOp`. The resulting code is more concise and keeps all of the logic at the point where we decide to specialize/unspecialize an instruction.
* gh-126461: Fix _Unpickler_ReadFromFile() error handling (#126485)Victor Stinner2024-11-061-0/+4
| | | Handle _Unpickler_SetStringInput() failure.
* gh-122838: Document missing opcodes (#123073)Kamil Turek2024-11-061-0/+21
|
* gh-126455: Disallow _ssl.SSLSocket instantiation (#126481)Victor Stinner2024-11-061-1/+1
| | | | Prevent creation of incomplete/invalid _ssl.SSLSocket objects when created directly.