@@ -1880,31 +1880,66 @@ Porting notes for the C API are
1880
1880
Build Changes
1881
1881
=============
1882
1882
1883
- * Building Python now requires a C11 compiler. Optional C11 features are not
1884
- required.
1885
- (Contributed by Victor Stinner in :issue: `46656 `.)
1886
-
1887
- * Building Python now requires support of IEEE 754 floating point numbers.
1888
- (Contributed by Victor Stinner in :issue: `46917 `.)
1883
+ * CPython now has :pep: `11 ` :pep: `Tier 3 support <11#tier-3 >` for
1884
+ cross compiling to the `WebAssembly <https://webassembly.org/ >`_ platforms
1885
+ `Emscripten <https://emscripten.org/ >`_
1886
+ (``wasm32-unknown-emscripten ``, i.e. Python in the browser)
1887
+ and `WebAssembly System Interface (WASI) <https://wasi.dev/ >`_
1888
+ (``wasm32-unknown-wasi ``).
1889
+ The effort is inspired by previous work like `Pyodide <https://pyodide.org/ >`_.
1890
+ These platforms provide a limited subset of POSIX APIs; Python standard
1891
+ libraries features and modules related to networking, processes, threading,
1892
+ signals, mmap, and users/groups are not available or don't work.
1893
+ (Emscripten contributed by Christian Heimes and Ethan Smith in :gh: `84461 `
1894
+ and WASI contributed by Christian Heimes in :gh: `90473 `;
1895
+ platforms promoted in :gh: `95085 `)
1896
+
1897
+ * Building Python now requires:
1898
+
1899
+ * A `C11 <https://en.cppreference.com/w/c/11 >`_ compiler.
1900
+ `Optional C11 features
1901
+ <https://en.wikipedia.org/wiki/C11_(C_standard_revision)#Optional_features> `_
1902
+ are not required.
1903
+ (Contributed by Victor Stinner in :issue: `46656 `.)
1904
+
1905
+ * Support for `IEEE 754 <https://en.wikipedia.org/wiki/IEEE_754 >`_
1906
+ floating point numbers.
1907
+ (Contributed by Victor Stinner in :issue: `46917 `.)
1908
+
1909
+ * Support for `floating point Not-a-Number (NaN)
1910
+ <https://en.wikipedia.org/wiki/NaN#Floating_point> `_,
1911
+ as the :c:macro: `!Py_NO_NAN ` macro has been removed.
1912
+ (Contributed by Victor Stinner in :issue: `46656 `.)
1913
+
1914
+ * A `C99 <https://en.cppreference.com/w/c/99 >`_
1915
+ ``<math.h> `` header file providing the
1916
+ :c:func: `!copysign `, :c:func: `!hypot `, :c:func: `!isfinite `,
1917
+ :c:func: `!isinf `, :c:func: `!isnan `, and :c:func: `!round ` functions
1918
+ (contributed by Victor Stinner in :issue: `45440 `);
1919
+ and a :c:data: `!NAN ` constant or the :c:func: `!__builtin_nan ` function
1920
+ (Contributed by Victor Stinner in :issue: `46640 `).
1921
+
1922
+ * The :mod: `tkinter ` package now requires `Tcl/Tk <https://www.tcl.tk >`_
1923
+ version 8.5.12 or newer.
1924
+ (Contributed by Serhiy Storchaka in :issue: `46996 `.)
1889
1925
1890
- * CPython can now be built with the ThinLTO option via ``--with-lto=thin ``.
1891
- (Contributed by Dong-hee Na and Brett Holman in :issue: `44340 `.)
1926
+ * Build dependencies, compiler flags, and linker flags for most stdlib
1927
+ extension modules are now detected by :program: `configure `. libffi, libnsl,
1928
+ libsqlite3, zlib, bzip2, liblzma, libcrypt, Tcl/Tk, and uuid flags
1929
+ are detected by `pkg-config
1930
+ <https://www.freedesktop.org/wiki/Software/pkg-config/> `_ (when available).
1931
+ :mod: `tkinter ` now requires a pkg-config command
1932
+ to detect development settings for `Tcl/Tk `_ headers and libraries.
1933
+ (Contributed by Christian Heimes and Erlend Egeberg Aasland in
1934
+ :issue: `45847 `, :issue: `45747 `, and :issue: `45763 `.)
1892
1935
1893
1936
* libpython is no longer linked against libcrypt.
1894
1937
(Contributed by Mike Gilbert in :issue: `45433 `.)
1895
1938
1896
- * Building Python now requires a C99 ``<math.h> `` header file providing
1897
- the following functions: ``copysign() ``, ``hypot() ``, ``isfinite() ``,
1898
- ``isinf() ``, ``isnan() ``, ``round() ``.
1899
- (Contributed by Victor Stinner in :issue: `45440 `.)
1900
-
1901
- * Building Python now requires a C99 ``<math.h> `` header file providing
1902
- a ``NAN `` constant, or the ``__builtin_nan() `` built-in function.
1903
- (Contributed by Victor Stinner in :issue: `46640 `.)
1904
-
1905
- * Building Python now requires support for floating point Not-a-Number (NaN):
1906
- remove the ``Py_NO_NAN `` macro.
1907
- (Contributed by Victor Stinner in :issue: `46656 `.)
1939
+ * CPython can now be built with the
1940
+ `ThinLTO <https://clang.llvm.org/docs/ThinLTO.html >`_ option
1941
+ via passing ``thin `` to :option: `--with-lto `, i.e. ``--with-lto=thin ``.
1942
+ (Contributed by Dong-hee Na and Brett Holman in :issue: `44340 `.)
1908
1943
1909
1944
* Freelists for object structs can now be disabled. A new :program: `configure `
1910
1945
option :option: `!--without-freelists ` can be used to disable all freelists
@@ -1913,55 +1948,30 @@ Build Changes
1913
1948
1914
1949
* ``Modules/Setup `` and ``Modules/makesetup `` have been improved and tied up.
1915
1950
Extension modules can now be built through ``makesetup ``. All except some
1916
- test modules can be linked statically into main binary or library.
1951
+ test modules can be linked statically into a main binary or library.
1917
1952
(Contributed by Brett Cannon and Christian Heimes in :issue: `45548 `,
1918
1953
:issue: `45570 `, :issue: `45571 `, and :issue: `43974 `.)
1919
1954
1920
- * Build dependencies, compiler flags, and linker flags for most stdlib
1921
- extension modules are now detected by :program: `configure `. libffi, libnsl,
1922
- libsqlite3, zlib, bzip2, liblzma, libcrypt, Tcl/Tk, and uuid flags
1923
- are detected by ``pkg-config `` (when available). :mod: `tkinter ` now
1924
- requires ``pkg-config `` command to detect development settings for Tcl/Tk
1925
- headers and libraries.
1926
- (Contributed by Christian Heimes and Erlend Egeberg Aasland in
1927
- :issue: `45847 `, :issue: `45747 `, and :issue: `45763 `.)
1928
-
1929
1955
.. note ::
1930
- Use the environment variables :envvar: `TCLTK_CFLAGS ` and
1931
- :envvar: `TCLTK_LIBS ` to manually specify the location of Tcl/Tk headers
1932
- and libraries. The :program: `configure ` options ``--with-tcltk-includes ``
1933
- and ``--with-tcltk-libs `` have been removed.
1956
+ Use the environment variables :envvar: `!TCLTK_CFLAGS ` and
1957
+ :envvar: `!TCLTK_LIBS ` to manually specify the location of Tcl/Tk headers
1958
+ and libraries. The :program: `configure ` options
1959
+ :option: `!--with-tcltk-includes ` and :option: `!--with-tcltk-libs `
1960
+ have been removed.
1934
1961
1935
1962
On RHEL 7 and CentOS 7 the development packages do not provide ``tcl.pc ``
1936
- and ``tk.pc ``, use :envvar: ` TCLTK_LIBS="-ltk8.5 -ltkstub8.5 -ltcl8.5" `.
1963
+ and ``tk.pc ``; use `` TCLTK_LIBS="-ltk8.5 -ltkstub8.5 -ltcl8.5" ` `.
1937
1964
The directory ``Misc/rhel7 `` contains ``.pc `` files and instructions
1938
- how to build Python with RHEL 7's and CentOS 7's Tcl/Tk and OpenSSL.
1939
-
1940
- * CPython now has :pep: `11 ` tier 3 support for cross compiling to WebAssembly
1941
- platform ``wasm32-unknown-emscripten `` (Python in the browser). The effort
1942
- is inspired by previous work like `Pyodide <https://pyodide.org/ >`_.
1943
- Emscripten provides a limited subset of POSIX APIs. Python standard
1944
- libraries features and modules related to networking, processes, threading,
1945
- signals, mmap, and users/groups are not available or don't work.
1946
- (Contributed by Christian Heimes and Ethan Smith in :gh: `84461 `,
1947
- promoted in :gh: `95085 `)
1948
-
1949
- * CPython now has :pep: `11 ` tier 3 support for cross compiling to WebAssembly
1950
- platform ``wasm32-unknown-wasi `` (WebAssembly System Interface). Like on
1951
- Emscripten, only a subset of Python's standard library is available on WASI.
1952
- (Contributed by Christian Heimes in :gh: `90473 `, promoted in :gh: `95085 `)
1965
+ on how to build Python with RHEL 7's and CentOS 7's Tcl/Tk and OpenSSL.
1953
1966
1954
1967
* CPython will now use 30-bit digits by default for the Python :class: `int `
1955
1968
implementation. Previously, the default was to use 30-bit digits on platforms
1956
1969
with ``SIZEOF_VOID_P >= 8 ``, and 15-bit digits otherwise. It's still possible
1957
1970
to explicitly request use of 15-bit digits via either the
1958
- ``--enable-big-digits `` option to the configure script or (for Windows) the
1959
- ``PYLONG_BITS_IN_DIGIT `` variable in ``PC/pyconfig.h ``, but this option may
1960
- be removed at some point in the future. (Contributed by Mark Dickinson in
1961
- :issue: `45569 `.)
1962
-
1963
- * The :mod: `tkinter ` package now requires Tcl/Tk version 8.5.12 or newer.
1964
- (Contributed by Serhiy Storchaka in :issue: `46996 `.)
1971
+ :option: `--enable-big-digits ` option to the configure script
1972
+ or (for Windows) the ``PYLONG_BITS_IN_DIGIT `` variable in ``PC/pyconfig.h ``,
1973
+ but this option may be removed at some point in the future.
1974
+ (Contributed by Mark Dickinson in :issue: `45569 `.)
1965
1975
1966
1976
1967
1977
.. _whatsnew311-c-api :
0 commit comments