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

This commit is contained in:
Christian Heimes 2022-07-27 08:18:34 +02:00 committed by GitHub
parent 2e35a13e46
commit daa64d6a59
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 23 additions and 8 deletions

View file

@ -1551,10 +1551,19 @@ Build Changes
The :program:`configure` options ``--with-tcltk-includes`` and
``--with-tcltk-libs`` have been removed.
* CPython now has experimental support for cross compiling to WebAssembly
platform ``wasm32-emscripten``. The effort is inspired by previous work
like Pyodide.
(Contributed by Christian Heimes and Ethan Smith in :issue:`40280`.)
* 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`)
* 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

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
consumption can crash Python.
- 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
are statically linked into the main binary. The experimental configure
option ``--enable-wasm-dynamic-linking`` enables dynamic extensions

6
configure generated vendored
View file

@ -6342,7 +6342,11 @@ case $host/$ac_cv_cc_name in #(
PY_SUPPORT_TIER=3 ;; #(
s390x-*-linux-gnu/gcc) :
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=0

View file

@ -1141,8 +1141,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
[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
dnl [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-emscripten/clang], [PY_SUPPORT_TIER=3], dnl WebAssembly Emscripten
[wasm32-unknown-wasi/clang], [PY_SUPPORT_TIER=3], dnl WebAssembly System Interface
[x86_64-*-freebsd*/clang], [PY_SUPPORT_TIER=3], dnl FreeBSD on AMD64
[PY_SUPPORT_TIER=0]
)