Skip to content

Commit b52a5f8

Browse files
authored
Merge branch 'main' into regex_compile_charset_memcpy
2 parents 30db44e + d733b10 commit b52a5f8

146 files changed

Lines changed: 5196 additions & 2326 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build.yml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ jobs:
354354
with:
355355
persist-credentials: false
356356
- name: Build and test
357-
run: python3 Platforms/Android ci --fast-ci ${{ matrix.arch }}-linux-android
357+
run: JAVA_HOME="${JAVA_HOME_21_X64:-$JAVA_HOME_21_arm64}" python3 Platforms/Android ci --fast-ci ${{ matrix.arch }}-linux-android
358358

359359
build-ios:
360360
name: iOS
@@ -519,10 +519,6 @@ jobs:
519519
run: echo "::add-matcher::.github/problem-matchers/gcc.json"
520520
- name: Install dependencies
521521
run: sudo ./.github/workflows/posix-deps-apt.sh
522-
- name: Set up GCC-10 for ASAN
523-
uses: egor-tensin/setup-gcc@a2861a8b8538f49cf2850980acccf6b05a1b2ae4 # v2.0
524-
with:
525-
version: 10
526522
- name: Configure OpenSSL env vars
527523
run: |
528524
echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> "$GITHUB_ENV"

.github/workflows/reusable-san.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,11 @@ jobs:
4040
# Install clang
4141
wget https://apt.llvm.org/llvm.sh
4242
chmod +x llvm.sh
43-
sudo ./llvm.sh 20
44-
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-20 100
45-
sudo update-alternatives --set clang /usr/bin/clang-20
46-
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-20 100
47-
sudo update-alternatives --set clang++ /usr/bin/clang++-20
43+
sudo ./llvm.sh 21
44+
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-21 100
45+
sudo update-alternatives --set clang /usr/bin/clang-21
46+
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-21 100
47+
sudo update-alternatives --set clang++ /usr/bin/clang++-21
4848
4949
if [ "${SANITIZER}" = "TSan" ]; then
5050
# Reduce ASLR to avoid TSan crashing

.github/workflows/reusable-ubuntu.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,9 @@ jobs:
4949
- name: Install Clang and BOLT
5050
if: ${{ fromJSON(inputs.bolt-optimizations) }}
5151
run: |
52-
sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh 19
53-
sudo apt-get install --no-install-recommends bolt-19
54-
echo PATH="$(llvm-config-19 --bindir):$PATH" >> $GITHUB_ENV
52+
sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh 21
53+
sudo apt-get install --no-install-recommends bolt-21
54+
echo PATH="$(llvm-config-21 --bindir):$PATH" >> $GITHUB_ENV
5555
- name: Configure OpenSSL env vars
5656
run: |
5757
echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> "$GITHUB_ENV"

Doc/c-api/lifecycle.dot.pdf

-18.9 KB
Binary file not shown.

Doc/c-api/lifecycle.rst

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ object's life. An arrow from *A* to *B* indicates that event *B* can occur
1919
after event *A* has occurred, with the arrow's label indicating the condition
2020
that must be true for *B* to occur after *A*.
2121

22-
.. only:: html and not epub
22+
.. only:: builder_html
2323

2424
.. raw:: html
2525

@@ -50,20 +50,13 @@ that must be true for *B* to occur after *A*.
5050
})();
5151
</script>
5252
53-
.. only:: epub or not (html or latex)
53+
.. only:: not builder_html
5454
5555
.. image:: lifecycle.dot.svg
5656
:align: center
5757
:class: invert-in-dark-mode
5858
:alt: Diagram showing events in an object's life. Explained in detail below.
5959
60-
.. only:: latex
61-
62-
.. image:: lifecycle.dot.pdf
63-
:align: center
64-
:class: invert-in-dark-mode
65-
:alt: Diagram showing events in an object's life. Explained in detail below.
66-
6760
.. container::
6861
:name: life-events-graph-description
6962

Doc/library/concurrent.futures.rst

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -386,11 +386,6 @@ in a REPL or a lambda should not be expected to work.
386386
default in absence of a *mp_context* parameter. This feature is incompatible
387387
with the "fork" start method.
388388

389-
.. note::
390-
Bugs have been reported when using the *max_tasks_per_child* feature that
391-
can result in the :class:`ProcessPoolExecutor` hanging in some
392-
circumstances. Follow its eventual resolution in :gh:`115634`.
393-
394389
.. versionchanged:: 3.3
395390
When one of the worker processes terminates abruptly, a
396391
:exc:`~concurrent.futures.process.BrokenProcessPool` error is now raised.
@@ -426,6 +421,11 @@ in a REPL or a lambda should not be expected to work.
426421
require the *fork* start method for :class:`ProcessPoolExecutor` you must
427422
explicitly pass ``mp_context=multiprocessing.get_context("fork")``.
428423

424+
.. versionchanged:: next
425+
Fixed a deadlock (:gh:`115634`) where the executor could hang after
426+
a worker process exited upon reaching its *max_tasks_per_child*
427+
limit while tasks remained queued.
428+
429429
.. method:: terminate_workers()
430430

431431
Attempt to terminate all living worker processes immediately by calling

Doc/library/curses.rst

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ Initialization and termination
7676
Initialize the library. Return a :ref:`window <curses-window-objects>` object
7777
which represents the whole screen.
7878

79+
See :func:`setupterm` for a caveat about calling it before this function.
80+
7981
.. note::
8082

8183
If there is an error opening the terminal, the underlying curses library may
@@ -106,6 +108,8 @@ Initialization and termination
106108
The new screen becomes the current one.
107109
Use :func:`set_term` to switch between screens.
108110

111+
See :func:`setupterm` for a caveat about calling it before this function.
112+
109113
.. versionadded:: next
110114

111115
.. function:: new_prescr()
@@ -959,6 +963,13 @@ Terminfo database
959963
terminfo database entry could not be read. If the terminal has already
960964
been initialized, this function has no effect.
961965

966+
.. note::
967+
968+
Calling :func:`initscr` or :func:`newterm` after :func:`setupterm`
969+
leaks the terminal that :func:`setupterm` allocated:
970+
the curses library keeps only a single current terminal
971+
and does not free the previously allocated one.
972+
962973
.. function:: tigetflag(capname)
963974

964975
Return the value of the Boolean capability corresponding to the terminfo

Doc/library/dialog.rst

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -217,9 +217,19 @@ These do not emulate the native look-and-feel of the platform.
217217
.. note:: The *FileDialog* class should be subclassed for custom event
218218
handling and behaviour.
219219

220-
.. class:: FileDialog(master, title=None)
220+
.. class:: FileDialog(master, title=None, *, use_ttk=True)
221221

222222
Create a basic file selection dialog.
223+
Its layout -- a filter entry, side-by-side directory and file lists, and a
224+
selection entry -- follows the classic Motif file selection dialog.
225+
When *use_ttk* is true (the default), the dialog is built from the themed
226+
:mod:`tkinter.ttk` widgets; when false, from the classic :mod:`tkinter`
227+
widgets.
228+
229+
.. versionchanged:: next
230+
The dialog is now built from the themed :mod:`tkinter.ttk` widgets by
231+
default, instead of the classic :mod:`tkinter` widgets.
232+
Added the *use_ttk* parameter.
223233

224234
.. method:: cancel_command(event=None)
225235

@@ -281,21 +291,27 @@ These do not emulate the native look-and-feel of the platform.
281291
Update the current file selection to *file*.
282292

283293

284-
.. class:: LoadFileDialog(master, title=None)
294+
.. class:: LoadFileDialog(master, title=None, *, use_ttk=True)
285295

286296
A subclass of FileDialog that creates a dialog window for selecting an
287297
existing file.
288298

299+
.. versionchanged:: next
300+
Added the *use_ttk* parameter.
301+
289302
.. method:: ok_command()
290303

291304
Test that a file is provided and that the selection indicates an
292305
already existing file.
293306

294-
.. class:: SaveFileDialog(master, title=None)
307+
.. class:: SaveFileDialog(master, title=None, *, use_ttk=True)
295308

296309
A subclass of FileDialog that creates a dialog window for selecting a
297310
destination file.
298311

312+
.. versionchanged:: next
313+
Added the *use_ttk* parameter.
314+
299315
.. method:: ok_command()
300316

301317
Test whether or not the selection points to a valid file that is not a

0 commit comments

Comments
 (0)