cpython/Lib/test/support
mpage 2e95c5ba3b
gh-115999: Implement thread-local bytecode and enable specialization for BINARY_OP (#123926)
Each thread specializes a thread-local copy of the bytecode, created on the first RESUME, in free-threaded builds. All copies of the bytecode for a code object are stored in the co_tlbc array on the code object. Threads reserve a globally unique index identifying its copy of the bytecode in all co_tlbc arrays at thread creation and release the index at thread destruction. The first entry in every co_tlbc array always points to the "main" copy of the bytecode that is stored at the end of the code object. This ensures that no bytecode is copied for programs that do not use threads.

Thread-local bytecode can be disabled at runtime by providing either -X tlbc=0 or PYTHON_TLBC=0. Disabling thread-local bytecode also disables specialization.

Concurrent modifications to the bytecode made by the specializing interpreter and instrumentation use atomics, with specialization taking care not to overwrite an instruction that was instrumented concurrently.
2024-11-04 11:13:32 -08:00
..
_hypothesis_stubs GH-86275: Implementation of hypothesis stubs for property-based tests, with zoneinfo tests (#22863) 2023-05-12 08:35:53 -04:00
interpreters gh-76785: Expand How Interpreter Channels Handle Interpreter Finalization (gh-121805) 2024-07-15 19:43:59 +00:00
__init__.py gh-115999: Implement thread-local bytecode and enable specialization for BINARY_OP (#123926) 2024-11-04 11:13:32 -08:00
ast_helper.py gh-100518: Add tests for ast.NodeTransformer (#100521) 2023-01-21 21:44:41 +00:00
asynchat.py Fix typos in comments and test code (#122846) 2024-08-11 21:16:41 -07:00
asyncore.py Fix typos in comments and test code (#122846) 2024-08-11 21:16:41 -07:00
bytecode_helper.py Fix typos in comments and test code (#122846) 2024-08-11 21:16:41 -07:00
hashlib_helper.py bpo-45042: Now test classes decorated with requires_hashdigest are not skipped (GH-28060) 2021-09-04 23:42:36 +03:00
hypothesis_helper.py CI: set correct working directory for Hypothesis cache (GH-119345) 2024-05-29 14:13:18 +02:00
import_helper.py gh-124842: Fix test.support.import_helper.make_legacy_pyc() (GH-124843) 2024-10-01 16:05:17 +00:00
logging_helper.py bpo-40275: Avoid importing logging in test.support (GH-19601) 2020-04-25 11:35:18 +03:00
os_helper.py gh-118201: Accomodate flaky behavior of os.sysconf on iOS (GH-118453) 2024-04-30 22:31:00 -04:00
pty_helper.py gh-108303: Move all doctest related files and tests to Lib/test/test_doctest/ (#112109) 2024-01-18 16:58:11 +01:00
refleak_helper.py gh-80931: Skip some socket tests while hunting for refleaks on macOS (#114057) 2024-01-21 11:25:15 +01:00
script_helper.py gh-124188: Fix PyErr_ProgramTextObject() (GH-124189) 2024-09-24 11:01:37 +03:00
smtpd.py gh-121275: Fix test_logging and test_smtplib with Python build withoud IPv6 support (#121276) 2024-07-25 17:33:39 +05:30
socket_helper.py gh-109015: Add test.support.socket_helper.tcp_blackhole() (#109016) 2023-09-07 01:58:03 +02:00
strace_helper.py gh-120754: Add a strace helper and test set of syscalls for open().read(), Take 2 (#123413) 2024-11-02 20:37:21 -07:00
testcase.py gh-121039: add Floats/ComplexesAreIdenticalMixin to test.support.testcase (GH-121071) 2024-09-08 16:01:54 +03:00
threading_helper.py gh-111644: Fix support threading_cleanup() (#111714) 2023-11-04 00:18:42 +00:00
warnings_helper.py gh-103109: Document ignore_warnings() test support helper (#103110) 2023-04-03 00:18:25 +02:00