Document the architectures supported by macOS universal SDK configuration flags,
and add details on wheel tag naming.
(cherry picked from commit 474c388740ca5f8060c074f517dd14c54409126f)
Co-authored-by: Russell Keith-Magee <russell@keith-magee.com>
---------
(cherry picked from commit 555ee43d929ad4b917db2caee3f2c10a2636832c)
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Co-authored-by: Petr Viktorin <encukou@gmail.com>
Fix a crash caused by immortal interned strings being shared between
sub-interpreters that use basic single-phase init. In that case, the string
can be used by an interpreter that outlives the interpreter that created and
interned it. For interpreters that share obmalloc state, also share the
interned dict with the main interpreter.
This is an un-revert of gh-124646 that then addresses the Py_TRACE_REFS
failures identified by gh-124785 (i.e. backporting gh-125709 too).
(cherry picked from commit f2cb39947093feda3ff85b8dc820922cc5e5f954, AKA gh-124865)
Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com>
Add the versionadded directives just under the description of the
corresponding option.
(cherry picked from commit 10f1a2687a080f07bc128e185c854586207f08cf)
* Fix the description of the "-b" option.
* Add references to environment variables for "-s" and "-X dev" options.
(cherry picked from commit 33662d4e01d73cd4f29a25efc2ef09288129023f)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Update "Using Python on a Mac" (GH-115024)
(cherry picked from commit 0a6e1a4119864bec0247b04a5c99fdd9799cd8eb)
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Use cursive to make it looking like mathematic formulas.
(cherry picked from commit a8629816c6c0e6770248a60529fd7c9ba08aad55)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
gh-112088: Run autoreconf in GHA check_generated_files (#112090)
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.
(cherry picked from commit d9fd33a869d2be769ff596530f63ee099465b037)
GH-92584: Move installation schemes overview to sysconfig docs (GH-108018)
* Add new installation path functions subsection
* Add content from install/index to sysconfig
* Fix table
* Update note about installers
* Clean up the list of schemes, remove references to Distutils
(cherry picked from commit f16e81f368d08891e28dc1f038c1826ea80d7801)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
gh-107298: Document PyMODINIT_FUNC macro (GH-109236)
Document PyMODINIT_FUNC macro.
Remove links to PyAPI_FUNC() and PyAPI_DATA() macros since they are
not documented. These macros should only be used to define the Python
C API. They should not be used outside Python code base.
(cherry picked from commit d7a27e527d7e669d2e45cff80ad725978226477c)
Co-authored-by: Victor Stinner <vstinner@python.org>
gh-109634: Use :samp: role (GH-109635)
(cherry picked from commit 92af0cc580051fd1129c7a86af2cbadeb2aa36dc)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
gh-108740: Fix "make regen-all" race condition (#108741)
Fix a race condition in "make regen-all". The deepfreeze.c source and
files generated by Argument Clinic are now generated or updated
before generating "global objects". Previously, some identifiers may
miss depending on the order in which these files were generated.
* "make regen-global-objects": Make sure that deepfreeze.c is
generated and up to date, and always run "make clinic".
* "make clinic" no longer runs generate_global_objects.py script.
* "make regen-deepfreeze" now only updates deepfreeze.c (C file).
It doesn't build deepfreeze.o (object) anymore.
* Remove misleading messages in "make regen-global-objects" and
"make clinic". They are now outdated, these commands are now
safe to use.
* Document generates files in Doc/using/configure.rst.
Co-authored-by: Erlend E. Aasland <erlend@python.org>
(cherry picked from commit db1ee6a19ab62191c16ecb732cb4dcaede98a902)
gh-107298: Fix some references in the C API documentation (GH-108072)
(cherry picked from commit f51f0466c07eabc6177c2f64f70c952dada050e8)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
GH-92584: Remove references to Distutils in configure.rst (GH-108043)
Remove references to Distutils in configure.rst
(cherry picked from commit e88eb3775ecdcb3af6c6d694a935b7fa5f41e5ce)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
GH-92584: Redirect macOS package installation to the PPUG (GH-108044)
(cherry picked from commit 902864256cb261428ae9682ca0ffddd597e1f894)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
GH-92584: Remove references to Distutils in ``PYTHONUSERBASE`` (GH-108040)
Remove references to Distutils in ``PYTHONUSERBASE``
(cherry picked from commit 636ca313b2f7ce09a311889995778dccae8ebe40)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
GH-92584: Remove reference to Distutils in ``cx_Freeze``'s description (GH-108047)
Remove reference to Distutils in ``cx_Freeze``'s description
(cherry picked from commit 57fcf96e4f21b8955b3ae4b4d70e4b756949712f)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
gh-106232: Make timeit doc command lines compatible with Windows. (GH-106296)
Command Prompt (CMD Shell) and older versions of PowerShell
require double quotes and single quotes inside the string.
This form also works on linux and macOS.
(cherry picked from commit 04dfc6fa9018e92a5b51c29fc0ff45419c596bc3)
Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
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.