Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[3.13] gh-127349: Add check for correct resizing in REPL (GH-127387) #129484

Closed
wants to merge 1,697 commits into from

Conversation

donBarbos
Copy link
Contributor

@donBarbos donBarbos commented Jan 30, 2025

miss-islington and others added 30 commits December 1, 2024 09:21
…ated line number for breakpoint() (pythonGH-127457) (python#127487)

(cherry picked from commit 1bc4f07)
…ythonGH-127451) (python#127496)

pythongh-127443: Fix some entries in `Doc/data/refcounts.dat` (pythonGH-127451)

Fix incorrect entries in `Doc/data/refcounts.dat`
(cherry picked from commit 1f8267b)

Co-authored-by: Bénédikt Tran <[email protected]>
Fix Unicode encode_wstr_utf8() (python#127420)

Raise RuntimeError instead of RuntimeWarning.

Co-authored-by: Victor Stinner <[email protected]>
…nGH-127048) (python#127508)

pythongh-126618: fix repr(itertools.count(sys.maxsize)) (pythonGH-127048)
(cherry picked from commit 930ba0c)

Co-authored-by: Sergey B Kirpichev <[email protected]>
Co-authored-by: Bénédikt Tran <[email protected]>
…ized DECREF paths (pythonGH-125704) (python#125705)

pythongh-125703: Correctly honour tracemalloc hooks on specialized DECREF paths (pythonGH-125704)
(cherry picked from commit f8ba9fb)

Co-authored-by: Pablo Galindo Salgado <[email protected]>
…python#125780)

Make SSL objects thread safe in Free Theaded build by
using critical sections.

(cherry picked from commit 4c53b25)

Co-authored-by: Peter Bierma <[email protected]>
Co-authored-by: Bénédikt Tran <[email protected]>
…nput (pythonGH-125732) (python#126023)

pythongh-125666: Avoid PyREPL exiting when a null byte is in input (pythonGH-125732)
(cherry picked from commit 44becb8)

Co-authored-by: devdanzin <[email protected]>
pythonGH-121481) (python#126334)

The CPython uses _Py_dg_dtoa(), which does rounding to nearest with half
to even tie-breaking rule.

If that functions is unavailable, PyOS_double_to_string() fallbacks to
system snprintf().  Since CPython 3.12, build requirements include C11
compiler *and* support for IEEE 754 floating point numbers (Annex F).
This means that FE_TONEAREST macro is available and, per default,
printf-like functions should use same rounding mode as _Py_dg_dtoa().

(cherry picked from commit 7d7d56d)

Co-authored-by: Sergey B Kirpichev <[email protected]>
Co-authored-by: Bénédikt Tran <[email protected]>
…Protocols (pythonGH-126702) (python#126762)

pythongh-126699: allow AsyncIterator to be used as a base for Protocols (pythonGH-126702)
(cherry picked from commit feb3e0b)

Co-authored-by: Stephen Morton <[email protected]>
…tements in the language reference (pythonGH-126720) (python#126885)

Docs: Miscellaneous corrections to simple statements in the language reference (pythonGH-126720)

* Replace: The :keyword:`global` -> The :keyword:`global` statement
Add :keyword: when it's needed

* Replace repeated links with duoble backticks

(cherry picked from commit 94a7a4e)

Co-authored-by: Beomsoo Kim <[email protected]>
…) (python#127500)

add missing gc_collect() calls in sqlite3 tests (pythonGH-127446)
(cherry picked from commit 2a373da)

Co-authored-by: CF Bolz-Tereick <[email protected]>
…_pow() (pythonGH-127211) (python#127216)

Note, that transformed expression is not an equivalent for original one (1/exp(-x) != exp(x) in general for floating-point numbers). Though, the difference seems to be ~1ULP for good libm implementations.

It's more interesting why division was used from beginning. Closest algorithm I've found (no error checks, of course;)) - it's Algorithm 190 from ACM: https://dl.acm.org/doi/10.1145/366663.366679. It uses subtraction in the exponent.

(cherry picked from commit f7bb658)

Co-authored-by: Sergey B Kirpichev <[email protected]>
pythonGH-126968) (python#127002)

pythongh-126876: Fix socket internal_select() for large timeout (pythonGH-126968)

If the timeout is larger than INT_MAX, replace it with INT_MAX, in
the poll() code path.

Add an unit test.
(cherry picked from commit b3687ad)

Co-authored-by: Victor Stinner <[email protected]>
… in a PyInterpreterState Field (pythongh-127114)

This approach eliminates the originally reported race.  It also gets rid of the deadlock reported in pythongh-96071, so we can remove the workaround added then.

This is mostly a cherry-pick of 1c0a104 (AKA pythongh-126989).  The difference is we add PyInterpreterState.threads_preallocated at the end of PyInterpreterState, instead of adding PyInterpreterState.threads.preallocated.  That avoids ABI disruption.
…ssary (pythonGH-127524) (pythonGH-127533)

In the free threading build, if a non-owning thread resizes a list,
it must use QSBR to free the old list array because there may be a
concurrent access (without a lock) from the owning thread.

To match the pattern in dictobject.c, we just mark the list as "shared"
before resizing if it's from a non-owning thread and not already marked
as shared.
(cherry picked from commit c7dec02)

Co-authored-by: Sam Gross <[email protected]>
…istent with IPv4 (pythonGH-122793) (pythonGH-123815)

Make IPv4-mapped IPv6 address properties consistent with IPv4.
(cherry picked from commit 76a1c5d)

Co-authored-by: Seth Michael Larson <[email protected]>
…ythonGH-123941) (python#123991)

pythongh-123935: Fix typo in `_get_slots` in `dataclasses.py` (pythonGH-123941)
(cherry picked from commit ac918cc)

Co-authored-by: sobolevn <[email protected]>
…ythongh-122952) (python#122984)

pythongh-122907: Fix Builds Without HAVE_DYNAMIC_LOADING Set (pythongh-122952)

As of 529a160 (pythongh-118204), building with HAVE_DYNAMIC_LOADING stopped working.  This is a minimal fix just to get builds working again.  There are actually a number of long-standing deficiencies with HAVE_DYNAMIC_LOADING builds that need to be resolved separately.
(cherry picked from commit ee1b8ce)

Co-authored-by: Eric Snow <[email protected]>
…honGH-127549) (python#127574)

pythongh-127421: Fix race in test_start_new_thread_failed (pythonGH-127549)

Fix race in test_start_new_thread_failed

When we succeed in starting a new thread, for example if setrlimit
was ineffective, we must wait for the newly spawned thread to exit.
Otherwise, we run the risk that the newly spawned thread will race
with runtime finalization and access memory that has already been
clobbered/freed.

`_thread.start_new_thread()` only spawns daemon threads, which the runtime
does not wait for at shutdown, and does not return a handle. Use
`_thread.start_joinable_thread()` and join the resulting handle when
the thread is started successfully.
(cherry picked from commit 13b68e1)

Co-authored-by: mpage <[email protected]>
) (python#127569)

Add an documentation entry about `traceback.print_list`

Co-authored-by: Tomas R. <[email protected]>
@AA-Turner
Copy link
Member

@donBarbos you need to re-create this PR with 3.13 as the target branch, cherry_picker should do this automatically for you.

@donBarbos donBarbos deleted the backport-510fefd-3.13 branch January 30, 2025 20:16
@donBarbos donBarbos restored the backport-510fefd-3.13 branch January 30, 2025 20:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
awaiting review topic-repl Related to the interactive shell
Projects
None yet
Development

Successfully merging this pull request may close these issues.