@@ -1896,31 +1896,66 @@ Porting notes for the C API are
1896
1896
Build Changes
1897
1897
=============
1898
1898
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 `.)
1905
1941
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 `.)
1908
1951
1909
1952
* libpython is no longer linked against libcrypt.
1910
1953
(Contributed by Mike Gilbert in :issue: `45433 `.)
1911
1954
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 `.)
1924
1959
1925
1960
* Freelists for object structs can now be disabled. A new :program: `configure `
1926
1961
option :option: `!--without-freelists ` can be used to disable all freelists
@@ -1929,55 +1964,30 @@ Build Changes
1929
1964
1930
1965
* ``Modules/Setup `` and ``Modules/makesetup `` have been improved and tied up.
1931
1966
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.
1933
1968
(Contributed by Brett Cannon and Christian Heimes in :issue: `45548 `,
1934
1969
:issue: `45570 `, :issue: `45571 `, and :issue: `43974 `.)
1935
1970
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
-
1945
1971
.. 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.
1950
1977
1951
1978
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" ` `.
1953
1980
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.
1969
1982
1970
1983
* CPython will now use 30-bit digits by default for the Python :class: `int `
1971
1984
implementation. Previously, the default was to use 30-bit digits on platforms
1972
1985
with ``SIZEOF_VOID_P >= 8 ``, and 15-bit digits otherwise. It's still possible
1973
1986
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 `.)
1981
1991
1982
1992
1983
1993
.. _whatsnew311-c-api :
0 commit comments