Skip to content

Commit a44b2d7

Browse files
committed
Merge branch 'main' into subprocess-fast-wait
2 parents 3e9d303 + 9eab67d commit a44b2d7

File tree

76 files changed

+3170
-1174
lines changed

Some content is hidden

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

76 files changed

+3170
-1174
lines changed

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ jobs:
261261
# Keep 1.1.1w in our list despite it being upstream EOL and otherwise
262262
# unsupported as it most resembles other 1.1.1-work-a-like ssl APIs
263263
# supported by important vendors such as AWS-LC.
264-
openssl_ver: [1.1.1w, 3.0.18, 3.2.6, 3.3.5, 3.4.3, 3.5.4]
264+
openssl_ver: [1.1.1w, 3.0.18, 3.3.5, 3.4.3, 3.5.4, 3.6.0]
265265
# See Tools/ssl/make_ssl_data.py for notes on adding a new version
266266
env:
267267
OPENSSL_VER: ${{ matrix.openssl_ver }}

Doc/c-api/long.rst

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -687,7 +687,7 @@ Export API
687687
688688
.. versionadded:: 3.14
689689
690-
.. c:struct:: PyLongLayout
690+
.. c:type:: PyLongLayout
691691
692692
Layout of an array of "digits" ("limbs" in the GMP terminology), used to
693693
represent absolute value for arbitrary precision integers.
@@ -727,15 +727,15 @@ Export API
727727
728728
Get the native layout of Python :class:`int` objects.
729729
730-
See the :c:struct:`PyLongLayout` structure.
730+
See the :c:type:`PyLongLayout` structure.
731731
732732
The function must not be called before Python initialization nor after
733733
Python finalization. The returned layout is valid until Python is
734734
finalized. The layout is the same for all Python sub-interpreters
735735
in a process, and so it can be cached.
736736
737737
738-
.. c:struct:: PyLongExport
738+
.. c:type:: PyLongExport
739739
740740
Export of a Python :class:`int` object.
741741
@@ -769,7 +769,7 @@ Export API
769769
770770
Export a Python :class:`int` object.
771771
772-
*export_long* must point to a :c:struct:`PyLongExport` structure allocated
772+
*export_long* must point to a :c:type:`PyLongExport` structure allocated
773773
by the caller. It must not be ``NULL``.
774774
775775
On success, fill in *\*export_long* and return ``0``.
@@ -799,7 +799,7 @@ The :c:type:`PyLongWriter` API can be used to import an integer.
799799
800800
.. versionadded:: 3.14
801801
802-
.. c:struct:: PyLongWriter
802+
.. c:type:: PyLongWriter
803803
804804
A Python :class:`int` writer instance.
805805
@@ -827,7 +827,7 @@ The :c:type:`PyLongWriter` API can be used to import an integer.
827827
The layout of *digits* is described by :c:func:`PyLong_GetNativeLayout`.
828828
829829
Digits must be in the range [``0``; ``(1 << bits_per_digit) - 1``]
830-
(where the :c:struct:`~PyLongLayout.bits_per_digit` is the number of bits
830+
(where the :c:type:`~PyLongLayout.bits_per_digit` is the number of bits
831831
per digit).
832832
Any unused most significant digits must be set to ``0``.
833833

Doc/data/stable_abi.dat

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Doc/library/base64.rst

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,15 +84,20 @@ POST request.
8484
A :exc:`binascii.Error` exception is raised
8585
if *s* is incorrectly padded.
8686

87-
If *validate* is ``False`` (the default), characters that are neither
87+
If *validate* is false (the default), characters that are neither
8888
in the normal base-64 alphabet nor the alternative alphabet are
89-
discarded prior to the padding check. If *validate* is ``True``,
90-
these non-alphabet characters in the input result in a
91-
:exc:`binascii.Error`.
89+
discarded prior to the padding check, but the ``+`` and ``/`` characters
90+
keep their meaning if they are not in *altchars* (they will be discarded
91+
in future Python versions).
92+
If *validate* is true, these non-alphabet characters in the input
93+
result in a :exc:`binascii.Error`.
9294

9395
For more information about the strict base64 check, see :func:`binascii.a2b_base64`
9496

95-
May assert or raise a :exc:`ValueError` if the length of *altchars* is not 2.
97+
.. deprecated:: next
98+
Accepting the ``+`` and ``/`` characters with an alternative alphabet
99+
is now deprecated.
100+
96101

97102
.. function:: standard_b64encode(s)
98103

@@ -123,6 +128,9 @@ POST request.
123128
``/`` in the standard Base64 alphabet, and return the decoded
124129
:class:`bytes`.
125130

131+
.. deprecated:: next
132+
Accepting the ``+`` and ``/`` characters is now deprecated.
133+
126134

127135
.. function:: b32encode(s)
128136

Doc/library/http.cookies.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -294,9 +294,9 @@ The following example demonstrates how to use the :mod:`http.cookies` module.
294294
Set-Cookie: chips=ahoy
295295
Set-Cookie: vienna=finger
296296
>>> C = cookies.SimpleCookie()
297-
>>> C.load('keebler="E=everybody; L=\\"Loves\\"; fudge=\\012;";')
297+
>>> C.load('keebler="E=everybody; L=\\"Loves\\"; fudge=;";')
298298
>>> print(C)
299-
Set-Cookie: keebler="E=everybody; L=\"Loves\"; fudge=\012;"
299+
Set-Cookie: keebler="E=everybody; L=\"Loves\"; fudge=;"
300300
>>> C = cookies.SimpleCookie()
301301
>>> C["oreo"] = "doublestuff"
302302
>>> C["oreo"]["path"] = "/"

Doc/library/idle.rst

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ Go to Line
158158

159159
Show Completions
160160
Open a scrollable list allowing selection of existing names. See
161-
:ref:`Completions <completions>` in the Editing and navigation section below.
161+
:ref:`Completions <completions>` in the Editing and Navigation section below.
162162

163163
Expand Word
164164
Expand a prefix you have typed to match a full word in the same window;
@@ -167,7 +167,7 @@ Expand Word
167167
Show Call Tip
168168
After an unclosed parenthesis for a function, open a small window with
169169
function parameter hints. See :ref:`Calltips <calltips>` in the
170-
Editing and navigation section below.
170+
Editing and Navigation section below.
171171

172172
Show Surrounding Parens
173173
Highlight the surrounding parenthesis.
@@ -178,9 +178,9 @@ Format menu (Editor window only)
178178
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
179179

180180
Format Paragraph
181-
Reformat the current blank-line-delimited paragraph in comment block or
182-
multiline string or selected line in a string. All lines in the
183-
paragraph will be formatted to less than N columns, where N defaults to 72.
181+
Rewrap the text block containing the text insert cursor.
182+
Avoid code lines. See :ref:`Format block<format-block>` in the
183+
Editing and Navigation section below.
184184

185185
Indent Region
186186
Shift selected lines right by the indent width (default 4 spaces).
@@ -566,6 +566,20 @@ In an editor, import statements have no effect until one runs the file.
566566
One might want to run a file after writing import statements, after
567567
adding function definitions, or after opening an existing file.
568568

569+
.. _format-block:
570+
571+
Format block
572+
^^^^^^^^^^^^
573+
574+
Reformat Paragraph rewraps a block ('paragraph') of contiguous equally
575+
indented non-blank comments, a similar block of text within a multiline
576+
string, or a selected subset of either.
577+
If needed, add a blank line to separate string from code.
578+
Partial lines in a selection expand to complete lines.
579+
The resulting lines have the same indent as before
580+
but have maximum total length of N columns (characters).
581+
Change the default N of 72 on the Window tab of IDLE Settings.
582+
569583
.. _code-context:
570584

571585
Code Context

Doc/using/windows.rst

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -126,9 +126,8 @@ is also an unambiguous ``pymanager`` command. Scripted installs that are
126126
intending to use Python install manager should consider using ``pymanager``, due
127127
to the lower chance of encountering a conflict with existing installs. The only
128128
difference between the two commands is when running without any arguments:
129-
``py`` will install and launch your default interpreter, while ``pymanager``
130-
will display help (``pymanager exec ...`` provides equivalent behaviour to
131-
``py ...``).
129+
``py`` will launch your default interpreter, while ``pymanager`` will display
130+
help (``pymanager exec ...`` provides equivalent behaviour to ``py ...``).
132131

133132
Each of these commands also has a windowed version that avoids creating a
134133
console window. These are ``pyw``, ``pythonw`` and ``pymanagerw``. A ``python3``
@@ -187,12 +186,11 @@ that virtual environment. In this scenario, the ``python`` command was likely
187186
already overridden and none of these checks occurred. However, this behaviour
188187
ensures that the ``py`` command can be used interchangeably.
189188

190-
When you launch either ``python`` or ``py`` but do not have any runtimes
191-
installed, and the requested version is the default, it will be installed
192-
automatically and then launched. Otherwise, the requested version will be
193-
installed if automatic installation is configured (most likely by setting
194-
``PYTHON_MANAGER_AUTOMATIC_INSTALL`` to ``true``), or if the ``py exec`` or
195-
``pymanager exec`` forms of the command were used.
189+
When no runtimes are installed, any launch command will try to install the
190+
requested version and launch it. However, after any version is installed, only
191+
the ``py exec ...`` and ``pymanager exec ...`` commands will install if the
192+
requested version is absent. Other forms of commands will display an error and
193+
direct you to use ``py install`` first.
196194

197195

198196
Command help
@@ -301,6 +299,14 @@ To launch the runtime, directly execute the main executable (typically
301299
302300
$> py install ... [-t=|--target=<PATH>] <TAG>
303301
302+
The ``py exec`` command will install the requested runtime if it is not already
303+
present. This is controlled by the ``automatic_install`` configuration
304+
(:envvar:`PYTHON_MANAGER_AUTOMATIC_INSTALL`), and is enabled by default.
305+
If no runtimes are available at all, all launch commands will do an automatic
306+
install if the configuration setting allows. This is to ensure a good experience
307+
for new users, but should not generally be relied on rather than using the
308+
``py exec`` command or explicit install commands.
309+
304310

305311
.. _pymanager-offline:
306312

@@ -426,9 +432,11 @@ customization.
426432
By default, :file:`%TEMP%`.
427433

428434
* - ``automatic_install``
429-
- ``PYTHON_MANAGER_AUTOMATIC_INSTALL``
430-
- True to allow automatic installs when using ``py exec`` to launch.
431-
Other commands will not automatically install.
435+
- .. envvar:: PYTHON_MANAGER_AUTOMATIC_INSTALL
436+
- True to allow automatic installs when using ``py exec`` to launch (or
437+
``py`` when no runtimes are installed yet).
438+
Other commands will not automatically install, regardless of this
439+
setting.
432440
By default, true.
433441

434442
* - ``include_unmanaged``
@@ -777,7 +785,7 @@ Troubleshooting
777785

778786
If your Python install manager does not seem to be working correctly, please
779787
work through these tests and fixes to see if it helps. If not, please report an
780-
issue at `our bug tracker <https://github.com/python/cpython/issues>`_,
788+
issue at `our bug tracker <https://github.com/python/pymanager/issues>`_,
781789
including any relevant log files (written to your :file:`%TEMP%` directory by
782790
default).
783791

Doc/whatsnew/3.15.rst

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -806,6 +806,12 @@ tkinter
806806
using Tcl's ``-all`` and ``-overlap`` options.
807807
(Contributed by Rihaan Meher in :gh:`130848`)
808808

809+
* Added new methods :meth:`!pack_content`, :meth:`!place_content` and
810+
:meth:`!grid_content` which use Tk commands with new names (introduced
811+
in Tk 8.6) instead of :meth:`!*_slaves` methods which use Tk commands
812+
with outdated names.
813+
(Contributed by Serhiy Storchaka in :gh:`143754`)
814+
809815
types
810816
------
811817

@@ -1157,6 +1163,15 @@ Deprecated
11571163
New deprecations
11581164
----------------
11591165

1166+
* :mod:`base64`:
1167+
1168+
* Accepting the ``+`` and ``/`` characters with an alternative alphabet in
1169+
:func:`~base64.b64decode` and :func:`~base64.urlsafe_b64decode` is now
1170+
deprecated.
1171+
In future Python versions they will be errors in the strict mode and
1172+
discarded in the non-strict mode.
1173+
(Contributed by Serhiy Storchaka in :gh:`125346`.)
1174+
11601175
* CLI:
11611176

11621177
* Deprecate :option:`-b` and :option:`!-bb` command-line options

Include/cpython/longintrepr.h

Lines changed: 0 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -138,45 +138,6 @@ _PyLong_CompactValue(const PyLongObject *op)
138138

139139
#define PyUnstable_Long_CompactValue _PyLong_CompactValue
140140

141-
142-
/* --- Import/Export API -------------------------------------------------- */
143-
144-
typedef struct PyLongLayout {
145-
uint8_t bits_per_digit;
146-
uint8_t digit_size;
147-
int8_t digits_order;
148-
int8_t digit_endianness;
149-
} PyLongLayout;
150-
151-
PyAPI_FUNC(const PyLongLayout*) PyLong_GetNativeLayout(void);
152-
153-
typedef struct PyLongExport {
154-
int64_t value;
155-
uint8_t negative;
156-
Py_ssize_t ndigits;
157-
const void *digits;
158-
// Member used internally, must not be used for other purpose.
159-
Py_uintptr_t _reserved;
160-
} PyLongExport;
161-
162-
PyAPI_FUNC(int) PyLong_Export(
163-
PyObject *obj,
164-
PyLongExport *export_long);
165-
PyAPI_FUNC(void) PyLong_FreeExport(
166-
PyLongExport *export_long);
167-
168-
169-
/* --- PyLongWriter API --------------------------------------------------- */
170-
171-
typedef struct PyLongWriter PyLongWriter;
172-
173-
PyAPI_FUNC(PyLongWriter*) PyLongWriter_Create(
174-
int negative,
175-
Py_ssize_t ndigits,
176-
void **digits);
177-
PyAPI_FUNC(PyObject*) PyLongWriter_Finish(PyLongWriter *writer);
178-
PyAPI_FUNC(void) PyLongWriter_Discard(PyLongWriter *writer);
179-
180141
#ifdef __cplusplus
181142
}
182143
#endif

Include/internal/pycore_interp_structs.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,7 @@ typedef struct _PyOptimizationConfig {
411411

412412
// Optimization flags
413413
bool specialization_enabled;
414+
bool uops_optimize_enabled;
414415
} _PyOptimizationConfig;
415416

416417
struct

0 commit comments

Comments
 (0)