summaryrefslogtreecommitdiffstats
path: root/configure
Commit message (Collapse)AuthorAgeFilesLines
* gh-112088: Run autoreconf in GHA check_generated_files (#112090)Victor Stinner2023-11-151-60/+60
| | | | | | | | | | | The "Check if generated files are up to date" job of GitHub Actions now runs the "autoreconf -ivf -Werror" command instead of the "make regen-configure" command to avoid depending on the external quay.io server. Add Tools/build/regen-configure.sh script to regenerate the configure with an Ubuntu container image. The "quay.io/tiran/cpython_autoconf:271" container image (https://github.com/tiran/cpython_autoconf) is no longer used.
* gh-111460: Restore ncurses widechar support on macOS (#111878)Davide Rizzo2023-11-131-1/+1
|
* gh-90815: Add mimalloc memory allocator (#109914)Dino Viehland2023-10-301-89/+133
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add mimalloc v2.12 Modified src/alloc.c to remove include of alloc-override.c and not compile new handler. Did not include the following files: - include/mimalloc-new-delete.h - include/mimalloc-override.h - src/alloc-override-osx.c - src/alloc-override.c - src/static.c - src/region.c mimalloc is thread safe and shares a single heap across all runtimes, therefore finalization and getting global allocated blocks across all runtimes is different. * mimalloc: minimal changes for use in Python: - remove debug spam for freeing large allocations - use same bytes (0xDD) for freed allocations in CPython and mimalloc This is important for the test_capi debug memory tests * Don't export mimalloc symbol in libpython. * Enable mimalloc as Python allocator option. * Add mimalloc MIT license. * Log mimalloc in Lib/test/pythoninfo.py. * Document new mimalloc support. * Use macro defs for exports as done in: https://github.com/python/cpython/pull/31164/ Co-authored-by: Sam Gross <colesbury@gmail.com> Co-authored-by: Christian Heimes <christian@python.org> Co-authored-by: Victor Stinner <vstinner@python.org>
* gh-110828: AIX 32bit build needs -latomic for _testcapi module (#110962)Ayappan Perumal2023-10-221-1/+2
|
* gh-111046: for wasi-threads, export memory as well via the linker (GH-111099)YAMAMOTO Takashi2023-10-201-0/+5
|
* gh-104169: Refactor tokenizer into lexer and wrappers (#110684)Lysandros Nikolaou2023-10-111-0/+2
| | | | | | | | | | | * The lexer, which include the actual lexeme producing logic, goes into the `lexer` directory. * The wrappers, one wrapper per input mode (file, string, utf-8, and readline), go into the `tokenizer` directory and include logic for creating a lexer instance and managing the buffer for different modes. --------- Co-authored-by: Pablo Galindo <pablogsal@gmail.com> Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
* gh-78469: Declare missing sethostname for Solaris 10 (#109447)Jakub Kulík2023-10-091-0/+9
| | | Add OS version specific macro for Solaris: Py_SUNOS_VERSION.
* gh-109191: Fix build with newer editline (gh-110239)Bo Anderson2023-10-091-0/+19
|
* gh-108277: Add os.timerfd_create() function (#108382)Masaru Tsuchiyama2023-10-071-0/+50
| | | | | | | | Add wrapper for timerfd_create, timerfd_settime, and timerfd_gettime to os module. Co-authored-by: Serhiy Storchaka <storchaka@gmail.com> Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com> Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com> Co-authored-by: Victor Stinner <vstinner@python.org>
* gh-105323: Update readline module to detect apple editline variant (gh-108665)Donghee Na2023-09-291-0/+17
|
* gh-109740: Use 't' in `--disable-gil` SOABI (#109922)Sam Gross2023-09-271-31/+34
| | | | Shared libraries for CPython 3.13 are now marked with a 't' for threading. For example, `binascii.cpython-313t-darwin.so`.
* gh-108724: Add PyMutex and _PyParkingLot APIs (gh-109344)Sam Gross2023-09-191-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | PyMutex is a one byte lock with fast, inlineable lock and unlock functions for the common uncontended case. The design is based on WebKit's WTF::Lock. PyMutex is built using the _PyParkingLot APIs, which provides a cross-platform futex-like API (based on WebKit's WTF::ParkingLot). This internal API will be used for building other synchronization primitives used to implement PEP 703, such as one-time initialization and events. This also includes tests and a mini benchmark in Tools/lockbench/lockbench.py to compare with the existing PyThread_type_lock. Uncontended acquisition + release: * Linux (x86-64): PyMutex: 11 ns, PyThread_type_lock: 44 ns * macOS (arm64): PyMutex: 13 ns, PyThread_type_lock: 18 ns * Windows (x86-64): PyMutex: 13 ns, PyThread_type_lock: 38 ns PR Overview: The primary purpose of this PR is to implement PyMutex, but there are a number of support pieces (described below). * PyMutex: A 1-byte lock that doesn't require memory allocation to initialize and is generally faster than the existing PyThread_type_lock. The API is internal only for now. * _PyParking_Lot: A futex-like API based on the API of the same name in WebKit. Used to implement PyMutex. * _PyRawMutex: A word sized lock used to implement _PyParking_Lot. * PyEvent: A one time event. This was used a bunch in the "nogil" fork and is useful for testing the PyMutex implementation, so I've included it as part of the PR. * pycore_llist.h: Defines common operations on doubly-linked list. Not strictly necessary (could do the list operations manually), but they come up frequently in the "nogil" fork. ( Similar to https://man.freebsd.org/cgi/man.cgi?queue) --------- Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com>
* gh-106213: Make Emscripten trampolines work with JSPI (GH-106219)Hood Chatham2023-09-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | There is a WIP proposal to enable webassembly stack switching which have been implemented in v8: https://github.com/WebAssembly/js-promise-integration It is not possible to switch stacks that contain JS frames so the Emscripten JS trampolines that allow calling functions with the wrong number of arguments don't work in this case. However, the js-promise-integration proposal requires the [type reflection for Wasm/JS API](https://github.com/WebAssembly/js-types) proposal, which allows us to actually count the number of arguments a function expects. For better compatibility with stack switching, this PR checks if type reflection is available, and if so we use a switch block to decide the appropriate signature. If type reflection is unavailable, we should use the current EMJS trampoline. We cache the function argument counts since when I didn't cache them performance was negatively affected. Co-authored-by: T. Wouters <thomas@python.org> Co-authored-by: Brett Cannon <brett@python.org>
* gh-109054: Don't use libatomic on cross-compilation (#109211)Victor Stinner2023-09-101-5/+2
| | | | | | | configure no longer uses libatomic by default when Python is cross-compiled. The LIBATOMIC variable can be set manually in this case: ./configure LIBATOMIC="-latomic" (...)
* gh-109054: configure checks if libatomic is needed (#109101)Victor Stinner2023-09-081-1/+84
| | | | | | | | | | | | | | | | Fix building the _testcapi extension on Linux AArch64 which requires linking to libatomic when <cpython/pyatomic.h> is used: the _Py_atomic_or_uint64() function requires libatomic __atomic_fetch_or_8() on this platform. The configure script now checks if linking to libatomic is needed and generates a new LIBATOMIC variable used to build the _testcapi extension. Building the _testcapi extension now uses the LIBATOMIC variable in its LDFLAGS, since Modules/_testcapi/pyatomic.c uses <cpython/pyatomic.h>. Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
* gh-108765: Python.h no longer includes <ieeefp.h> (#108781)Victor Stinner2023-09-021-6/+0
| | | | Remove also the HAVE_IEEEFP_H macro: remove ieeefp.h from the AC_CHECK_HEADERS() check of configure.ac.
* gh-108777: Split _PyTime tests from _testinternalcapi.c (gh-108787)Sam Gross2023-09-021-0/+1
|
* gh-108634: Py_TRACE_REFS uses a hash table (#108663)Victor Stinner2023-08-311-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Python built with "configure --with-trace-refs" (tracing references) is now ABI compatible with Python release build and debug build. Moreover, it now also supports the Limited API. Change Py_TRACE_REFS build: * Remove _PyObject_EXTRA_INIT macro. * The PyObject structure no longer has two extra members (_ob_prev and _ob_next). * Use a hash table (_Py_hashtable_t) to trace references (all objects): PyInterpreterState.object_state.refchain. * Py_TRACE_REFS build is now ABI compatible with release build and debug build. * Limited C API extensions can now be built with Py_TRACE_REFS: xxlimited, xxlimited_35, _testclinic_limited. * No longer rename PyModule_Create2() and PyModule_FromDefAndSpec2() functions to PyModule_Create2TraceRefs() and PyModule_FromDefAndSpec2TraceRefs(). * _Py_PrintReferenceAddresses() is now called before finalize_interp_delete() which deletes the refchain hash table. * test_tracemalloc find_trace() now also filters by size to ignore the memory allocated by _PyRefchain_Trace(). Test changes for Py_TRACE_REFS: * Add test.support.Py_TRACE_REFS constant. * Add test_sys.test_getobjects() to test sys.getobjects() function. * test_exceptions skips test_recursion_normalizing_with_no_memory() and test_memory_error_in_PyErr_PrintEx() if Python is built with Py_TRACE_REFS. * test_repl skips test_no_memory(). * test_capi skisp test_set_nomemory().
* gh-108494: Don't build _testclinic_limited with TraceRefs (#108608)Victor Stinner2023-08-291-0/+44
| | | | | If Python is built with ./configure --with-trace-refs, don't build the _testclinic_limited extension. The limited C API (Py_LIMITED_API) is not compatible with Py_TRACE_REFS.
* gh-108465: Use compiler basename when determining compiler flags (#108392)John Micco2023-08-271-3/+6
| | | | | | Note: GNU Autoconf discourages the use of 'basename', and recommends 'expr' instead. Co-authored-by: Erlend E. Aasland <erlend@python.org>
* gh-95855: Refactor platform triplet detection code, add detection for MIPS ↵Jeffery To2023-08-241-188/+4
| | | | | | | | | | | | | | | | | soft float and musl libc (#107221) - Move platform triplet detection code into Misc/platform_triplet.c - Refactor MIPS detection, use defined(__mips64) to detect MIPS64 - Compute libc values in separate section - Add detection for MIPS soft float - Add detection for musl musl supports SPE with its soft-float ABI: https://git.musl-libc.org/cgit/musl/commit/?id=7be59733d71ada3a32a98622507399253f1d5e48 Original patch by Christian Heimes. Co-authored-by: Christian Heimes <christian@python.org> Co-authored-by: Erlend E. Aasland <erlend@python.org>
* gh-108223: Add --disable-gil to configure (gh-108227)Sam Gross2023-08-211-0/+31
| | | | | The `--disable-gil` flags does not do anything yet other than define the Py_NOGIL macro. This is intended to support setting up additional buildbots.
* GH-107812: extend `socket`'s netlink support to FreeBSD (gh-107813)Mina Galić2023-08-101-0/+15
|
* gh-106881: Check for linux/limits.h before including it (#107397)justdan62023-07-281-0/+6
| | | | | * Check for linux/limits.h before including it Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
* gh-106962: Detect mpicc in configure.ac (#106961)Lukas van de Wiel2023-07-221-0/+3
| | | | Don't let autoconf mistake MPI compilers for Intel compilers; filter out the MPI case to prevent Intel specific options from being applied.
* gh-106123: Modules/_sha3 appears to no longer be necessary (#106124)Skip Montanaro2023-06-271-1/+0
|
* gh-101538: Add experimental wasi-threads build (#101537)YAMAMOTO Takashi2023-06-221-1/+20
| | | | Co-authored-by: Brett Cannon <brett@python.org> Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
* gh-105875: Require SQLite 3.15.2 or newer (#105876)Erlend E. Aasland2023-06-181-10/+10
| | | SQLite 3.15.2 was released 2016-11-28.
* gh-90005: Don't link with libbsd if not needed (#105236)Erlend E. Aasland2023-06-061-2/+6
| | | | The regression was introduced with commit 5b946cada. Restore pre gh-29696 behaviour.
* GH-89886: Bump to GNU Autoconf v2.71 (#104925)Erlend E. Aasland2023-06-011-7232/+10291
| | | Co-authored-by: Christian Heimes <christian@python.org>
* gh-89886: Rely on HAVE_SYS_TIME_H (#105058)Erlend E. Aasland2023-06-011-9/+1
| | | | | | | Quoting autoconf (v2.71): All current systems provide time.h; it need not be checked for. Not all systems provide sys/time.h, but those that do, all allow you to include it and time.h simultaneously.
* gh-89886: Properly quote Autoconf macro arguments (#105062)Erlend E. Aasland2023-05-301-23/+11
| | | Autoconf 2.70 macros are picky about argument quotation.
* gh-104773: PEP 594: Remove the audioop module (#104937)Victor Stinner2023-05-251-26/+0
|
* gh-104773: PEP 594: Remove the crypt module (#104908)Victor Stinner2023-05-251-341/+1
| | | | Remove the crypt module and its private _crypt extension, deprecated in Python 3.11.
* gh-104773: Fix PY_STDLIB_MOD_SET_NA() on macOS (#104901)Victor Stinner2023-05-241-0/+2
| | | The _scproxy is available on macOS: fix configure script.
* gh-104773: PEP 594: Remove the nis module (#104897)Victor Stinner2023-05-241-319/+0
|
* gh-104773: PEP 594: Remove the spwd module (#104871)Victor Stinner2023-05-241-48/+0
| | | Remove spwd from the configure script and Modules/Setup.
* gh-104773: Remove OSSAUDIODEV_LIBS variable (#104864)Victor Stinner2023-05-241-8/+0
| | | | Update configure script for ossaudiodev removal: remove the OSSAUDIODEV_LIBS variable.
* gh-104773: PEP 594: Remove the ossaudiodev module (#104862)Victor Stinner2023-05-241-42/+0
| | | | | * Remove ossaudiodev extension in configure.ac and regenerate the configure script. * Remove ossaudiodev in Modules/Setup and Modules/Setup.stdlib.in.
* gh-101282: Enclose BOLT_APPLY_FLAGS value in double quotes (gh-104752)Dong-hee Na2023-05-241-2/+1
|
* Regenerate configure after the Python version bump (#104757)T. Wouters2023-05-221-13/+13
| | | Regenerate configure after the Python version bump.
* gh-101282: Apply BOLT optimizations to libpython for shared builds (#104709)Gregory Szorc2023-05-221-108/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-104487: PYTHON_FOR_REGEN must be minimum Python 3.10 (#104488)Erlend E. Aasland2023-05-151-1/+1
| | | Also include Python 3.12 in the list of accepted versions.
* gh-101282: move BOLT config after PGO (gh-104493)Gregory Szorc2023-05-151-180/+180
|
* gh-90656: Add platform triplets for 64-bit LoongArch (LA64) (#30939)Zhang Na2023-05-091-0/+14
| | | | Signed-off-by: Zhang Na <zhangna@loongson.cn> Co-authored-by: WANG Xuerui <git@xen0n.name>
* gh-103509: PEP 697 -- Limited C API for Extending Opaque Types (GH-103511)Petr Viktorin2023-05-041-0/+35
| | | | Co-authored-by: Oleg Iarygin <oleg@arhadthedev.net> Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
* gh-101525: Fix make test if the --enable-bolt enabled (gh-103574)Dong-hee Na2023-04-171-0/+108
|
* gh-103326: Remove `Python/importlib.h` (GH-103331)Nikita Sobolev2023-04-121-1/+0
| | | | Co-authored-by: Brett Cannon <brett@python.org> Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
* gh-96821: Add config option `--with-strict-overflow` (#96823)Matthias Görgens2023-03-041-9/+69
| | | | | | Co-authored-by: C.A.M. Gerlach <CAM.Gerlach@Gerlach.CAM> Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com> Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com> Co-authored-by: Shantanu <hauntsaninja@gmail.com>
* gh-99108: Import MD5 and SHA1 from HACL* (#102089)Jonathan Protzenko2023-02-221-2/+2
| | | Replaces our fallback non-OpenSSL MD5 and SHA1 implementations with those from HACL* as we've already done with SHA2.