summaryrefslogtreecommitdiffstats
path: root/Makefile.pre.in
Commit message (Collapse)AuthorAgeFilesLines
* GH-106701: Move _PyUopExecute to Python/executor.c (GH-106924)Brandt Bucher2023-07-201-2/+6
|
* gh-105481: do not auto-generate pycore_intrinsics.h (#106913)Irit Katriel2023-07-201-3/+1
|
* gh-106529: Fix subtle Tier 2 edge case with list iterator (#106756)Guido van Rossum2023-07-151-0/+1
| | | | | | | | | | | | The Tier 2 opcode _IS_ITER_EXHAUSTED_LIST (and _TUPLE) didn't set it->it_seq to NULL, causing a subtle bug that resulted in test_exhausted_iterator in list_tests.py to fail when running all tests with -Xuops. The bug was introduced in gh-106696. Added this as an explicit test. Also fixed the dependencies for ceval.o -- it depends on executor_cases.c.h.
* gh-106752: Move zipfile._path into its own package (#106753)Jason R. Coombs2023-07-141-1/+2
| | | | | * gh-106752: Move zipfile._path into its own package so it may have supplementary behavior. * Add blurb
* gh-106656: Remove --emit-line-directives from regen-cases (#106657)Guido van Rossum2023-07-121-1/+2
| | | | | | | If you prefer to see `#line` directives in generated_cases.c.h, run ``` make regen-cases CASESFLAG=-l ``` But please don't commit the result.
* gh-105481: move Python/opcode_metadata.h to ↵Irit Katriel2023-07-121-6/+6
| | | | Include/internal/pycore_opcode_metadata.h (#106673)
* Restore previous behavior of 'make regen-cases' (#106541)Guido van Rossum2023-07-081-1/+12
| | | | | | | When running 'make regen-cases' just to check whether anything changed, it's annoying that even if nothing changes, the output files are touched, causing an expensiv rebuild of _bootstrap_python and anything it creates. So use consistently for all output files.
* gh-106290: Fix edge cases around uops (#106319)Guido van Rossum2023-07-031-0/+1
| | | | | | | | | | - Tweak uops debugging output - Fix the bug from gh-106290 - Rename `SET_IP` to `SAVE_IP` (per https://github.com/faster-cpython/ideas/issues/558) - Add a `SAVE_IP` uop at the start of the trace (ditto) - Allow `unbound_local_error`; this gives us uops for `LOAD_FAST_CHECK`, `LOAD_CLOSURE`, and `DELETE_FAST` - Longer traces - Support `STORE_FAST_LOAD_FAST`, `STORE_FAST_STORE_FAST` - Add deps on pycore_uops.h to Makefile(.pre.in)
* gh-106320: Create pycore_modsupport.h header file (#106355)Victor Stinner2023-07-031-0/+1
| | | | | | | | | | Remove the following functions from the C API, move them to the internal C API: add a new pycore_modsupport.h internal header file: * PyModule_CreateInitialized() * _PyArg_NoKwnames() * _Py_VaBuildStack() No longer export these functions.
* gh-106320: Add pycore_complexobject.h header file (#106339)Victor Stinner2023-07-021-0/+1
| | | | | | Add internal pycore_complexobject.h header file. Move _Py_c_xxx() functions and _PyComplex_FormatAdvancedWriter() function to this new header file.
* gh-106320: Remove private _PyTraceMalloc C API functions (#106324)Victor Stinner2023-07-021-1/+1
| | | | | | | * Remove private _PyTraceMalloc C API functions: move them to the internal C API. * Don't export most of these functions anymore, but still export _PyTraceMalloc_GetTraceback() used by tests. * Rename Include/tracemalloc.h to Include/cpython/tracemalloc.h
* gh-106316: Remove pytime.h header file (#106317)Victor Stinner2023-07-011-1/+0
| | | | | | | | | | | | | | | | | Remove the "cpython/pytime.h" header file: it only contained private functions. Move functions to the internal pycore_time.h header file. Move tests from _testcapi to _testinternalcapi. Rename also test methods to have the same name than tested C functions. No longer export these functions: * _PyTime_Add() * _PyTime_As100Nanoseconds() * _PyTime_FromMicrosecondsClamp() * _PyTime_FromTimespec() * _PyTime_FromTimeval() * _PyTime_GetPerfCounterWithInfo() * _PyTime_MulDiv()
* GH-104584: Add Include/cpython/optimizer.h to Makefile.pre.in (#106277)Victor Stinner2023-06-301-0/+1
|
* Remove private _PyCodec_Lookup() function (#106269)Victor Stinner2023-06-301-0/+1
| | | | | | | | | | | | | | | Remove the following private functions of the C API: * _PyCodecInfo_GetIncrementalDecoder() * _PyCodecInfo_GetIncrementalEncoder() * _PyCodec_DecodeText() * _PyCodec_EncodeText() * _PyCodec_Forget() * _PyCodec_Lookup() * _PyCodec_LookupTextEncoding() Move these functions to a new pycore_codecs.h internal header file. These functions are no longer exported.
* gh-104584: Baby steps towards generating and executing traces (#105924)Guido van Rossum2023-06-271-12/+9
| | | | | Added a new, experimental, tracing optimizer and interpreter (a.k.a. "tier 2"). This currently pessimizes, so don't use yet -- this is infrastructure so we can experiment with optimizing passes. To enable it, pass ``-Xuops`` or set ``PYTHONUOPS=1``. To get debug output, set ``PYTHONUOPSDEBUG=N`` where ``N`` is a debug level (0-4, where 0 is no debug output and 4 is excessively verbose). All of this code is likely to change dramatically before the 3.13 feature freeze. But this is a first step.
* gh-105927: Add _PyWeakref_GET_REF() internal function (#105929)Victor Stinner2023-06-201-0/+1
| | | Add new pycore_weakref.h internal header file.
* gh-105481: generate _specializations and _specialized_instructions from ↵Irit Katriel2023-06-191-0/+1
| | | | bytecodes.c (#105913)
* gh-104692: Include commoninstall as a prerequisite for bininstall (#104693)Jeffery To2023-06-071-1/+5
| | | | | | | | | This ensures that `commoninstall` is completed before `bininstall` is started when parallel builds are used (`make -j install`), and so the `python3` symlink is only installed after all standard library modules are installed. Co-authored-by: Zachary Ware <zachary.ware@gmail.com>
* gh-102304: Fix up Simple ABI doc (GH-105351)Victor Stinner2023-06-061-5/+0
|
* gh-102304: doc: Add links to Stable ABI and Limited C API (#105345)Victor Stinner2023-06-061-0/+5
| | | | | | | | | * Add "limited-c-api" and "stable-api" references. * Rename "stable-abi-list" reference to "limited-api-list". * Makefile: Document files regenerated by "make regen-limited-abi" * Remove first empty line in generated files: - Lib/test/test_stable_abi_ctypes.py - PC/python3dll.c
* gh-101524: Only Use Public C-API in the _xxsubinterpreters Module (gh-105258)Eric Snow2023-06-021-1/+2
| | | The _xxsubinterpreters module was meant to only use public API. Some internal C-API usage snuck in over the last few years (e.g. gh-28969). This fixes that.
* GH-104584: Plugin optimizer API (GH-105100)Mark Shannon2023-06-021-0/+1
|
* GH-89886: Bump to GNU Autoconf v2.71 (#104925)Erlend E. Aasland2023-06-011-1/+1
| | | Co-authored-by: Christian Heimes <christian@python.org>
* gh-105182: Remove PyEval_AcquireLock() and PyEval_InitThreads() (#105183)Victor Stinner2023-06-011-1/+2
| | | | | | | | | | | | Remove functions in the C API: * PyEval_AcquireLock() * PyEval_ReleaseLock() * PyEval_InitThreads() * PyEval_ThreadsInitialized() But keep these functions in the stable ABI. Mention "make regen-limited-abi" in "make regen-all".
* gh-104773: PEP 594: Remove the imghdr module (#104777)Victor Stinner2023-05-261-1/+1
| | | | | | * Remove the Lib/test/imghdrdata/ directory. * Copy 5 pictures (gif, png, ppm, pgm, xbm) from removed Lib/test/imghdrdata/ to a new Lib/test/tkinterdata/ directory. * Update Sphinx from 4.5 to 6.2 in Doc/requirements.txt.
* gh-104773: PEP 594: Remove the nntplib module (#104894)Victor Stinner2023-05-241-1/+1
| | | | | | | | * socket_helper.transient_internet() no longer imports nntplib to catch nntplib.NNTPTemporaryError. * ssltests.py no longer runs test_nntplib. * "make quicktest" no longer runs test_nntplib. * WASM: remove nntplib from OMIT_NETWORKING_FILES. * Remove mentions to nntplib in the email documentation.
* gh-99108: Refresh HACL* (#104808)Jonathan Protzenko2023-05-241-7/+7
| | | Refresh HACL* from upstream to improve SHA2 performance and fix a 32-bit issue in SHA3.
* gh-104773: PEP 594: Remove the sndhdr module (#104774)Victor Stinner2023-05-241-1/+0
| | | Remove the Lib/test/sndhdrdata/ directory.
* gh-104780: Remove 2to3 program and lib2to3 module (#104781)Victor Stinner2023-05-231-22/+3
| | | | | | | | | * Remove the Tools/scripts/2to3 script. * Remove the Lib/test/test_lib2to3/ directory. * Doc/tools/extensions/pyspecific.py: remove the "2to3fixer" object type. * Makefile and PC/layout/main.py no longer compile lib2to3 grammar files. * Update Makefile for 2to3 removal.
* gh-101282: Apply BOLT optimizations to libpython for shared builds (#104709)Gregory Szorc2023-05-221-15/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Apply BOLT optimizations to libpython for shared builds. Most of the C code is in libpython so it is critical to apply BOLT there fully realize BOLT benefits. This change also reworks how BOLT instrumentation is applied. It effectively removes the readelf based logic added in gh-101525 and replaces it with a mechanism that saves a copy of the pre-bolt binary and restores that copy when necessary. This allows us to perform BOLT optimizations without having to manually delete the output binary to force a new bolt run. Also: - add a clean-bolt target for purging BOLT files and hook that up to the clean target - .gitignore BOLT related files Before and after this refactor, `make` will no-op after a previous run. Both versions should also share common make DAG deficiencies where targets fail to trigger as often as they need to or can trigger prematurely in certain scenarios. e.g. after this change you may need to `rm profile-bolt-stamp` to force a BOLT run because there aren't appropriate non-phony targets for BOLT's make target to depend on. To make it easier to iterate on custom BOLT settings, the flags to pass to instrumentation and application are now defined in configure and can be overridden by passing BOLT_INSTRUMENT_FLAGS and BOLT_APPLY_FLAGS.
* GH-101520: Move tracemalloc functionality into core, leaving interface in ↵Mark Shannon2023-05-171-0/+1
| | | | Modules. (#104508)
* gh-104523: Inline minimal PGO rules (#104524)Gregory Szorc2023-05-161-16/+4
| | | Inline profiling rules where the existing indirection was unneeded.
* gh-103763: Implement PEP 695 (#103764)Jelle Zijlstra2023-05-161-0/+2
| | | | | | | | | | | | | | This implements PEP 695, Type Parameter Syntax. It adds support for: - Generic functions (def func[T](): ...) - Generic classes (class X[T](): ...) - Type aliases (type X = ...) - New scoping when the new syntax is used within a class body - Compiler and interpreter changes to support the new syntax and scoping rules Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com> Co-authored-by: Eric Traut <eric@traut.com> Co-authored-by: Larry Hastings <larry@hastings.org> Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* gh-104490: Consistently define phony make targets (#104491)Gregory Szorc2023-05-151-20/+77
| | | | | | | | | | | | By convention make targets that don't refer to a file have a dependency on the fake .PHONY target/file. This ensures that these targets are always evaluated because there is no rule to create a .PHONY file and that will force make to think the rule is out of date and needs to be rebuilt. This commit consistently associates virtual targets with .PHONY by declaring the .PHONY dependency immediately above the make rule. This should avoid race conditions and avoidable rebuilds across multiple make invocations.
* gh-86275: Fix install of new _hypothesis_stubs directory (#104425)Jelle Zijlstra2023-05-121-0/+1
|
* gh-99108: Replace SHA3 implementation HACL* version (#103597)Jonathan Protzenko2023-05-081-1/+1
| | | | | | | | | | | Replaces our built-in SHA3 implementation with a verified one from the HACL* project. This implementation is used when OpenSSL does not provide SHA3 or is not present. 3.11 shiped with a very slow tiny sha3 implementation to get off of the <=3.10 reference implementation that wound up having serious bugs. This brings us back to a reasonably performing built-in implementation consistent with what we've just replaced our other guaranteed available standard hash algorithms with: code from the HACL* project. --------- Co-authored-by: Gregory P. Smith <greg@krypto.org>
* gh-103963: fix 'make regen-opcode' in out-of-tree builds (#104177)Carl Meyer2023-05-041-1/+3
|
* gh-98822: Add missing test directories to TESTSUBDIRS (#103942)Erlend E. Aasland2023-04-271-12/+45
|
* gh-100227: Only Use deepfreeze for the Main Interpreter (gh-103794)Eric Snow2023-04-241-1/+1
| | | | | | | Deep-frozen code objects are cannot be shared (currently) by interpreters, due to how adaptive specialization can modify the bytecodes. We work around this by only using the deep-frozen objects in the main interpreter. This does incur a performance penalty for subinterpreters, which we may be able to resolve later.
* gh-103776: Remove explicit uses of $(SHELL) from Makefile (GH-103778)Zachary Ware2023-04-241-5/+5
| | | | | | | | This avoids conflicting with the shebang of the called scripts as well as avoiding hard errors on platforms where the called script runs a failing unchecked command in the usual course of checking since `SHELL=/bin/sh -e` as of a90863c. Fixes gh-103776.
* gh-101525: Fix make test if the --enable-bolt enabled (gh-103574)Dong-hee Na2023-04-171-7/+13
|
* gh-103527: Add multibytecodec.h as make dep for _codecs_* (#103567)Erlend E. Aasland2023-04-161-6/+8
|
* gh-103527: Add make deps for _codecs_* and _multibytecodec (#103528)Erlend E. Aasland2023-04-141-0/+7
|
* GH-103082: Implementation of PEP 669: Low Impact Monitoring for CPython ↵Mark Shannon2023-04-121-0/+2
| | | | | | | | | | (GH-103083) * The majority of the monitoring code is in instrumentation.c * The new instrumentation bytecodes are in bytecodes.c * legacy_tracing.c adapts the new API to the old sys.setrace and sys.setprofile APIs
* gh-87092: move assembler related code from compile.c to assemble.c (#103277)Irit Katriel2023-04-111-1/+2
|
* gh-100220: Fix error handling in make rules (GH-100328)Michał Górny2023-04-071-1/+1
| | | | | Set `SHELL = /bin/sh -e` to ensure that complex recipes fail on the first error rather than incorrectly reporting success. Co-authored-by: Zachary Ware <zach@python.org>
* gh-101659: Add _Py_AtExit() (gh-103298)Eric Snow2023-04-061-0/+1
| | | | | The function is like Py_AtExit() but for a single interpreter. This is a companion to the atexit module's register() function, taking a C callback instead of a Python one. We also update the _xxinterpchannels module to use _Py_AtExit(), which is the motivating case. (This is inspired by pain points felt while working on gh-101660.)
* gh-101525: Disable peephole optimization process of BOLT (gh-103187)Dong-hee Na2023-04-051-1/+1
| | | Co-authored-by: Dong-hee Na <donghee.na@linecorp.com>
* gh-87092: move CFG related code from compile.c to flowgraph.c (#103021)Irit Katriel2023-03-311-0/+3
|
* gh-102304: Move _Py_RefTotal to _PyRuntimeState (gh-102543)Eric Snow2023-03-201-0/+1
| | | | | | | The essentially eliminates the global variable, with the associated benefits. This is also a precursor to isolating this bit of state to PyInterpreterState. Folks that currently read _Py_RefTotal directly would have to start using _Py_GetGlobalRefTotal() instead. https://github.com/python/cpython/issues/102304