]>
git.ipfire.org Git - thirdparty/Python/cpython.git/log
Sam Gross [Sat, 20 Dec 2025 20:37:31 +0000 (15:37 -0500)]
gh-122581: Use parser mutex in default build for subinterpreters (gh-142959)
Sam Gross [Sat, 20 Dec 2025 19:42:12 +0000 (14:42 -0500)]
gh-120321: Avoid `-Wunreachable-code` warning on Clang (gh-143022)
Hai Zhu [Sat, 20 Dec 2025 17:27:34 +0000 (01:27 +0800)]
gh-142834: pdb commands command should use last available breakpoint (#142835)
AZero13 [Sat, 20 Dec 2025 07:37:10 +0000 (02:37 -0500)]
gh-143012: use `Py_ssize_t` cast for `PyBytes_FromStringAndSize` (#143013)
Hugo van Kemenade [Sat, 20 Dec 2025 01:36:09 +0000 (03:36 +0200)]
gh-142927: Tachyon: Start with user's default light/dark theme (#142987)
Sam Gross [Fri, 19 Dec 2025 23:06:47 +0000 (18:06 -0500)]
gh-129069: Fix listobject.c data races due to memmove (gh-142957)
The use of memmove and _Py_memory_repeat were not thread-safe in the
free threading build in some cases. In theory, memmove and
_Py_memory_repeat can copy byte-by-byte instead of pointer-by-pointer,
so concurrent readers could see uninitialized data or tearing.
Additionally, we should be using "release" (or stronger) ordering to be
compliant with the C11 memory model when copying objects within a list.
Sam Gross [Fri, 19 Dec 2025 22:33:49 +0000 (17:33 -0500)]
gh-120321: Fix TSan reported race in gen_clear_frame (gh-142995)
TSan treats compare-exchanges that fail as if they are writes
so there is a false positive with the read of gi_frame_state in
gen_close.
Sam Gross [Fri, 19 Dec 2025 19:10:37 +0000 (14:10 -0500)]
gh-120321: Make gi_frame_state transitions atomic in FT build (gh-142599)
This makes generator frame state transitions atomic in the free
threading build, which avoids segfaults when trying to execute
a generator from multiple threads concurrently.
There are still a few operations that aren't thread-safe and may crash
if performed concurrently on the same generator/coroutine:
* Accessing gi_yieldfrom/cr_await/ag_await
* Accessing gi_frame/cr_frame/ag_frame
* Async generator operations
Shamil [Fri, 19 Dec 2025 19:07:11 +0000 (22:07 +0300)]
gh-142476: fix memory leak when creating JIT executors (GH-142492)
Ken Jin [Fri, 19 Dec 2025 19:06:34 +0000 (03:06 +0800)]
gh-134584: JIT: Borrow references for immortal promoted globals (GH-142921)
JIT: Borrow references for immortal promoted globals
stratakis [Fri, 19 Dec 2025 18:14:52 +0000 (19:14 +0100)]
gh-142776: Ensure fp file descriptor is closed on all code paths in import.c (GH-142777)
Ken Jin [Fri, 19 Dec 2025 17:43:36 +0000 (01:43 +0800)]
gh-142961: Fix constant folding len(tuple) in JIT (GH-142963)
Petr Viktorin [Fri, 19 Dec 2025 16:48:34 +0000 (17:48 +0100)]
gh-134160: Start "Extending and embedding" with a Diataxis-style tutorial (GH-142314)
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Co-authored-by: Éric <merwok@netwok.org>
Co-authored-by: Daniele Nicolodi <daniele@grinta.net>
Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
Diego Russo [Fri, 19 Dec 2025 14:39:41 +0000 (14:39 +0000)]
JIT: Rename trampoline.c to shim.c (#142974)
Rogdham [Fri, 19 Dec 2025 12:44:03 +0000 (13:44 +0100)]
gh-136282: Configparser: create unnamed sections via mapping protocol access (GH-136313)
Andrej [Fri, 19 Dec 2025 08:29:35 +0000 (00:29 -0800)]
gh-142527: Docs: Clarify that random.seed() discards the sign of an integer input (#142483)
If *a* is an integer, the sign of *a* is discarded in the C source code. Clarify this behavior to prevent foot guns, where a common use case might naively assume that flipping the sign will produce different sequences (e.g. for a train/test split of a synthetic data generator in machine learning).
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
wangxiaolei [Fri, 19 Dec 2025 08:02:23 +0000 (16:02 +0800)]
gh-142560: prevent use-after-free in search-like methods by exporting buffer in bytearray (#142938)
Savannah Ostrowski [Thu, 18 Dec 2025 21:29:54 +0000 (13:29 -0800)]
GH-134584: Remove redundant refcount for `BINARY_OP_SUBSCR_STR_INT` (#142844)
Ethan Furman [Thu, 18 Dec 2025 18:31:37 +0000 (10:31 -0800)]
gh-118342: [Enum] update docs (GH-137290)
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
LloydZ [Thu, 18 Dec 2025 18:25:36 +0000 (02:25 +0800)]
gh-134584: Eliminate redundant refcounting from _BINARY_OP_SUBSCR_LIST_INT (GH-142926)
Sam Gross [Thu, 18 Dec 2025 18:11:51 +0000 (13:11 -0500)]
gh-129068: Make range iterators thread-safe (gh-142886)
Now that we specialize range iteration in the interpreter for the common
case where the iterator has only one reference, there's not a
significant performance cost to making the iteration thread-safe.
Kumar Aditya [Thu, 18 Dec 2025 17:18:56 +0000 (22:48 +0530)]
gh-142890: remove unnecessary interp parameter from dict functions and `_PyDict_NotifyEvent` (#142923)
Serhiy Storchaka [Thu, 18 Dec 2025 17:04:28 +0000 (19:04 +0200)]
gh-142681: Move NormalizationTest-3.2.0.txt to more safe place. (GH-142935)
Mark Shannon [Thu, 18 Dec 2025 16:43:44 +0000 (16:43 +0000)]
GH-142513: Reimplement executor management (GH-142931)
* Invalidating an executor does not cause arbitrary code to run
* Executors are only freed at safe points
Donghee Na [Thu, 18 Dec 2025 14:33:49 +0000 (23:33 +0900)]
gh-142419: Add mmap.set_name method for user custom annotation (gh-142480)
Hugo van Kemenade [Thu, 18 Dec 2025 14:22:23 +0000 (16:22 +0200)]
gh-76007: Deprecate `VERSION` in `xml.etree.ElementTree` & `version` in `xml.sax.expatreader` & `xml.sax.handler` (#142898)
Max R [Thu, 18 Dec 2025 13:43:19 +0000 (08:43 -0500)]
Fix typo in `format_string` docstring (GH-136742)
Bartosz Sławecki [Thu, 18 Dec 2025 13:00:12 +0000 (14:00 +0100)]
gh-142784: make the asyncio REPL call `loop.close()` at exit (#142785)
MonadChains [Thu, 18 Dec 2025 12:50:05 +0000 (13:50 +0100)]
gh-124098: Fix incorrect inclusion of handler methods without protocol prefix in OpenerDirector (GH-136873)
Donghee Na [Thu, 18 Dec 2025 12:33:18 +0000 (21:33 +0900)]
gh-134584: Remove redundant refcount from _BINARY_OP_ADD_UNICODE (gh-142825)
James [Thu, 18 Dec 2025 12:17:42 +0000 (07:17 -0500)]
gh-137063: Document that ast node types replaced by Constant are no longer available (#137064)
ivonastojanovic [Thu, 18 Dec 2025 11:43:39 +0000 (11:43 +0000)]
gh-138122: Improve bytecode panel (#142910)
The bytecode panel appears when a user generates a heatmap with
--opcodes and clicks the button to unfold a line and display the
bytecode instructions. Currently, an empty space appears on the
left where the line number, self, and total columns are displayed.
This area should instead extend those columns, rather than leaving
a gap.
Ken Jin [Wed, 17 Dec 2025 22:47:47 +0000 (06:47 +0800)]
gh-139757: Treat call specially in JIT assembly backend optimizer on x86-64 and AArch64 (GH-142907)
Co-authored-by: Savannah Ostrowski <savannah@python.org>
Sam Gross [Wed, 17 Dec 2025 20:27:04 +0000 (15:27 -0500)]
gh-129748: Remove TSan suppression for mi_block_set_nextx (gh-142887)
The function was already changed to use a relaxed atomic store in gh-134238.
Savannah Ostrowski [Wed, 17 Dec 2025 19:21:45 +0000 (11:21 -0800)]
GH-100964: Fix reference cycle in exhausted generator frames (#141112)
Sam Gross [Wed, 17 Dec 2025 18:06:32 +0000 (13:06 -0500)]
gh-142766: Clear frame when `generator.close()` is called (gh-142838)
Pablo Galindo Salgado [Wed, 17 Dec 2025 17:43:52 +0000 (17:43 +0000)]
gh-91048: Refactor common data into context object in Modules/_remote_debugging (#142879)
Ken Jin [Wed, 17 Dec 2025 17:05:21 +0000 (01:05 +0800)]
gh-142849: Fix segfault in `executor_to_gv` (GH-142885)
Fix segfault in `executor_to_gv`
sobolevn [Wed, 17 Dec 2025 16:41:36 +0000 (19:41 +0300)]
gh-142873: Do not check for `PyContextVar_CheckExact` twice in `PyContextVar_Set` (#142874)
Damian Birchler [Wed, 17 Dec 2025 16:40:03 +0000 (17:40 +0100)]
gh-142876: remove reference to thread in documentation of `asyncio.Queue.shutdown` (#142888)
Petr Viktorin [Wed, 17 Dec 2025 15:33:09 +0000 (16:33 +0100)]
gh-142225: Add PyABIInfo_VAR to to _testcapimodule & _testinternalcapi (GH-142833)
Pablo Galindo Salgado [Wed, 17 Dec 2025 15:12:28 +0000 (15:12 +0000)]
gh-138122: Validate base frame before caching in remote debugging frame cache (#142852)
Benjamin Johnson [Wed, 17 Dec 2025 15:09:57 +0000 (07:09 -0800)]
gh-112127: Fix possible use-after-free in atexit.unregister() (GH-114092)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Ken Jin [Wed, 17 Dec 2025 14:21:02 +0000 (22:21 +0800)]
Use other name for JIT contributor (#142877)
Keming [Wed, 17 Dec 2025 14:15:22 +0000 (22:15 +0800)]
gh-142654: show the clear error message when sampling on an unknown PID in tachyon (#142655)
Co-authored-by: Pablo Galindo Salgado <pablogsal@gmail.com>
Savannah Ostrowski [Wed, 17 Dec 2025 12:14:44 +0000 (04:14 -0800)]
gh-139038: Add JIT What's New for 3.15 (#142845)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Ken Jin <kenjin4096@gmail.com>
Mark Shannon [Wed, 17 Dec 2025 12:07:07 +0000 (12:07 +0000)]
GH-142621: JIT: Avoid memory load for symbols within 4GB on AArch64 (GH-142820)
sobolevn [Wed, 17 Dec 2025 11:23:30 +0000 (14:23 +0300)]
gh-142859: Add `Tools/check-c-api-docs` to mypy check (#142860)
Lysandros Nikolaou [Wed, 17 Dec 2025 11:09:51 +0000 (12:09 +0100)]
gh-140374: Add glossary entries related to multithreading (#140375)
---------
Co-authored-by: Daniele Parmeggiani <8658291+dpdani@users.noreply.github.com>
yihong [Wed, 17 Dec 2025 09:44:47 +0000 (17:44 +0800)]
gh-139743: Avoid print twice verbose version for sqlite tests (GH-142850)
Signed-off-by: yihong0618 <zouzou0208@gmail.com>
wangxiaolei [Wed, 17 Dec 2025 08:35:08 +0000 (16:35 +0800)]
gh-142783: Fix possible use after free in zoneinfo module (GH-142790)
Kumar Aditya [Wed, 17 Dec 2025 07:47:12 +0000 (13:17 +0530)]
gh-142752: add more thread safety tests for mock (#142791)
Jason R. Coombs [Wed, 17 Dec 2025 07:38:00 +0000 (02:38 -0500)]
gh-142836: Avoid /proc fd pipes on Solaris (#142853)
Ken Jin [Wed, 17 Dec 2025 00:12:32 +0000 (08:12 +0800)]
gh-142543: Mark tracer functions as Py_NO_INLINE (GH-142846)
Nadeshiko Manju [Tue, 16 Dec 2025 22:21:04 +0000 (07:21 +0900)]
gh-134584: Eliminate redundant refcounting from `_STORE_ATTR_WITH_HINT` (GH-142767)
Signed-off-by: Manjusaka <me@manjusaka.me>
ivonastojanovic [Tue, 16 Dec 2025 20:58:56 +0000 (20:58 +0000)]
gh-138122: Update Tachyon dark theme colors (#142841)
Nadeshiko Manju [Tue, 16 Dec 2025 20:39:20 +0000 (05:39 +0900)]
gh-134584: Eliminate redundant refcounting from `_LOAD_ATTR_INSTANCE_VALUE` (GH-142769)
Signed-off-by: Manjusaka <me@manjusaka.me>
Mark Shannon [Tue, 16 Dec 2025 19:57:15 +0000 (19:57 +0000)]
GH-142629: JIT: Fix out of bounds memory read in lltrace (GH-142821)
JIT: Fix out of bounds memory read in lltrace
Gabriele N. Tornetta [Tue, 16 Dec 2025 16:23:27 +0000 (16:23 +0000)]
Make RESUME monitoring more readable and robust (GH-142136)
Edward Xu [Tue, 16 Dec 2025 15:04:20 +0000 (23:04 +0800)]
gh-142495: Make `defaultdict` keep existed value when racing with `__missing__` (GH-142668)
Hugo van Kemenade [Tue, 16 Dec 2025 14:31:52 +0000 (16:31 +0200)]
Post 3.15.0a3
Hugo van Kemenade [Tue, 16 Dec 2025 12:25:53 +0000 (14:25 +0200)]
Python 3.15.0a3
Petr Viktorin [Tue, 16 Dec 2025 12:20:48 +0000 (13:20 +0100)]
gh-142754: Ensure that Element & Attr instances have the ownerDocument attribute (#142794)
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Hugo van Kemenade [Tue, 16 Dec 2025 12:08:51 +0000 (14:08 +0200)]
gh-76007: Deprecate `__version__` attribute in `wsgiref.simple_server` (#142675)
1nftf [Tue, 16 Dec 2025 11:56:12 +0000 (19:56 +0800)]
gh-142019: Add description about the exponent of result formatted with presentation type 'e' (#142084)
Cody Maloney [Tue, 16 Dec 2025 11:53:56 +0000 (03:53 -0800)]
gh-83926: BlockingIOError characters_written is byte count (#141215)
Mikhail Efimov [Tue, 16 Dec 2025 11:49:14 +0000 (14:49 +0300)]
gh-119786: Remove mention of `_PyThreadState_BumpFramePointer` from `InternalDocs/interpreter.md` (#141816)
Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
Mohsin Mehmood [Tue, 16 Dec 2025 11:46:42 +0000 (16:46 +0500)]
gh-141218: Fix inaccurate object comparison documentation (#141221)
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Owain Davies [Tue, 16 Dec 2025 11:46:13 +0000 (11:46 +0000)]
Remove duplicate content in `Mapping types - dict` documentation (#141036)
Cameron Beck [Tue, 16 Dec 2025 11:44:12 +0000 (06:44 -0500)]
Correct Glossary key function example to use str.casefold instead of str.lower (#140316)
Sergey B Kirpichev [Tue, 16 Dec 2025 11:41:59 +0000 (14:41 +0300)]
decimal docs: specification link and examples (#128698)
Co-authored-by: RUANG (James Roy) <longjinyii@outlook.com>
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Adorilson Bezerra [Tue, 16 Dec 2025 11:39:20 +0000 (11:39 +0000)]
gh-106318: Add examples for str.ljust() method (#142719)
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Petr Viktorin [Tue, 16 Dec 2025 11:38:11 +0000 (12:38 +0100)]
Clarify that PyStructSequence is different from collections.namedtuple (#142626)
Arthur Wigo [Tue, 16 Dec 2025 11:29:52 +0000 (03:29 -0800)]
gh-130536: Add details to `os.path` documentation (#130557)
Stan Ulbrych [Tue, 16 Dec 2025 11:26:33 +0000 (11:26 +0000)]
gh-85204: Improve `locale.setlocale` example (#132683)
Patrick R [Tue, 16 Dec 2025 11:21:38 +0000 (12:21 +0100)]
gh-124864: Extends smtplib documentation on ESMTP options format (#132547)
Bartosz Sławecki [Tue, 16 Dec 2025 10:15:37 +0000 (11:15 +0100)]
gh-139320: Cover exception chaining in the docs of `contextmanager.__exit__` (GH-140169)
Sergey B Kirpichev [Tue, 16 Dec 2025 08:52:20 +0000 (11:52 +0300)]
gh-142595: Amend
be5e0dcdedb (fix NULL pointer dereference) (GH-142775)
Savannah Ostrowski [Mon, 15 Dec 2025 23:18:44 +0000 (15:18 -0800)]
GH-134584: Remove redundant refcount from `_STORE_ATTR_SLOT` (#142729)
Bartosz Sławecki [Mon, 15 Dec 2025 22:58:50 +0000 (23:58 +0100)]
gh-142737: Handle lost `io.open` in `_Py_FindSourceFile` (GH-142747)
Ken Jin [Mon, 15 Dec 2025 22:22:18 +0000 (06:22 +0800)]
gh-134584: JIT: Eliminate redundant refcount ops for X_INT (GH-142765)
AN Long [Mon, 15 Dec 2025 22:12:52 +0000 (07:12 +0900)]
gh-85222: Document the global start method side effect in multiprocessing (GH-136426)
* Document the ctx parameter in some types in multiprocessing.
* Reduce duplication while still linking to the central explanation from API points with the side effect.
Co-authored-by: Carol Willing <carolcode@willingconsulting.com>
Co-authored-by: R Chintan Meher <meherrihaan@gmail.com>
Ken Jin [Mon, 15 Dec 2025 21:50:42 +0000 (05:50 +0800)]
Add Fidget-Spinner to more JIT CODEOWNERS (GH-142768)
Nadeshiko Manju [Mon, 15 Dec 2025 20:17:12 +0000 (04:17 +0800)]
gh-134584: Eliminate redundant refcounting from `_STORE_ATTR_INSTANCE_VALUE` (GH-142759)
Signed-off-by: Manjusaka <me@manjusaka.me>
Ken Jin [Mon, 15 Dec 2025 19:38:58 +0000 (03:38 +0800)]
gh-134584: Remove custom float decref ops (GH-142576)
Hugo van Kemenade [Mon, 15 Dec 2025 19:27:06 +0000 (21:27 +0200)]
gh-141081: Revert "Add a `.gitignore` file to `__pycache__` folders (#141162)" (#142758)
Mark Shannon [Mon, 15 Dec 2025 19:01:29 +0000 (19:01 +0000)]
GH-142718: JIT: Fix crash due to incorrect caching on side exits when exiting jitted code. (GH-142762)
JIT: Fix crash due to incorrect caching on side exits when exiting jitted code.
* Make sure that stack is in correct state at side exits with TOS cached values
* Simplify choice of cached items for side exits
Alper [Mon, 15 Dec 2025 17:47:04 +0000 (09:47 -0800)]
gh-116738: Make _bz2 module thread-safe (gh-142756)
Make the attributes in _bz2 module thread-safe on the free-threading build.
Attributes (eof, needs_input, unused_data) are now stored atomically or
accessed via mutex-protected getters.
Sam Gross [Mon, 15 Dec 2025 17:03:49 +0000 (12:03 -0500)]
gh-142472: Clean-up _PyStackRef functions (gh-142479)
This combines most _PyStackRef functions and macros between the free
threaded and default builds.
- Remove Py_TAG_DEFERRED (same as Py_TAG_REFCNT)
- Remove PyStackRef_IsDeferred (same as !PyStackRef_RefcountOnObject)
Donghee Na [Mon, 15 Dec 2025 16:42:32 +0000 (01:42 +0900)]
gh-134584: Eliminate redundant refcounting from _STORE_SUBSCR_DICT (GH-142712)
Co-authored-by: Ken Jin <kenjin4096@gmail.com>
Nadeshiko Manju [Mon, 15 Dec 2025 15:49:36 +0000 (23:49 +0800)]
gh-134584: Eliminate redundant refcounting from _CALL_LIST_APPEND (GH-142711)
Signed-off-by: Manjusaka <me@manjusaka.me>
Co-authored-by: Ken Jin <kenjin4096@gmail.com>
Lucas Colley [Mon, 15 Dec 2025 15:04:16 +0000 (15:04 +0000)]
gh-142466: Pixi package definitions for downstream use (#142469)
* WIP: ENH: Pixi package definitions for downstream development
[skip ci]
* linux-64 support
* tidy gitignore
* respond to review
- switch cases on `PYTHON_VARIANT`
- remove `minor_version` by using `python3`
- remove runtime-only asan options
* README updates
* use `.md` to preview rendering
* Apply suggestions from code review
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
* Apply suggestion from @FFY00
Co-authored-by: Filipe Laíns <filipe.lains@gmail.com>
* Apply suggestion from @FFY00
Co-authored-by: Filipe Laíns <filipe.lains@gmail.com>
* Apply suggestion from @FFY00
Co-authored-by: Filipe Laíns <filipe.lains@gmail.com>
* Apply suggestion from @lucascolley
---------
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Filipe Laíns <filipe.lains@gmail.com>
Stan Ulbrych [Mon, 15 Dec 2025 14:19:02 +0000 (14:19 +0000)]
Move doc on structure from devguide to `InternalDocs` (GH-142237)
Co-Authored-By: Paul Ross <apaulross@gmail.com>
Co-Authored-By: Carol Willing <carolcode@willingconsulting.com>
Co-Authored-By: Hugo van Kemenade <hugovk@users.noreply.github.com>
Co-Authored-By: Ezio Melotti <ezio.melotti@gmail.com>
Co-Authored-By: Adam Turner <9087854+aa-turner@users.noreply.github.com>
Petr Viktorin [Mon, 15 Dec 2025 14:15:22 +0000 (15:15 +0100)]
gh-142020: ctypes docs: Note that find_library relies on the programs it runs (GH-142134)
yihong [Mon, 15 Dec 2025 14:13:58 +0000 (22:13 +0800)]
gh-142594: fix by property calls io.TextIOWrapper.detach (GH-142706)
Signed-off-by: yihong0618 <zouzou0208@gmail.com>
Victor Stinner [Mon, 15 Dec 2025 13:25:30 +0000 (14:25 +0100)]
gh-142217: Recommend PyUnicode_InternFromString() to replace _PyUnicode_FromId() (GH-142746)
dr-carlos [Mon, 15 Dec 2025 12:20:19 +0000 (22:50 +1030)]
gh-142029: Raise `ModuleNotFoundError` instead of crashing on nonexsistent module name given to `create_builtin()` (#142054)
Co-authored-by: Brett Cannon <brett@python.org>
Co-authored-by: Victor Stinner <vstinner@python.org>
Pablo Galindo Salgado [Mon, 15 Dec 2025 12:11:40 +0000 (12:11 +0000)]
gh-138122: Add --subprocesses flag to profile child processes in tachyon (#142636)
Cody Maloney [Mon, 15 Dec 2025 12:10:31 +0000 (04:10 -0800)]
gh-139871: Optimize bytearray construction with encoding (#142243)
When a `str` is encoded in `bytearray.__init__` the encoder tends to
create a new unique bytes object. Rather than allocate new memory and
copy the bytes use the already created bytes object as bytearray
backing. The bigger the `str` the bigger the saving.
Mean +- std dev: [main_encoding] 497 us +- 9 us -> [encoding] 14.2 us +- 0.3 us: 34.97x faster
```python
import pyperf
runner = pyperf.Runner()
runner.timeit(
name="encode",
setup="a = 'a' * 1_000_000",
stmt="bytearray(a, encoding='utf8')")
```
chaope [Mon, 15 Dec 2025 11:43:15 +0000 (06:43 -0500)]
gh-142651: make `Mock.call_count` thread-safe (#142656)