summaryrefslogtreecommitdiffstats
path: root/PCbuild
Commit message (Collapse)AuthorAgeFilesLines
* [3.13] gh-120642: Move private PyCode APIs to the internal C API (#120643) ↵Victor Stinner2024-06-262-4/+0
| | | | | | | | | | | | | | | | | | | | | (#121043) gh-120642: Move private PyCode APIs to the internal C API (#120643) * Move _Py_CODEUNIT and related functions to pycore_code.h. * Move _Py_BackoffCounter to pycore_backoff.h. * Move Include/cpython/optimizer.h content to pycore_optimizer.h. * Remove Include/cpython/optimizer.h. * Remove PyUnstable_Replace_Executor(). Rename functions: * PyUnstable_GetExecutor() => _Py_GetExecutor() * PyUnstable_GetOptimizer() => _Py_GetOptimizer() * PyUnstable_SetOptimizer() => _Py_SetTier2Optimizer() * PyUnstable_Optimizer_NewCounter() => _PyOptimizer_NewCounter() * PyUnstable_Optimizer_NewUOpOptimizer() => _PyOptimizer_NewUOpOptimizer() (cherry picked from commit 9e4a81f00fef689c6e18a64245aa064eaadc7ac7)
* [3.13] gh-119344: Make critical section API public (GH-119353) (#120856)Sam Gross2024-06-212-0/+8
| | | | | | | | | | | This makes the following macros public as part of the non-limited C-API for locking a single object or two objects at once. * `Py_BEGIN_CRITICAL_SECTION(op)` / `Py_END_CRITICAL_SECTION()` * `Py_BEGIN_CRITICAL_SECTION2(a, b)` / `Py_END_CRITICAL_SECTION2()` The supporting functions and structs used by the macros are also exposed for cases where C macros are not available. (cherry picked from commit 8f17d69b7bc906e8407095317842cc0fd52cd84a)
* [3.13] gh-117511: Make PyMutex public in the non-limited API (GH-117731) ↵Sam Gross2024-06-202-0/+8
| | | | | (#120800) (cherry picked from commit 3af7263037de1d0ef63b070fc7bfc2cf042eaebe)
* gh-116145: Updated bundled Tcl/Tk on Windows to 8.6.14 (GH-117030)Miss Islington (bot)2024-05-312-4/+4
| | | | | (cherry picked from commit 0e8d35b931f41210483cc51c4169e9a943c7f166) Co-authored-by: Steve Dower <steve.dower@python.org>
* gh-118734: Fixes Windows build when Use_TIER2 is unspecified (#118735)Steve Dower2024-05-073-3/+3
|
* gh-118518: Allow perf to work without frame pointers (#112254)Pablo Galindo Salgado2024-05-054-0/+8
|
* gh-111997: C-API for signalling monitoring events (#116413)Irit Katriel2024-05-043-1/+5
|
* gh-115119: Update Windows installer to mpdecimal 4.0.0 (#118506)Erlend E. Aasland2024-05-032-2/+2
|
* gh-118335: Rename --experimental-interpreter on Windows to ↵Guido van Rossum2024-05-021-3/+3
| | | | | --experimental-jit-interpreter (#118497) Also fix docs for this in whatsnew.
* gh-118335: Configure Tier 2 interpreter at build time (#118339)Guido van Rossum2024-05-013-2/+16
| | | | | | | | | | | | | | | | | | | | | | The code for Tier 2 is now only compiled when configured with `--enable-experimental-jit[=yes|interpreter]`. We drop support for `PYTHON_UOPS` and -`Xuops`, but you can disable the interpreter or JIT at runtime by setting `PYTHON_JIT=0`. You can also build it without enabling it by default using `--enable-experimental-jit=yes-off`; enable with `PYTHON_JIT=1`. On Windows, the `build.bat` script supports `--experimental-jit`, `--experimental-jit-off`, `--experimental-interpreter`. In the C code, `_Py_JIT` is defined as before when the JIT is enabled; the new variable `_Py_TIER2` is defined when the JIT *or* the interpreter is enabled. It is actually a bitmask: 1: JIT; 2: default-off; 4: interpreter.
* gh-117139: Add header for tagged pointers (GH-118330)Ken Jin2024-04-302-0/+4
| | | | | --------- Co-authored-by: Sam Gross <655866+colesbury@users.noreply.github.com>
* gh-116122: Add SBOM generation to PCbuild/build.bat (GH-116138)Seth Michael Larson2024-04-301-2/+13
|
* gh-76785: Rename _xxsubinterpreters to _interpreters (gh-117791)Eric Snow2024-04-242-6/+6
| | | See https://discuss.python.org/t/pep-734-multiple-interpreters-in-the-stdlib/41147/26.
* gh-117968: Add tests for the part of the PyRun family of the C API (GH-117982)Serhiy Storchaka2024-04-172-0/+4
| | | | Co-authored-by: NGRsoftlab <78017794+NGRsoftlab@users.noreply.github.com> Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
* gh-115009: Update Windows installer to use SQLite 3.45.3 (GH-117445)Mariusz Felisiak2024-04-163-3/+3
|
* gh-117494: extract the Instruction Sequence data structure into a separate ↵Irit Katriel2024-04-044-0/+10
| | | | file (#117496)
* gh-116968: Reimplement Tier 2 counters (#117144)Guido van Rossum2024-04-041-0/+1
| | | | | | | | | | | | Introduce a unified 16-bit backoff counter type (``_Py_BackoffCounter``), shared between the Tier 1 adaptive specializer and the Tier 2 optimizer. The API used for adaptive specialization counters is changed but the behavior is (supposed to be) identical. The behavior of the Tier 2 counters is changed: - There are no longer dynamic thresholds (we never varied these). - All counters now use the same exponential backoff. - The counter for ``JUMP_BACKWARD`` starts counting down from 16. - The ``temperature`` in side exits starts counting down from 64.
* gh-76785: Add PyInterpreterConfig Helpers (gh-117170)Eric Snow2024-04-024-0/+8
| | | These helpers make it easier to customize and inspect the config used to initialize interpreters. This is especially valuable in our tests. I found inspiration from the PyConfig API for the PyInterpreterConfig dict conversion stuff. As part of this PR I've also added a bunch of tests.
* gh-94808:Improve coverage of PyObject_Print (GH-98749)MonadChains2024-04-012-0/+4
|
* gh-117323: Make `cell` thread-safe in free-threaded builds (#117330)Sam Gross2024-03-292-0/+4
| | | Use critical sections to lock around accesses to cell contents. The critical sections are no-ops in the default (with GIL) build.
* gh-87193: Support bytes objects with refcount > 1 in _PyBytes_Resize() ↵Serhiy Storchaka2024-03-252-0/+4
| | | | | (GH-117160) Create a new bytes object and destroy the old one if it has refcount > 1.
* gh-76785: Drop PyInterpreterID_Type (gh-117101)Eric Snow2024-03-214-16/+0
| | | I added it quite a while ago as a strategy for managing interpreter lifetimes relative to the PEP 554 (now 734) implementation. Relatively recently I refactored that implementation to no longer rely on InterpreterID objects. Thus now I'm removing it.
* gh-115754: Add Py_GetConstant() function (#116883)Victor Stinner2024-03-212-0/+2
| | | | | | | | | | | | Add Py_GetConstant() and Py_GetConstantBorrowed() functions. In the limited C API version 3.13, getting Py_None, Py_False, Py_True, Py_Ellipsis and Py_NotImplemented singletons is now implemented as function calls at the stable ABI level to hide implementation details. Getting these constants still return borrowed references. Add _testlimitedcapi/object.c and test_capi/test_object.py to test Py_GetConstant() and Py_GetConstantBorrowed() functions.
* gh-116417: Move limited C API complex.c tests to _testlimitedcapi (#117014)Victor Stinner2024-03-192-0/+2
| | | | Split complex.c tests of _testcapi into two parts: limited C API tests in _testlimitedcapi and non-limited C API tests in _testcapi.
* gh-116417: Move limited C API dict.c tests to _testlimitedcapi (#117006)Victor Stinner2024-03-192-0/+2
| | | | Split dict.c tests of _testcapi into two parts: limited C API tests in _testlimitedcapi and non-limited C API tests in _testcapi.
* gh-116417: Move limited C API long.c tests to _testlimitedcapi (#117001)Victor Stinner2024-03-192-0/+3
| | | | | | | * Split long.c tests of _testcapi into two parts: limited C API tests in _testlimitedcapi and non-limited C API tests in _testcapi. * Move testcapi_long.h from Modules/_testcapi/ to Modules/_testlimitedcapi/. * Add MODULE__TESTLIMITEDCAPI_DEPS to Makefile.pre.in.
* gh-116417: Move limited C API unicode.c tests to _testlimitedcapi (#116993)Victor Stinner2024-03-192-0/+2
| | | | | | Split unicode.c tests of _testcapi into two parts: limited C API tests in _testlimitedcapi and non-limited C API tests in _testcapi. Update test_codecs.
* gh-116417: Move limited C API abstract.c tests to _testlimitedcapi (#116986)Victor Stinner2024-03-192-0/+4
| | | | | | | Split abstract.c and float.c tests of _testcapi into two parts: limited C API tests in _testlimitedcapi and non-limited C API tests in _testcapi. Update test_bytes and test_class.
* gh-116417: Move limited C API list.c tests to _testlimitedcapi (#116602)Victor Stinner2024-03-182-0/+4
| | | | | Split list.c and set.c tests of _testcapi into two parts: limited C API tests in _testlimitedcapi and non-limited C API tests in _testcapi.
* gh-108716: Cleanup remaining deepfreeze infrastructure (#116919)Guido van Rossum2024-03-182-24/+0
| | | | | Keep Tools/build/deepfreeze.py around (we may repurpose it for deepfreezing non-code objects), and keep basic "clean" targets that remove the output of former deep-freeze activities, to keep the build directories of current devs clean.
* gh-115119: Switch Windows build to mpdecimal external (GH-115182)Zachary Ware2024-03-184-63/+75
| | | | | This includes adding what should be a relatively temporary `Modules/_decimal/windows/mpdecimal.h` shim to choose between `mpdecimal32vc.h` or `mpdecimal64vc.h` based on which of `CONFIG_64` or `CONFIG_32` is defined.
* gh-116417: Move 4 limited C API test files to _testlimitedcapi (#116571)Victor Stinner2024-03-114-25/+13
| | | | | | | | | | | | | | | | Move the following files from Modules/_testcapi/ to Modules/_testlimitedcapi/: * bytearray.c * bytes.c * pyos.c * sys.c Changes: * Replace PyBytes_AS_STRING() with PyBytes_AsString(). * Replace PyBytes_GET_SIZE() with PyBytes_Size(). * Update related test_capi tests. * Copy Modules/_testcapi/util.h to Modules/_testlimitedcapi/util.h.
* gh-116472: Replace literal newlines with escape characters in MSBuild files ↵Dan Albert2024-03-071-3/+1
| | | | (GH-116473)
* gh-116417: Add _testlimitedcapi C extension (#116419)Victor Stinner2024-03-076-28/+205
| | | | | | | | | | | | | Add a new C extension "_testlimitedcapi" which is only built with the limited C API. Move heaptype_relative.c and vectorcall_limited.c from Modules/_testcapi/ to Modules/_testlimitedcapi/. * configure: add _testlimitedcapi test extension. * Update generate_stdlib_module_names.py. * Update make check-c-globals. Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
* gh-108051: Update versions found by find_python.bat and clarify readme ↵Steve Dower2024-02-292-7/+18
| | | | (GH-116118)
* GH-115816: Make tier2 optimizer symbols testable, and add a few tests. ↵Mark Shannon2024-02-274-0/+8
| | | | (GH-115953)
* gh-115582: Make default PC/pyconfig.h work for free-threaded builds with ↵Steve Dower2024-02-261-1/+1
| | | | manual /DPy_GIL_DISABLED (GH-115850)
* Rename tier 2 redundancy eliminator to optimizer (#115888)Guido van Rossum2024-02-261-3/+3
| | | | The original name is just too much of a mouthful.
* gh-115700: Add target `_RegenCases` in Windows build for cases regeneration. ↵Kirill Podoprigora2024-02-201-3/+29
| | | | (GH-115708)
* gh-115103: Implement delayed memory reclamation (QSBR) (#115180)Sam Gross2024-02-164-0/+12
| | | | | | This adds a safe memory reclamation scheme based on FreeBSD's "GUS" and quiescent state based reclamation (QSBR). The API provides a mechanism for callers to detect when it is safe to free memory that may be concurrently accessed by readers.
* gh-115556: Remove quotes from command-line arguments in test.bat and rt.bat ↵Łukasz Langa2024-02-161-11/+11
| | | | | | | | | | | | (#115557) This change essentially replaces usage of `%1` with `%~1`, which removes quotes, if any. Without this change, the if statements fail due to the quotes mangling the syntax. Additionally, this change works around comma being treated as a parameter delimiter in test.bat by escaping commas at time of parsing. Tested combinations of rt and regrtest arguments, all seems to work as before but now you can specify commas in arguments like "-uall,extralargefile".
* gh-115041: Add wrappers that are atomic only in free-threaded builds (#115046)mpage2024-02-142-0/+4
| | | | | | These are intended to be used in places where atomics are required in free-threaded builds but not in the default build. We don't want to introduce the potential performance overhead of an atomic operation in the default build.
* gh-110850: Add PyTime_t C API (GH-115215)Petr Viktorin2024-02-122-0/+4
| | | | | | | | | | | | * gh-110850: Add PyTime_t C API Add PyTime_t API: * PyTime_t type. * PyTime_MIN and PyTime_MAX constants. * PyTime_AsSecondsDouble(), PyTime_Monotonic(), PyTime_PerfCounter() and PyTime_GetSystemClock() functions. Co-authored-by: Victor Stinner <vstinner@python.org>
* gh-110481: Implement inter-thread queue for biased reference counting (#114824)Sam Gross2024-02-094-0/+12
| | | | | | | | | Biased reference counting maintains two refcount fields in each object: `ob_ref_local` and `ob_ref_shared`. The true refcount is the sum of these two fields. In some cases, when refcounting operations are split across threads, the ob_ref_shared field can be negative (although the total refcount must be at least zero). In this case, the thread that decremented the refcount requests that the owning thread give up ownership and merge the refcount fields.
* gh-115167: Exclude vcruntime140_threads.dll from Windows build output ↵adang13452024-02-081-1/+1
| | | | (GH-115176)
* gh-115009: Update Windows installer to use SQLite 3.45.1 (#115065)Erlend E. Aasland2024-02-063-3/+3
|
* gh-109991: Update Windows build to use OpenSSL 3.0.13 (#115043)Zachary Ware2024-02-052-4/+4
|
* gh-111239: Update Windows build to use zlib 1.3.1 (GH-114877)Zachary Ware2024-02-012-2/+2
|
* GH-113464: Add a JIT backend for tier 2 (GH-113465)Brandt Bucher2024-01-296-1/+38
| | | | | | | Add an option (--enable-experimental-jit for configure-based builds or --experimental-jit for PCbuild-based ones) to build an *experimental* just-in-time compiler, based on copy-and-patch (https://fredrikbk.com/publications/copy-and-patch.pdf). See Tools/jit/README.md for more information on how to install the required build-time tooling.
* gh-112529: Implement GC for free-threaded builds (#114262)Sam Gross2024-01-254-0/+8
| | | | | | | * gh-112529: Implement GC for free-threaded builds This implements a mark and sweep GC for the free-threaded builds of CPython. The implementation relies on mimalloc to find GC tracked objects (i.e., "containers").