mirror of
https://github.com/python/cpython.git
synced 2024-11-23 09:54:58 +08:00
2e95c5ba3b
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. |
||
---|---|---|
.. | ||
build | ||
buildbot | ||
c-analyzer | ||
cases_generator | ||
clinic | ||
freeze | ||
ftscalingbench | ||
gdb | ||
i18n | ||
importbench | ||
jit | ||
lockbench | ||
msi | ||
nuget | ||
patchcheck | ||
peg_generator | ||
scripts | ||
ssl | ||
tsan | ||
tz | ||
unicode | ||
unittestgui | ||
wasm | ||
README | ||
requirements-dev.txt | ||
requirements-hypothesis.txt |
This directory contains a number of Python programs that are useful while building or extending Python. build Automatically generated directory by the build system contain build artifacts and intermediate files. buildbot Batchfiles for running on Windows buildbot workers. c-analyzer Tools to check no new global variables have been added. cases_generator Tooling to generate interpreters. clinic A preprocessor for CPython C files in order to automate the boilerplate involved with writing argument parsing code for "builtins". freeze Create a stand-alone executable from a Python program. gdb Python code to be run inside gdb, to make it easier to debug Python itself (by David Malcolm). i18n Tools for internationalization. pygettext.py parses Python source code and generates .pot files, and msgfmt.py generates a binary message catalog from a catalog in text format. importbench A set of micro-benchmarks for various import scenarios. msi Support for packaging Python as an MSI package on Windows. nuget Files for the NuGet package manager for .NET. patchcheck Tools for checking and applying patches to the Python source code and verifying the integrity of patch files. peg_generator PEG-based parser generator (pegen) used for new parser. scripts A number of useful single-file programs, e.g. run_tests.py which runs the Python test suite. ssl Scripts to generate ssl_data.h from OpenSSL sources, and run tests against multiple installations of OpenSSL and LibreSSL. tz A script to dump timezone from /usr/share/zoneinfo. unicode Tools for generating unicodedata and codecs from unicode.org and other mapping files (by Fredrik Lundh, Marc-Andre Lemburg and Martin von Loewis). unittestgui A Tkinter based GUI test runner for unittest, with test discovery. wasm Config and helpers to facilitate cross compilation of CPython to WebAssembly (WASM). Note: The pynche color editor has moved to https://gitlab.com/warsaw/pynche