summaryrefslogtreecommitdiffstats
path: root/PCbuild
Commit message (Collapse)AuthorAgeFilesLines
* 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").
* gh-113655: Revert extra stack reserve in PGO builds unless ↵Steve Dower2024-01-222-2/+2
| | | | UseExtraStackReserve=true (GH-114263)
* gh-112529: Use GC heaps for GC allocations in free-threaded builds (gh-114157)Sam Gross2024-01-202-0/+4
| | | | | | | | | | * gh-112529: Use GC heaps for GC allocations in free-threaded builds The free-threaded build's garbage collector implementation will need to find GC objects by traversing mimalloc heaps. This hooks up the allocation calls with the correct heaps by using a thread-local "current_obj_heap" variable. * Refactor out setting heap based on type
* gh-112984 Update Windows build and installer for free-threaded builds ↵Steve Dower2024-01-1744-72/+118
| | | | (GH-113129)
* gh-113655: Increase default stack size for PGO builds to avoid C stack ↵Steve Dower2024-01-162-3/+9
| | | | exhaustion (GH-114148)
* GH-113860: Get rid of `_PyUOpExecutorObject` (GH-113954)Brandt Bucher2024-01-122-4/+0
|
* gh-111968: Introduce _PyFreeListState and _PyFreeListState_GET API (gh-113584)Donghee Na2024-01-094-0/+23
|
* gh-113650: Add workaround option for MSVC ARM64 bug affecting string ↵Steve Dower2024-01-091-0/+2
| | | | encoding (GH-113836)
* gh-113827: Move Windows frozen modules directory to allow PGO builds (GH-113828)Steve Dower2024-01-081-1/+1
|
* gh-110721: Remove unused code from suggestions.c after moving PyErr_Display ↵Pablo Galindo Salgado2024-01-082-0/+4
| | | | to use the traceback module (#113712)
* gh-113688: Split up gcmodule.c (gh-113715)Sam Gross2024-01-054-0/+8
| | | | | This splits part of Modules/gcmodule.c of into Python/gc.c, which now contains the core garbage collection implementation. The Python module remain in the Modules/gcmodule.c file.
* gh-113258: Write frozen modules to the build tree on Windows (GH-113303)Itamar Oren2024-01-033-52/+55
| | | This ensures the source directory is not modified at build time, and different builds (e.g. different versions or GIL vs no-GIL) do not have conflicts.
* gh-111973: Update Windows installer to use SQLite 3.44.2 (#113281)Erlend E. Aasland2023-12-193-3/+3
|
* gh-113039: Avoid using leading dots in the include path for frozen ↵Itamar Oren2023-12-181-0/+1
| | | | getpath.py (GH-113022)
* gh-111650: Ensure pyconfig.h includes Py_GIL_DISABLED on Windows (GH-112778)Steve Dower2023-12-133-3/+64
|
* gh-76785: More Fixes for test.support.interpreters (gh-113012)Eric Snow2023-12-122-0/+4
| | | This brings the module (along with the associated extension modules) mostly in sync with PEP 734. There are only a few small things to wrap up.