https://github.com/python/cpython/commit/7af063d1d85f965da06a65eca800f4c537d55fa5
commit: 7af063d1d85f965da06a65eca800f4c537d55fa5
branch: main
author: Brett Cannon <[email protected]>
committer: kushaldas <[email protected]>
date: 2024-03-05T09:18:53+01:00
summary:
GH-116313: get WASI builds to run under wasmtime 18 w/ WASI 0.2/preview2
primitives (#116327)
* GH-116313: get WASI builds to run under wasmtime 18 w/ WASI 0.2/preview2
primitives
* Add the configure changes
* Update `wasm_build.py`
files:
A Misc/NEWS.d/next/Build/2024-03-04-12-43-42.gh-issue-116313.cLLb8S.rst
M .devcontainer/Dockerfile
M Tools/wasm/wasi.py
M Tools/wasm/wasm_build.py
M configure
M configure.ac
diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
index 9f808af38e69df..365756458bba30 100644
--- a/.devcontainer/Dockerfile
+++ b/.devcontainer/Dockerfile
@@ -6,7 +6,7 @@ ENV WASI_SDK_VERSION=20
ENV WASI_SDK_PATH=/opt/wasi-sdk
ENV WASMTIME_HOME=/opt/wasmtime
-ENV WASMTIME_VERSION=14.0.4
+ENV WASMTIME_VERSION=18.0.2
ENV WASMTIME_CPU_ARCH=x86_64
RUN dnf -y --nodocs --setopt=install_weak_deps=False install
/usr/bin/{blurb,clang,curl,git,ln,tar,xz} 'dnf-command(builddep)' && \
diff --git
a/Misc/NEWS.d/next/Build/2024-03-04-12-43-42.gh-issue-116313.cLLb8S.rst
b/Misc/NEWS.d/next/Build/2024-03-04-12-43-42.gh-issue-116313.cLLb8S.rst
new file mode 100644
index 00000000000000..61501549060024
--- /dev/null
+++ b/Misc/NEWS.d/next/Build/2024-03-04-12-43-42.gh-issue-116313.cLLb8S.rst
@@ -0,0 +1 @@
+Get WASI builds to work under wasmtime 18 w/ WASI 0.2/preview2 primitives.
diff --git a/Tools/wasm/wasi.py b/Tools/wasm/wasi.py
index 1e75db5c7b8329..efb005e53ab989 100644
--- a/Tools/wasm/wasi.py
+++ b/Tools/wasm/wasi.py
@@ -283,8 +283,10 @@ def main():
# The 8388608 value comes from `ulimit -s` under Linux
# which equates to 8291 KiB.
"--wasm max-wasm-stack=8388608 "
- # Enable thread support.
- "--wasm threads=y --wasi threads=y "
+ # Use WASI 0.2 primitives.
+ "--wasi preview2 "
+ # Enable thread support; causes use of preview1.
+ #"--wasm threads=y --wasi threads=y "
# Map the checkout to / to load the stdlib from /Lib.
"--dir {HOST_DIR}::{GUEST_DIR} "
# Set PYTHONPATH to the sysconfig data.
diff --git a/Tools/wasm/wasm_build.py b/Tools/wasm/wasm_build.py
index c0b9999a5dad03..47a0abb8b5feef 100755
--- a/Tools/wasm/wasm_build.py
+++ b/Tools/wasm/wasm_build.py
@@ -329,8 +329,10 @@ def _check_wasi() -> None:
# workaround for https://github.com/python/cpython/issues/95952
"HOSTRUNNER": (
"wasmtime run "
- "--env
PYTHONPATH=/{relbuilddir}/build/lib.wasi-wasm32-{version}:/Lib "
- "--mapdir /::{srcdir} --"
+ "--wasm max-wasm-stack=8388608 "
+ "--wasi preview2 "
+ "--dir {srcdir}::/ "
+ "--env
PYTHONPATH=/{relbuilddir}/build/lib.wasi-wasm32-{version}:/Lib"
),
"PATH": [WASI_SDK_PATH / "bin", os.environ["PATH"]],
},
diff --git a/configure b/configure
index 4a980fea453697..c758749cd371ed 100755
--- a/configure
+++ b/configure
@@ -7655,7 +7655,7 @@ then :
fi
;; #(
WASI/*) :
- HOSTRUNNER='wasmtime run --env PYTHONPATH=/$(shell realpath --relative-to
$(abs_srcdir) $(abs_builddir))/$(shell cat pybuilddir.txt):/Lib --mapdir
/::$(srcdir) --' ;; #(
+ HOSTRUNNER='wasmtime run --wasm max-wasm-stack=8388608 --wasi preview2
--env PYTHONPATH=/$(shell realpath --relative-to $(abs_srcdir)
$(abs_builddir))/$(shell cat pybuilddir.txt):/Lib --dir $(srcdir)::/' ;; #(
*) :
HOSTRUNNER=''
;;
diff --git a/configure.ac b/configure.ac
index 103c24962b7b42..80d0a7edc7cad4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1537,7 +1537,7 @@ then
dnl TODO: support other WASI runtimes
dnl wasmtime starts the proces with "/" as CWD. For OOT builds add the
dnl directory containing _sysconfigdata to PYTHONPATH.
- [WASI/*], [HOSTRUNNER='wasmtime run --env PYTHONPATH=/$(shell realpath
--relative-to $(abs_srcdir) $(abs_builddir))/$(shell cat pybuilddir.txt):/Lib
--mapdir /::$(srcdir) --'],
+ [WASI/*], [HOSTRUNNER='wasmtime run --wasm max-wasm-stack=8388608 --wasi
preview2 --env PYTHONPATH=/$(shell realpath --relative-to $(abs_srcdir)
$(abs_builddir))/$(shell cat pybuilddir.txt):/Lib --dir $(srcdir)::/'],
[HOSTRUNNER='']
)
fi
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]