| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
(#116449)
|
|
|
|
| |
(GH-116298)
|
| |
|
| |
|
|
|
|
| |
building for WASI (GH-116445)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This follows in the footsteps of #21586
This speeds up import uuid by about 6ms on Linux.
Before:
```
λ hyperfine -w 4 "./python -c 'import uuid'"
Benchmark 1: ./python -c 'import uuid'
Time (mean ± σ): 20.4 ms ± 0.4 ms [User: 16.7 ms, System: 3.8 ms]
Range (min … max): 19.6 ms … 21.8 ms 136 runs
```
After:
```
λ hyperfine -w 4 "./python -c 'import uuid'"
Benchmark 1: ./python -c 'import uuid'
Time (mean ± σ): 14.5 ms ± 0.3 ms [User: 11.5 ms, System: 3.2 ms]
Range (min … max): 13.9 ms … 16.0 ms 175 runs
```
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds `VERIFY_X509_STRICT` to make the default
SSL context perform stricter (per RFC 5280) validation, as well
as `VERIFY_X509_PARTIAL_CHAIN` to enforce more standards-compliant
path-building behavior.
As part of this changeset, I had to tweak `make_ssl_certs.py`
slightly to emit 5280-conforming CA certs. This changeset includes
the regenerated certificates after that change.
Signed-off-by: William Woodruff <william@yossarian.net>
Co-authored-by: Victor Stinner <vstinner@python.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix some test_multiprocessing flakiness.
Potentially introduced by https://github.com/python/cpython/pull/25845
not joining that thread likely leads to recently observed "environment
changed" logically passing but overall failing tests seen on some
buildbots similar to:
```
1 test altered the execution environment (env changed):
test.test_multiprocessing_fork.test_processes
2 re-run tests:
test.test_multiprocessing_fork.test_processes
test.test_multiprocessing_forkserver.test_processes
```
|
|
|
|
|
|
|
|
| |
Previously, the `locked` field was set after releasing the lock. This reverses
the order so that the `locked` field is set while the lock is still held.
There is still one thread-safety issue where `locked` is checked prior to
releasing the lock, however, in practice that will only be an issue when
unlocking the lock is contended, which should be rare.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* Specialize CONTAINS_OP
* 📜🤖 Added by blurb_it.
* Add PyAPI_FUNC for JIT
---------
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
|
|
|
|
|
| |
availability (GH-116278)
Suggest use of "hasattr" with checking for 3.13 Expat API availability
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Revert "gh-115398: Increment PyExpat_CAPI_MAGIC for SetReparseDeferralEnabled addition (GH-116301)"
This reverts part of commit eda2963378a3c292cf6bb202bb00e94e46ee6d90. Why? this comment buried in an earlier code review explains:
I checked again how that value is used in practice, it's here:
https://github.com/python/cpython/blob/0c80da4c14d904a367968955544dd6ae58c8101c/Modules/_elementtree.c#L4363-L4372
Based on that code my understanding is that loading bigger structs from the future is considered okay unless `PyExpat_CAPI_MAGIC` differs, which implies that (1) magic needs to stay the same to support loading the future from the past and (2) that `PyExpat_CAPI_MAGIC` should only ever change for changes that do not increase size (but keep it constant).
To summarize, that supports your argument.
I checked branches 3.8, 3.9, 3.10, 3.11, 3.12 now and they all have the same comparison code there so reverting that magic string bump will support seamless backporting.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This implements the delayed reuse of mimalloc pages that contain Python
objects in the free-threaded build.
Allocations of the same size class are grouped in data structures called
pages. These are different from operating system pages. For thread-safety, we
want to ensure that memory used to store PyObjects remains valid as long as
there may be concurrent lock-free readers; we want to delay using it for
other size classes, in other heaps, or returning it to the operating system.
When a mimalloc page becomes empty, instead of immediately freeing it, we tag
it with a QSBR goal and insert it into a per-thread state linked list of
pages to be freed. When mimalloc needs a fresh page, we process the queue and
free any still empty pages that are now deemed safe to be freed. Pages
waiting to be freed are still available for allocations of the same size
class and allocating from a page prevent it from being freed. There is
additional logic to handle abandoned pages when threads exit.
|
| |
|
|
|
|
|
| |
Co-authored-by: Éric <merwok@netwok.org>
Co-authored-by: Petr Viktorin <encukou@gmail.com>
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
|
|
|
|
| |
(GH-116410)
|
|
|
|
|
| |
(GH-116360)
Most comparisons create booleans
|
|
|
|
|
|
| |
_PyConfig_AsDict() now returns bool objects for options using the new
PyConfig_MEMBER_BOOL type.
Update tests for these changes.
|
| |
|
|
|
| |
Co-authored-by: Sam Gross <colesbury@gmail.com>
|
|
|
| |
Co-authored-by: @CendioOssman
|
|
|
| |
Amend wording after gh-116019 was merged.
|
|
|
|
|
|
|
|
| |
This sets `MI_DEBUG` to `2` in debug builds to enable `mi_assert_internal()`
calls. Expensive internal assertions are not enabled.
This also disables an assertion in free-threaded builds that would be
triggered by the free-threaded GC because we traverse heaps that are not
owned by the current thread.
|
|
|
| |
I accidentally introduced the warning in gh-116328.
|
| |
|
|
|
|
| |
This adjusts `length` rather than using `length+1`
all over the place.
|
|
|
| |
Signed-off-by: cui fliter <imcusg@gmail.com>
|
|
|
| |
This includes adding pickle support to various classes, and small changes to improve the maintainability of the low-level _xxinterpqueues module.
|
|
|
|
| |
urllib.parse functions parse_qs() and parse_qsl() now support bytes
arguments containing raw and percent-encoded non-ASCII data.
|
|
|
|
| |
charset (GH-116125)
|
|
|
| |
closure is not a function pointer, it is a user data pointer.
|
| |
|
| |
|
| |
|
|
|
|
| |
(#116339)
|
|
|
|
| |
(GH-116311)
|
|
|
|
| |
empty string arg (#116341)
|
|
|
|
| |
(GH-116336)
|
|
|
|
|
|
|
|
|
| |
primitives (#116327)
* GH-116313: get WASI builds to run under wasmtime 18 w/ WASI 0.2/preview2 primitives
* Add the configure changes
* Update `wasm_build.py`
|
| |
|
| |
|
|
|
|
|
| |
Remove sentence in Tools/c-analyzer/README referring to deleted
ignore-globals.txt.
|
|
|
|
|
| |
Handle Reloading Properly (gh-115493)
The problem manifested when the .py module got reloaded and the corresponding extension module didn't. The .py module registers types with the extension and the extension was not allowing that to happen more than once. The solution: let it happen more than once.
|
|
|
|
| |
(#115321)
|
|
|
| |
I had added an extra cleanup abstraction a while back that has turned out to be unnecessary.
|
| |
|
| |
|
| |
|