Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
C
Cpython
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
sip
Cpython
Commits
e81fad6b
Unverified
Commit
e81fad6b
authored
Oct 24, 2022
by
C.A.M. Gerlach
Committed by
GitHub
Oct 24, 2022
Browse files
Options
Downloads
Patches
Plain Diff
gh-95913: Edit, link and sort 3.11 WhatsNew Build section (#98588)
parent
43bef54a
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
Doc/whatsnew/3.11.rst
+67
-57
67 additions, 57 deletions
Doc/whatsnew/3.11.rst
with
67 additions
and
57 deletions
Doc/whatsnew/3.11.rst
+
67
−
57
View file @
e81fad6b
...
...
@@ -1896,31 +1896,66 @@ Porting notes for the C API are
Build Changes
=============
* Building Python now requires a C11 compiler. Optional C11 features are not
required.
* CPython now has :pep:`11` :pep:`Tier 3 support <11#tier-3>` for
cross compiling to the `WebAssembly <https://webassembly.org/>`_ platforms
`Emscripten <https://emscripten.org/>`_
(``wasm32-unknown-emscripten``, i.e. Python in the browser)
and `WebAssembly System Interface (WASI) <https://wasi.dev/>`_
(``wasm32-unknown-wasi``).
The effort is inspired by previous work like `Pyodide <https://pyodide.org/>`_.
These platforms provide 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.
(Emscripten contributed by Christian Heimes and Ethan Smith in :gh:`84461`
and WASI contributed by Christian Heimes in :gh:`90473`;
platforms promoted in :gh:`95085`)
* 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.
* 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``.
(Contributed by Dong-hee Na and Brett Holman in :issue:`44340`.)
* 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`.)
* libpython is no longer linked against libcrypt.
(Contributed by Mike Gilbert in :issue:`45433`.)
* A `C99 <https://en.cppreference.com/w/c/99>`_
``<math.h>`` header file providing the
:c:func:`!copysign`, :c:func:`!hypot`, :c:func:`!isfinite`,
:c:func:`!isinf`, :c:func:`!isnan`, and :c:func:`!round` functions
(contributed by Victor Stinner in :issue:`45440`);
and a :c:data:`!NAN` constant or the :c:func:`!__builtin_nan` function
(Contributed by Victor Stinner in :issue:`46640`).
* Building Python now requires a C99 ``<math.h>`` header file providing
the following functions: ``copysign()``, ``hypot()``, ``isfinite()``,
``isinf()``, ``isnan()``, ``round()``.
(Contributed by Victor Stinner in :issue:`45440`.)
* 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`.)
* Building Python now requires a C99 ``<math.h>`` header file providing
a ``NAN`` constant, or the ``__builtin_nan()`` built-in function.
(Contributed by Victor Stinner in :issue:`46640`.)
* 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
<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`.)
* Building Python now requires support for floating point Not-a-Number (NaN):
remove the ``Py_NO_NAN`` macro.
(Contributed by Victor Stinner in :issue:`46656`.)
* libpython is no longer linked against libcrypt.
(Contributed by Mike Gilbert in :issue:`45433`.)
* 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`.)
* Freelists for object structs can now be disabled. A new :program:`configure`
option :option:`!--without-freelists` can be used to disable all freelists
...
...
@@ -1929,55 +1964,30 @@ 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.
(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
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.
(Contributed by Christian Heimes in :gh:`90473`, promoted in :gh:`95085`)
on how to build Python with RHEL 7's and CentOS 7's Tcl/Tk and OpenSSL.
* 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`.)
* The :mod:`tkinter` package now requires Tcl/Tk version 8.5.12 or newer.
(Contributed by Serhiy Storchaka in :issue:`46996`.)
: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`.)
.. _whatsnew311-c-api:
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment