Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit e81fad6

Browse filesBrowse files
authored
gh-95913: Edit, link and sort 3.11 WhatsNew Build section (#98588)
1 parent 43bef54 commit e81fad6
Copy full SHA for e81fad6

File tree

Expand file treeCollapse file tree

1 file changed

+67
-57
lines changed
Filter options
Expand file treeCollapse file tree

1 file changed

+67
-57
lines changed

‎Doc/whatsnew/3.11.rst

Copy file name to clipboardExpand all lines: Doc/whatsnew/3.11.rst
+67-57Lines changed: 67 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1896,31 +1896,66 @@ Porting notes for the C API are
18961896
Build Changes
18971897
=============
18981898

1899-
* Building Python now requires a C11 compiler. Optional C11 features are not
1900-
required.
1901-
(Contributed by Victor Stinner in :issue:`46656`.)
1902-
1903-
* Building Python now requires support of IEEE 754 floating point numbers.
1904-
(Contributed by Victor Stinner in :issue:`46917`.)
1899+
* CPython now has :pep:`11` :pep:`Tier 3 support <11#tier-3>` for
1900+
cross compiling to the `WebAssembly <https://webassembly.org/>`_ platforms
1901+
`Emscripten <https://emscripten.org/>`_
1902+
(``wasm32-unknown-emscripten``, i.e. Python in the browser)
1903+
and `WebAssembly System Interface (WASI) <https://wasi.dev/>`_
1904+
(``wasm32-unknown-wasi``).
1905+
The effort is inspired by previous work like `Pyodide <https://pyodide.org/>`_.
1906+
These platforms provide a limited subset of POSIX APIs; Python standard
1907+
libraries features and modules related to networking, processes, threading,
1908+
signals, mmap, and users/groups are not available or don't work.
1909+
(Emscripten contributed by Christian Heimes and Ethan Smith in :gh:`84461`
1910+
and WASI contributed by Christian Heimes in :gh:`90473`;
1911+
platforms promoted in :gh:`95085`)
1912+
1913+
* Building Python now requires:
1914+
1915+
* A `C11 <https://en.cppreference.com/w/c/11>`_ compiler.
1916+
`Optional C11 features
1917+
<https://en.wikipedia.org/wiki/C11_(C_standard_revision)#Optional_features>`_
1918+
are not required.
1919+
(Contributed by Victor Stinner in :issue:`46656`.)
1920+
1921+
* Support for `IEEE 754 <https://en.wikipedia.org/wiki/IEEE_754>`_
1922+
floating point numbers.
1923+
(Contributed by Victor Stinner in :issue:`46917`.)
1924+
1925+
* Support for `floating point Not-a-Number (NaN)
1926+
<https://en.wikipedia.org/wiki/NaN#Floating_point>`_,
1927+
as the :c:macro:`!Py_NO_NAN` macro has been removed.
1928+
(Contributed by Victor Stinner in :issue:`46656`.)
1929+
1930+
* A `C99 <https://en.cppreference.com/w/c/99>`_
1931+
``<math.h>`` header file providing the
1932+
:c:func:`!copysign`, :c:func:`!hypot`, :c:func:`!isfinite`,
1933+
:c:func:`!isinf`, :c:func:`!isnan`, and :c:func:`!round` functions
1934+
(contributed by Victor Stinner in :issue:`45440`);
1935+
and a :c:data:`!NAN` constant or the :c:func:`!__builtin_nan` function
1936+
(Contributed by Victor Stinner in :issue:`46640`).
1937+
1938+
* The :mod:`tkinter` package now requires `Tcl/Tk <https://www.tcl.tk>`_
1939+
version 8.5.12 or newer.
1940+
(Contributed by Serhiy Storchaka in :issue:`46996`.)
19051941

1906-
* CPython can now be built with the ThinLTO option via ``--with-lto=thin``.
1907-
(Contributed by Dong-hee Na and Brett Holman in :issue:`44340`.)
1942+
* Build dependencies, compiler flags, and linker flags for most stdlib
1943+
extension modules are now detected by :program:`configure`. libffi, libnsl,
1944+
libsqlite3, zlib, bzip2, liblzma, libcrypt, Tcl/Tk, and uuid flags
1945+
are detected by `pkg-config
1946+
<https://www.freedesktop.org/wiki/Software/pkg-config/>`_ (when available).
1947+
:mod:`tkinter` now requires a pkg-config command
1948+
to detect development settings for `Tcl/Tk`_ headers and libraries.
1949+
(Contributed by Christian Heimes and Erlend Egeberg Aasland in
1950+
:issue:`45847`, :issue:`45747`, and :issue:`45763`.)
19081951

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

1912-
* Building Python now requires a C99 ``<math.h>`` header file providing
1913-
the following functions: ``copysign()``, ``hypot()``, ``isfinite()``,
1914-
``isinf()``, ``isnan()``, ``round()``.
1915-
(Contributed by Victor Stinner in :issue:`45440`.)
1916-
1917-
* Building Python now requires a C99 ``<math.h>`` header file providing
1918-
a ``NAN`` constant, or the ``__builtin_nan()`` built-in function.
1919-
(Contributed by Victor Stinner in :issue:`46640`.)
1920-
1921-
* Building Python now requires support for floating point Not-a-Number (NaN):
1922-
remove the ``Py_NO_NAN`` macro.
1923-
(Contributed by Victor Stinner in :issue:`46656`.)
1955+
* CPython can now be built with the
1956+
`ThinLTO <https://clang.llvm.org/docs/ThinLTO.html>`_ option
1957+
via passing ``thin`` to :option:`--with-lto`, i.e. ``--with-lto=thin``.
1958+
(Contributed by Dong-hee Na and Brett Holman in :issue:`44340`.)
19241959

19251960
* Freelists for object structs can now be disabled. A new :program:`configure`
19261961
option :option:`!--without-freelists` can be used to disable all freelists
@@ -1929,55 +1964,30 @@ Build Changes
19291964

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

1936-
* Build dependencies, compiler flags, and linker flags for most stdlib
1937-
extension modules are now detected by :program:`configure`. libffi, libnsl,
1938-
libsqlite3, zlib, bzip2, liblzma, libcrypt, Tcl/Tk, and uuid flags
1939-
are detected by ``pkg-config`` (when available). :mod:`tkinter` now
1940-
requires ``pkg-config`` command to detect development settings for Tcl/Tk
1941-
headers and libraries.
1942-
(Contributed by Christian Heimes and Erlend Egeberg Aasland in
1943-
:issue:`45847`, :issue:`45747`, and :issue:`45763`.)
1944-
19451971
.. note::
1946-
Use the environment variables :envvar:`TCLTK_CFLAGS` and
1947-
:envvar:`TCLTK_LIBS` to manually specify the location of Tcl/Tk headers
1948-
and libraries. The :program:`configure` options ``--with-tcltk-includes``
1949-
and ``--with-tcltk-libs`` have been removed.
1972+
Use the environment variables :envvar:`!TCLTK_CFLAGS` and
1973+
:envvar:`!TCLTK_LIBS` to manually specify the location of Tcl/Tk headers
1974+
and libraries. The :program:`configure` options
1975+
:option:`!--with-tcltk-includes` and :option:`!--with-tcltk-libs`
1976+
have been removed.
19501977

19511978
On RHEL 7 and CentOS 7 the development packages do not provide ``tcl.pc``
1952-
and ``tk.pc``, use :envvar:`TCLTK_LIBS="-ltk8.5 -ltkstub8.5 -ltcl8.5"`.
1979+
and ``tk.pc``; use ``TCLTK_LIBS="-ltk8.5 -ltkstub8.5 -ltcl8.5"``.
19531980
The directory ``Misc/rhel7`` contains ``.pc`` files and instructions
1954-
how to build Python with RHEL 7's and CentOS 7's Tcl/Tk and OpenSSL.
1955-
1956-
* CPython now has :pep:`11` tier 3 support for cross compiling to WebAssembly
1957-
platform ``wasm32-unknown-emscripten`` (Python in the browser). The effort
1958-
is inspired by previous work like `Pyodide <https://pyodide.org/>`_.
1959-
Emscripten provides a limited subset of POSIX APIs. Python standard
1960-
libraries features and modules related to networking, processes, threading,
1961-
signals, mmap, and users/groups are not available or don't work.
1962-
(Contributed by Christian Heimes and Ethan Smith in :gh:`84461`,
1963-
promoted in :gh:`95085`)
1964-
1965-
* CPython now has :pep:`11` tier 3 support for cross compiling to WebAssembly
1966-
platform ``wasm32-unknown-wasi`` (WebAssembly System Interface). Like on
1967-
Emscripten, only a subset of Python's standard library is available on WASI.
1968-
(Contributed by Christian Heimes in :gh:`90473`, promoted in :gh:`95085`)
1981+
on how to build Python with RHEL 7's and CentOS 7's Tcl/Tk and OpenSSL.
19691982

19701983
* CPython will now use 30-bit digits by default for the Python :class:`int`
19711984
implementation. Previously, the default was to use 30-bit digits on platforms
19721985
with ``SIZEOF_VOID_P >= 8``, and 15-bit digits otherwise. It's still possible
19731986
to explicitly request use of 15-bit digits via either the
1974-
``--enable-big-digits`` option to the configure script or (for Windows) the
1975-
``PYLONG_BITS_IN_DIGIT`` variable in ``PC/pyconfig.h``, but this option may
1976-
be removed at some point in the future. (Contributed by Mark Dickinson in
1977-
:issue:`45569`.)
1978-
1979-
* The :mod:`tkinter` package now requires Tcl/Tk version 8.5.12 or newer.
1980-
(Contributed by Serhiy Storchaka in :issue:`46996`.)
1987+
:option:`--enable-big-digits` option to the configure script
1988+
or (for Windows) the ``PYLONG_BITS_IN_DIGIT`` variable in ``PC/pyconfig.h``,
1989+
but this option may be removed at some point in the future.
1990+
(Contributed by Mark Dickinson in :issue:`45569`.)
19811991

19821992

19831993
.. _whatsnew311-c-api:

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.