8000 gh-95913: Edit, link and sort 3.11 WhatsNew Build section by CAM-Gerlach · Pull Request #98588 · python/cpython · GitHub
[go: up one dir, main page]

Skip to content

gh-95913: Edit, link and sort 3.11 WhatsNew Build section #98588

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Oct 24, 2022
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Fix and improve Sphinx syntax & grammar/phrasing in Build section
  • Loading branch information
CAM-Gerlach committed Oct 24, 2022
commit be26e056af45ea1999e5b8d8b0a18fb846f1ce40
83 changes: 49 additions & 34 deletions Doc/whatsnew/3.11.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1818,30 +1818,39 @@ Porting notes for the C API are
Build Changes
=============

* Building Python now requires a C11 compiler. Optional C11 features are not
required.
* Building Python now requires a
`C11 <https://en.cppreference.com/w/c/11>`_ compiler.
`Optional C11 features
<https://en.wikipedia.org/wiki/C11_(C_standard_revision)#Optional_features>`_
are not required.
(Contributed by Victor Stinner in :issue:`46656`.)

* Building Python now requires support of IEEE 754 floating point numbers.
* Building Python now requires support for
`IEEE 754 <https://en.wikipedia.org/wiki/IEEE_754>`_ floating point numbers.
(Contributed by Victor Stinner in :issue:`46917`.)

* CPython can now be built with the ThinLTO option via ``--with-lto=thin``.
* CPython can now be built with the
`ThinLTO <https://clang.llvm.org/docs/ThinLTO.html>`_ option
via passing ``thin`` to :option:`--with-lto`, i.e. ``--with-lto=thin``.
(Contributed by Dong-hee Na and Brett Holman in :issue:`44340`.)

* libpython is no longer linked against libcrypt.
(Contributed by Mike Gilbert in :issue:`45433`.)

* Building Python now requires a C99 ``<math.h>`` header file providing
the following functions: ``copysign()``, ``hypot()``, ``isfinite()``,
``isinf()``, ``isnan()``, ``round()``.
* Building Python now requires a `C99 <https://en.cppreference.com/w/c/99>`_
``<math.h>`` header file providing the following functions:
:c:func:`!copysign`, :c:func:`!hypot`, :c:func:`!isfinite`,
:c:func:`!isinf`, :c:func:`!isnan`, and :c:func:`!round`.
(Contributed by Victor Stinner in :issue:`45440`.)

* Building Python now requires a C99 ``<math.h>`` header file providing
a ``NAN`` constant, or the ``__builtin_nan()`` built-in function.
* Building Python now requires a `C99 <https://en.cppreference.com/w/c/99>`_
``<math.h>`` header file providing a :c:data:`!NAN` constant,
or the :c:func:`!__builtin_nan` built-in function.
(Contributed by Victor Stinner in :issue:`46640`.)

* Building Python now requires support for floating point Not-a-Number (NaN):
remove the ``Py_NO_NAN`` macro.
* Building Python now requires support for `floating point Not-a-Number (NaN)
<https://en.wikipedia.org/wiki/NaN#Floating_point>`_,
as the :c:macro:`!Py_NO_NAN` macro has been removed.
(Contributed by Victor Stinner in :issue:`46656`.)

* Freelists for object structs can now be disabled. A new :program:`configure`
Expand All @@ -1851,54 +1860,60 @@ Build Changes

* ``Modules/Setup`` and ``Modules/makesetup`` have been improved and tied up.
Extension modules can now be built through ``makesetup``. All except some
test modules can be linked statically into main binary or library.
test modules can be linked statically into a main binary or library.
(Contributed by Brett Cannon and Christian Heimes in :issue:`45548`,
:issue:`45570`, :issue:`45571`, and :issue:`43974`.)

* Build dependencies, compiler flags, and linker flags for most stdlib
extension modules are now detected by :program:`configure`. libffi, libnsl,
libsqlite3, zlib, bzip2, liblzma, libcrypt, Tcl/Tk, and uuid flags
are detected by ``pkg-config`` (when available). :mod:`tkinter` now
requires ``pkg-config`` command to detect development settings for Tcl/Tk
headers and libraries.
are detected by `pkg-config
<https://www.freedesktop.org/wiki/Software/pkg-config/>`_ (when available).
:mod:`tkinter` now requires a pkg-config command
to detect development settings for `Tcl/Tk`_ headers and libraries.
(Contributed by Christian Heimes and Erlend Egeberg Aasland in
:issue:`45847`, :issue:`45747`, and :issue:`45763`.)

.. note::
Use the environment variables :envvar:`TCLTK_CFLAGS` and
:envvar:`TCLTK_LIBS` to manually specify the location of Tcl/Tk headers
and libraries. The :program:`configure` options ``--with-tcltk-includes``
and ``--with-tcltk-libs`` have been removed.
Use the environment variables :envvar:`!TCLTK_CFLAGS` and
:envvar:`!TCLTK_LIBS` to manually specify the location of Tcl/Tk headers
and libraries. The :program:`configure` options
:option:`!--with-tcltk-includes` and :option:`!--with-tcltk-libs`
have been removed.

On RHEL 7 and CentOS 7 the development packages do not provide ``tcl.pc``
and ``tk.pc``, use :envvar:`TCLTK_LIBS="-ltk8.5 -ltkstub8.5 -ltcl8.5"`.
and ``tk.pc``; use ``TCLTK_LIBS="-ltk8.5 -ltkstub8.5 -ltcl8.5"``.
The directory ``Misc/rhel7`` contains ``.pc`` files and instructions
how to build Python with RHEL 7's and CentOS 7's Tcl/Tk and OpenSSL.

* CPython now has :pep:`11` tier 3 support for cross compiling to WebAssembly
platform ``wasm32-unknown-emscripten`` (Python in the browser). The effort
is inspired by previous work like `Pyodide <https://pyodide.org/>`_.
Emscripten provides a limited subset of POSIX APIs. Python standard
on how to build Python with RHEL 7's and CentOS 7's Tcl/Tk and OpenSSL.

* CPython now has :pep:`11` :pep:`Tier 3 support <11#tier-3>`
for cross compiling to the `Emscripten <https://emscripten.org/>`_
`WebAssembly <https://webassembly.org/>`_ platform
``wasm32-unknown-emscripten``, i.e. Python in the browser.
The effort is inspired by previous work like `Pyodide <https://pyodide.org/>`_.
Emscripten provides a limited subset of POSIX APIs; Python standard
libraries features and modules related to networking, processes, threading,
signals, mmap, and users/groups are not available or don't work.
(Contributed by Christian Heimes and Ethan Smith in :gh:`84461`,
promoted in :gh:`95085`)

* CPython now has :pep:`11` tier 3 support for cross compiling to WebAssembly
platform ``wasm32-unknown-wasi`` (WebAssembly System Interface). Like on
Emscripten, only a subset of Python's standard library is available on WASI.
* CPython also now has :pep:`11` :pep:`Tier 3 support <11#tier-3>` for cross
compiling to the `WebAssembly System Interface (WASI) <https://wasi.dev/>`_
`WebAssembly <https://webassembly.org/>`_ platform ``wasm32-unknown-wasi``.
Like Emscripten, only a subset of Python's standard library works on WASI.
(Contributed by Christian Heimes in :gh:`90473`, promoted in :gh:`95085`)

* CPython will now use 30-bit digits by default for the Python :class:`int`
implementation. Previously, the default was to use 30-bit digits on platforms
with ``SIZEOF_VOID_P >= 8``, and 15-bit digits otherwise. It's still possible
to explicitly request use of 15-bit digits via either the
``--enable-big-digits`` option to the configure script or (for Windows) the
``PYLONG_BITS_IN_DIGIT`` variable in ``PC/pyconfig.h``, but this option may
be removed at some point in the future. (Contributed by Mark Dickinson in
:issue:`45569`.)
:option:`--enable-big-digits` option to the configure script
or (for Windows) the ``PYLONG_BITS_IN_DIGIT`` variable in ``PC/pyconfig.h``,
but this option may be removed at some point in the future.
(Contributed by Mark Dickinson in :issue:`45569`.)

* The :mod:`tkinter` package now requires Tcl/Tk version 8.5.12 or newer.
* The :mod:`tkinter` package now requires `Tcl/Tk <https://www.tcl.tk>`_
version 8.5.12 or newer.
(Contributed by Serhiy Storchaka in :issue:`46996`.)


Expand Down
0