Skip to content

Commit 2f043fc

Browse files
itamarofacebook-github-bot
authored andcommitted
Import upstream CPython branch '3.14'
Summary: Python `3.14.0rc2+` (`3.14`) was **published** on 2025-08-26 05:45:08+00:00. # Commit Info Base: (`3.14.0rc2+`) - `271823fdafc29c00189bdb253199db3083dd3933` (commit date: 2025-08-23 16:27:51+00:00) Imported: (`3.14.0rc2+`) - `3.14` (commit date: 2025-08-26 05:45:08+00:00) # Files added ``` Misc/NEWS.d/next/Core_and_Builtins/2025-08-17-13-36-53.gh-issue-137883.55VDCN.rst Misc/NEWS.d/next/Tools-Demos/2025-08-21-14-04-50.gh-issue-137873.qxffLt.rst iOS/testbed/iOSTestbed.lldbinit iOS/testbed/iOSTestbed.xcodeproj/xcshareddata/xcschemes/iOSTestbed.xcscheme iOS/testbed/iOSTestbed.xctestplan ``` Reviewed By: DinoV Differential Revision: D81030813 fbshipit-source-id: 5a018e96e8a4ae5f2393bd1940120ef6ef7662d6
1 parent 1d69d84 commit 2f043fc

17 files changed

Lines changed: 294 additions & 348 deletions

File tree

.github/workflows/build.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,10 @@ jobs:
317317
fail-fast: false
318318
matrix:
319319
os: [ubuntu-24.04]
320-
openssl_ver: [3.0.17, 3.2.5, 3.3.4, 3.4.2, 3.5.2]
320+
# Keep 1.1.1w in our list despite it being upstream EOL and otherwise
321+
# unsupported as it most resembles other 1.1.1-work-a-like ssl APIs
322+
# supported by important vendors such as AWS-LC.
323+
openssl_ver: [1.1.1w, 3.0.17, 3.2.5, 3.3.4, 3.4.2, 3.5.2]
321324
# See Tools/ssl/make_ssl_data.py for notes on adding a new version
322325
env:
323326
OPENSSL_VER: ${{ matrix.openssl_ver }}

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ iOS/testbed/Python.xcframework/ios-*/lib
8080
iOS/testbed/Python.xcframework/ios-*/Python.framework
8181
iOS/testbed/iOSTestbed.xcodeproj/project.xcworkspace
8282
iOS/testbed/iOSTestbed.xcodeproj/xcuserdata
83-
iOS/testbed/iOSTestbed.xcodeproj/xcshareddata
8483
Mac/Makefile
8584
Mac/PythonLauncher/Info.plist
8685
Mac/PythonLauncher/Makefile

Doc/using/ios.rst

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,6 +374,17 @@ You can also open the testbed project in Xcode by running:
374374
375375
This will allow you to use the full Xcode suite of tools for debugging.
376376

377+
The arguments used to run the test suite are defined as part of the test plan.
378+
To modify the test plan, select the test plan node of the project tree (it
379+
should be the first child of the root node), and select the "Configurations"
380+
tab. Modify the "Arguments Passed On Launch" value to change the testing
381+
arguments.
382+
383+
The test plan also disables parallel testing, and specifies the use of the
384+
``iOSTestbed.lldbinit`` file for providing configuration of the debugger. The
385+
default debugger configuration disables automatic breakpoints on the
386+
``SIGINT``, ``SIGUSR1``, ``SIGUSR2``, and ``SIGXFSZ`` signals.
387+
377388
App Store Compliance
378389
====================
379390

Include/internal/pycore_opcode_metadata.h

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Lib/test/test_call.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1074,6 +1074,14 @@ def c_py_recurse(m):
10741074
with self.assertRaises(RecursionError):
10751075
c_py_recurse(100_000)
10761076

1077+
def test_recursion_with_kwargs(self):
1078+
# GH-137883: The interpreter forgot to check the recursion limit when
1079+
# calling with keywords.
1080+
def recurse_kw(a=0):
1081+
recurse_kw(a=0)
1082+
with self.assertRaises(RecursionError):
1083+
recurse_kw()
1084+
10771085

10781086
class TestFunctionWithManyArgs(unittest.TestCase):
10791087
def test_function_with_many_args(self):
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fix runaway recursion when calling a function with keyword arguments.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
The iOS test runner has been simplified, resolving some issues that have
2+
been observed using the runner in GitHub Actions and Azure Pipelines test
3+
environments.

Python/bytecodes.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4740,6 +4740,7 @@ dummy_func(
47404740
unused/1 + // Skip over the counter
47414741
_CHECK_PEP_523 +
47424742
_CHECK_FUNCTION_VERSION_KW +
4743+
_CHECK_RECURSION_REMAINING +
47434744
_PY_FRAME_KW +
47444745
_SAVE_RETURN_OFFSET +
47454746
_PUSH_FRAME;

Python/generated_cases.c.h

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

iOS/README.rst

Lines changed: 15 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ project, and then boot and prepare the iOS simulator.
293293
Debugging test failures
294294
-----------------------
295295

296-
Running ``make test`` generates a standalone version of the ``iOS/testbed``
296+
Running ``make testios`` generates a standalone version of the ``iOS/testbed``
297297
project, and runs the full test suite. It does this using ``iOS/testbed``
298298
itself - the folder is an executable module that can be used to create and run
299299
a clone of the testbed project.
@@ -316,12 +316,26 @@ This is the equivalent of running ``python -m test -W test_os`` on a desktop
316316
Python build. Any arguments after the ``--`` will be passed to testbed as if
317317
they were arguments to ``python -m`` on a desktop machine.
318318

319+
Testing in Xcode
320+
^^^^^^^^^^^^^^^^
321+
319322
You can also open the testbed project in Xcode by running::
320323

321324
$ open my-testbed/iOSTestbed.xcodeproj
322325

323326
This will allow you to use the full Xcode suite of tools for debugging.
324327

328+
The arguments used to run the test suite are defined as part of the test plan.
329+
To modify the test plan, select the test plan node of the project tree (it
330+
should be the first child of the root node), and select the "Configurations"
331+
tab. Modify the "Arguments Passed On Launch" value to change the testing
332+
arguments.
333+
334+
The test plan also disables parallel testing, and specifies the use of the
335+
``iOSTestbed.lldbinit`` file for providing configuration of the debugger. The
336+
default debugger configuration disables automatic breakpoints on the
337+
``SIGINT``, ``SIGUSR1``, ``SIGUSR2``, and ``SIGXFSZ`` signals.
338+
325339
Testing on an iOS device
326340
^^^^^^^^^^^^^^^^^^^^^^^^
327341

@@ -336,40 +350,3 @@ select the root node of the project tree (labeled "iOSTestbed"), then the
336350
(this will likely be your own name), and plug in a physical device to your
337351
macOS machine with a USB cable. You should then be able to select your physical
338352
device from the list of targets in the pulldown in the Xcode titlebar.
339-
340-
Running specific tests
341-
^^^^^^^^^^^^^^^^^^^^^^
342-
343-
As the test suite is being executed on an iOS simulator, it is not possible to
344-
pass in command line arguments to configure test suite operation. To work
345-
around this limitation, the arguments that would normally be passed as command
346-
line arguments are configured as part of the ``iOSTestbed-Info.plist`` file
347-
that is used to configure the iOS testbed app. In this file, the ``TestArgs``
348-
key is an array containing the arguments that would be passed to ``python -m``
349-
on the command line (including ``test`` in position 0, the name of the test
350-
module to be executed).
351-
352-
Disabling automated breakpoints
353-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
354-
355-
By default, Xcode will inserts an automatic breakpoint whenever a signal is
356-
raised. The Python test suite raises many of these signals as part of normal
357-
operation; unless you are trying to diagnose an issue with signals, the
358-
automatic breakpoints can be inconvenient. However, they can be disabled by
359-
creating a symbolic breakpoint that is triggered at the start of the test run.
360-
361-
Select "Debug > Breakpoints > Create Symbolic Breakpoint" from the Xcode menu, and
362-
populate the new brewpoint with the following details:
363-
364-
* **Name**: IgnoreSignals
365-
* **Symbol**: UIApplicationMain
366-
* **Action**: Add debugger commands for:
367-
- ``process handle SIGINT -n true -p true -s false``
368-
- ``process handle SIGUSR1 -n true -p true -s false``
369-
- ``process handle SIGUSR2 -n true -p true -s false``
370-
- ``process handle SIGXFSZ -n true -p true -s false``
371-
* Check the "Automatically continue after evaluating" box.
372-
373-
All other details can be left blank. When the process executes the
374-
``UIApplicationMain`` entry point, the breakpoint will trigger, run the debugger
375-
commands to disable the automatic breakpoints, and automatically resume.

0 commit comments

Comments
 (0)