Skip to content

Commit eb434c5

Browse files
Merge branch 'main' into gh-159689-processpool-mid-send
2 parents cef240c + 3acc941 commit eb434c5

61 files changed

Lines changed: 1080 additions & 285 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/jit.yml‎

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -87,24 +87,16 @@ jobs:
8787
./PCbuild/rt.bat ${{ matrix.debug && '-d' || '' }} -p ${{ matrix.architecture }} -q --multiprocess 0 --timeout 4500 --verbose2 --verbose3
8888
8989
macos:
90-
name: ${{ matrix.target }} (${{ matrix.debug && 'Debug' || 'Release' }})
90+
name: aarch64-apple-darwin/clang (${{ matrix.debug && 'Debug' || 'Release' }})
9191

92-
runs-on: ${{ matrix.runner }}
92+
runs-on: macos-26
9393
timeout-minutes: 60
9494
strategy:
9595
fail-fast: false
9696
matrix:
97-
target:
98-
- x86_64-apple-darwin/clang
99-
- aarch64-apple-darwin/clang
10097
debug:
10198
- true
10299
- false
103-
include:
104-
- target: x86_64-apple-darwin/clang
105-
runner: macos-26-intel
106-
- target: aarch64-apple-darwin/clang
107-
runner: macos-26
108100
steps:
109101
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
110102
with:

‎.github/workflows/tail-call.yml‎

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,9 @@ env:
2424

2525
jobs:
2626
macos:
27-
name: ${{ matrix.target }}
28-
runs-on: ${{ matrix.runner }}
27+
name: aarch64-apple-darwin/clang
28+
runs-on: macos-26
2929
timeout-minutes: 60
30-
strategy:
31-
fail-fast: false
32-
matrix:
33-
include:
34-
- target: x86_64-apple-darwin/clang
35-
runner: macos-26-intel
36-
- target: aarch64-apple-darwin/clang
37-
runner: macos-26
3830
steps:
3931
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
4032
with:
@@ -49,7 +41,6 @@ jobs:
4941
- name: Build
5042
run: |
5143
export SDKROOT="$(xcrun --show-sdk-path)"
52-
export PATH="/usr/local/opt/llvm@${{ env.LLVM_VERSION }}/bin:$PATH"
5344
export PATH="/opt/homebrew/opt/llvm@${{ env.LLVM_VERSION }}/bin:$PATH"
5445
CC=clang-${{ env.LLVM_VERSION }} ./configure --with-tail-call-interp
5546
make all --jobs 4

‎Doc/c-api/init_config.rst‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -889,9 +889,9 @@ PyPreConfig
889889
* ``PYMEM_ALLOCATOR_PYMALLOC_DEBUG`` (``6``): :ref:`Python pymalloc
890890
memory allocator <pymalloc>` with :ref:`debug hooks
891891
<pymem-debug-hooks>`.
892-
* ``PYMEM_ALLOCATOR_MIMALLOC`` (``6``): use ``mimalloc``, a fast
892+
* ``PYMEM_ALLOCATOR_MIMALLOC`` (``7``): use ``mimalloc``, a fast
893893
malloc replacement.
894-
* ``PYMEM_ALLOCATOR_MIMALLOC_DEBUG`` (``7``): use ``mimalloc``, a fast
894+
* ``PYMEM_ALLOCATOR_MIMALLOC_DEBUG`` (``8``): use ``mimalloc``, a fast
895895
malloc replacement with :ref:`debug hooks <pymem-debug-hooks>`.
896896
897897

‎Doc/c-api/interp-lifecycle.rst‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ The following functions can be safely called before Python is initialized:
4848
* :c:func:`Py_GetCopyright`
4949
* :c:func:`Py_GetPlatform`
5050
* :c:func:`Py_GetVersion`
51-
* :c:func:`Py_IsInitialized`
5251

5352
* Utilities:
5453

@@ -491,7 +490,7 @@ deleted. This can be done using interpreter views.
491490
492491
An opaque view of an interpreter.
493492
494-
This is a thread-safe way to access an interpreter that may have be
493+
This is a thread-safe way to access an interpreter that may be
495494
finalizing or already destroyed.
496495
497496
.. versionadded:: 3.15

‎Doc/glossary.rst‎

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -727,9 +727,7 @@ Glossary
727727
when doing I/O.
728728

729729
As of Python 3.13, the GIL can be disabled using the :option:`--disable-gil`
730-
build configuration. After building Python with this option, code must be
731-
run with :option:`-X gil=0 <-X>` or after setting the :envvar:`PYTHON_GIL=0 <PYTHON_GIL>`
732-
environment variable. This feature enables improved performance for
730+
build configuration. This feature enables improved performance for
733731
multi-threaded applications and makes it easier to use multi-core CPUs
734732
efficiently. For more details, see :pep:`703`.
735733

‎Doc/library/email.charset.rst‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,8 +183,8 @@ new entries to the global character set, alias, and codec registries:
183183

184184
Optional *output_charset* is the character set that the output should be in.
185185
Conversions will proceed from input charset, to Unicode, to the output charset
186-
when the method :meth:`Charset.convert` is called. The default is to output in
187-
the same character set as the input.
186+
when the method :meth:`Charset.body_encode` is called. The default is to
187+
output in the same character set as the input.
188188

189189
Both *input_charset* and *output_charset* must have Unicode codec entries in the
190190
module's character set-to-codec mapping; use :func:`add_codec` to add codecs the

‎Doc/library/email.parser.rst‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ methods.
4848
FeedParser API
4949
^^^^^^^^^^^^^^
5050

51-
The :class:`BytesFeedParser`, imported from the :mod:`email.feedparser` module,
51+
The :class:`BytesFeedParser`, imported from the :mod:`!email.feedparser` module,
5252
provides an API that is conducive to incremental parsing of email messages,
5353
such as would be necessary when reading the text of an email message from a
5454
source that can block (such as a socket). The :class:`BytesFeedParser` can of
@@ -86,7 +86,7 @@ Here is the API for the :class:`BytesFeedParser`:
8686
more information on what else *policy* controls, see the
8787
:mod:`~email.policy` documentation.
8888

89-
Note: **The policy keyword should always be specified**; The default will
89+
Note: **The policy keyword should always be specified**. The default will
9090
change to :data:`email.policy.default` in a future version of Python.
9191

9292
.. versionadded:: 3.2
@@ -142,7 +142,7 @@ message body, instead setting the payload to the raw body.
142142
arguments have the same meaning and semantics as the *_factory*
143143
and *policy* arguments of :class:`BytesFeedParser`.
144144

145-
Note: **The policy keyword should always be specified**; The default will
145+
Note: **The policy keyword should always be specified**. The default will
146146
change to :data:`email.policy.default` in a future version of Python.
147147

148148
.. versionchanged:: 3.3

‎Doc/tools/.nitignore‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44

55
Doc/library/ast.rst
66
Doc/library/asyncio-extending.rst
7-
Doc/library/email.charset.rst
8-
Doc/library/email.parser.rst
97
Doc/library/logging.config.rst
108
Doc/library/logging.handlers.rst
119
Doc/library/multiprocessing.rst

‎Grammar/python.gram‎

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -218,15 +218,25 @@ import_stmt[stmt_ty](memo):
218218
# -----------------
219219

220220
import_name[stmt_ty]:
221-
| lazy="lazy"? 'import' a=dotted_as_names { _PyAST_Import(a, lazy ? 1 : 0, EXTRA) }
221+
| "lazy" 'import' a=dotted_as_names {
222+
CHECK_VERSION(stmt_ty, 15, "Lazy imports are",
223+
_PyAST_Import(a, 1, EXTRA)) }
224+
| 'import' a=dotted_as_names { _PyAST_Import(a, 0, EXTRA) }
222225

223226
# note below: the ('.' | '...') is necessary because '...' is tokenized as ELLIPSIS
224227
import_from[stmt_ty]:
225228
| invalid_import_from
226-
| lazy="lazy"? 'from' a=('.' | '...')* b=dotted_name 'import' c=import_from_targets {
227-
_PyPegen_checked_from_import(p, a, b, c, lazy, EXTRA) }
228-
| lazy="lazy"? 'from' a=('.' | '...')+ 'import' b=import_from_targets {
229-
_PyAST_ImportFrom(NULL, b, _PyPegen_seq_count_dots(a), lazy ? 1 : 0, EXTRA) }
229+
| lazy="lazy" 'from' a=('.' | '...')* b=dotted_name 'import' c=import_from_targets {
230+
CHECK_VERSION(stmt_ty, 15, "Lazy imports are",
231+
_PyPegen_checked_from_import(p, a, b, c, lazy, EXTRA)) }
232+
| "lazy" 'from' a=('.' | '...')+ 'import' b=import_from_targets {
233+
CHECK_VERSION(stmt_ty, 15, "Lazy imports are",
234+
_PyAST_ImportFrom(NULL, b, _PyPegen_seq_count_dots(a), 1, EXTRA)) }
235+
| 'from' a=('.' | '...')* b=dotted_name 'import' c=import_from_targets {
236+
_PyPegen_checked_from_import(p, a, b, c, NULL, EXTRA) }
237+
| 'from' a=('.' | '...')+ 'import' b=import_from_targets {
238+
_PyAST_ImportFrom(NULL, b, _PyPegen_seq_count_dots(a), 0, EXTRA) }
239+
230240
import_from_targets[asdl_alias_seq*]:
231241
| '(' a=import_from_as_names [','] ')' { a }
232242
| import_from_as_names !','

‎Include/internal/pycore_pyerrors.h‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,6 @@ extern int _PyErr_CheckSignalsTstate(PyThreadState *tstate);
186186
extern void _Py_DumpExtensionModules(int fd, PyInterpreterState *interp);
187187
// Exported for external JIT support
188188
PyAPI_FUNC(PyObject *) _Py_CalculateSuggestions(PyObject *dir, PyObject *name);
189-
extern PyObject* _Py_Offer_Suggestions(PyObject* exception);
190189

191190
// Export for '_testinternalcapi' shared extension
192191
PyAPI_FUNC(Py_ssize_t) _Py_UTF8_Edit_Cost(PyObject *str_a, PyObject *str_b,

0 commit comments

Comments
 (0)