[3.11] gh-95085: Promote Emscripten and WASI to PEP 11 tier 3 (GH-95086) (GH-95307)

Co-authored-by: Christian Heimes <christian@python.org>
This commit is contained in:
Miss Islington (bot) 2022-07-27 02:16:38 -07:00 committed by GitHub
parent 131fc72700
commit 202311c67a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 23 additions and 8 deletions

View File

@ -1556,10 +1556,19 @@ Build Changes
The :program:`configure` options ``--with-tcltk-includes`` and The :program:`configure` options ``--with-tcltk-includes`` and
``--with-tcltk-libs`` have been removed. ``--with-tcltk-libs`` have been removed.
* CPython now has experimental support for cross compiling to WebAssembly * CPython now has :pep:`11` tier 3 support for cross compiling to WebAssembly
platform ``wasm32-emscripten``. The effort is inspired by previous work platform ``wasm32-unknown-emscripten`` (Python in the browser). The effort
like Pyodide. is inspired by previous work like `Pyodide <https://pyodide.org/>`_.
(Contributed by Christian Heimes and Ethan Smith in :issue:`40280`.) 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`)
* CPython will now use 30-bit digits by default for the Python :class:`int` * 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 implementation. Previously, the default was to use 30-bit digits on platforms

View File

@ -0,0 +1,2 @@
Platforms ``wasm32-unknown-emscripten`` and ``wasm32-unknown-wasi`` have
been promoted to :pep:`11` tier 3 platform support.

View File

@ -167,7 +167,7 @@ ## Misc
- Heap memory and stack size are limited. Recursion or extensive memory - Heap memory and stack size are limited. Recursion or extensive memory
consumption can crash Python. consumption can crash Python.
- Most stdlib modules with a dependency on external libraries are missing, - Most stdlib modules with a dependency on external libraries are missing,
e.g. ``ctypes``, ``readline``, ``sqlite3``, ``ssl``, and more. e.g. ``ctypes``, ``readline``, ``ssl``, and more.
- Shared extension modules are not implemented yet. All extension modules - Shared extension modules are not implemented yet. All extension modules
are statically linked into the main binary. The experimental configure are statically linked into the main binary. The experimental configure
option ``--enable-wasm-dynamic-linking`` enables dynamic extensions option ``--enable-wasm-dynamic-linking`` enables dynamic extensions

6
configure generated vendored
View File

@ -6246,7 +6246,11 @@ case $host/$ac_cv_cc_name in #(
PY_SUPPORT_TIER=3 ;; #( PY_SUPPORT_TIER=3 ;; #(
s390x-*-linux-gnu/gcc) : s390x-*-linux-gnu/gcc) :
PY_SUPPORT_TIER=3 ;; #( PY_SUPPORT_TIER=3 ;; #(
x86_64-*-freebsd*/clang) : wasm32-unknown-emscripten/clang) :
PY_SUPPORT_TIER=3 ;; #(
wasm32-unknown-wasi/clang) :
PY_SUPPORT_TIER=3 ;; #(
x86_64-*-freebsd*/clang) :
PY_SUPPORT_TIER=3 ;; #( PY_SUPPORT_TIER=3 ;; #(
*) : *) :
PY_SUPPORT_TIER=0 PY_SUPPORT_TIER=0

View File

@ -1126,8 +1126,8 @@ AS_CASE([$host/$ac_cv_cc_name],
[armv7l-*-linux-gnueabihf/gcc], [PY_SUPPORT_TIER=3], dnl ARMv7 LE with hardware floats, any vendor, glibc, gcc [armv7l-*-linux-gnueabihf/gcc], [PY_SUPPORT_TIER=3], dnl ARMv7 LE with hardware floats, any vendor, glibc, gcc
[powerpc64le-*-linux-gnu/clang], [PY_SUPPORT_TIER=3], dnl Linux on PPC64 little endian, glibc, clang [powerpc64le-*-linux-gnu/clang], [PY_SUPPORT_TIER=3], dnl Linux on PPC64 little endian, glibc, clang
[s390x-*-linux-gnu/gcc], [PY_SUPPORT_TIER=3], dnl Linux on 64bit s390x (big endian), glibc, gcc [s390x-*-linux-gnu/gcc], [PY_SUPPORT_TIER=3], dnl Linux on 64bit s390x (big endian), glibc, gcc
dnl [wasm32-unknown-emscripten/clang], [PY_SUPPORT_TIER=3], dnl WebAssembly Emscripten [wasm32-unknown-emscripten/clang], [PY_SUPPORT_TIER=3], dnl WebAssembly Emscripten
dnl [wasm32-unknown-wasi/clang], [PY_SUPPORT_TIER=3], dnl WebAssembly System Interface [wasm32-unknown-wasi/clang], [PY_SUPPORT_TIER=3], dnl WebAssembly System Interface
[x86_64-*-freebsd*/clang], [PY_SUPPORT_TIER=3], dnl FreeBSD on AMD64 [x86_64-*-freebsd*/clang], [PY_SUPPORT_TIER=3], dnl FreeBSD on AMD64
[PY_SUPPORT_TIER=0] [PY_SUPPORT_TIER=0]
) )