]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-95085: Promote Emscripten and WASI to PEP 11 tier 3 (GH-95086)
authorChristian Heimes <christian@python.org>
Wed, 27 Jul 2022 06:18:34 +0000 (08:18 +0200)
committerGitHub <noreply@github.com>
Wed, 27 Jul 2022 06:18:34 +0000 (08:18 +0200)
Doc/whatsnew/3.11.rst
Misc/NEWS.d/next/Build/2022-07-21-09-17-01.gh-issue-95085.E9x2S_.rst [new file with mode: 0644]
Tools/wasm/README.md
configure
configure.ac

index b7ec8ad55471b767fb0da8099ab271e5a0377185..f458f8e6a40bffd4c73f1218a6cc0f4997177289 100644 (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
diff --git a/Misc/NEWS.d/next/Build/2022-07-21-09-17-01.gh-issue-95085.E9x2S_.rst b/Misc/NEWS.d/next/Build/2022-07-21-09-17-01.gh-issue-95085.E9x2S_.rst
new file mode 100644 (file)
index 0000000..02dbd2b
--- /dev/null
@@ -0,0 +1,2 @@
+Platforms ``wasm32-unknown-emscripten`` and ``wasm32-unknown-wasi`` have
+been promoted to :pep:`11` tier 3 platform support.
index c1daddda463bbb5004067201510711e905ae56a9..37bd395baff6d7ccb41f0befde7ab17a2766e7bc 100644 (file)
@@ -167,7 +167,7 @@ functions.
 - 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
index 6190680d8749352ea0ef73a157fd62211045db94..77c4bdb1d392ebc73a9aefe31e0cf0899eccbc3a 100755 (executable)
--- a/configure
+++ b/configure
@@ -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
index 2c1b2ddeaf47afc0c455eaa1cbd3602212ba15ed..78eebd57bd24dff34db5d0da27cef86bede1fee0 100644 (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]
 )