@@ -15,7 +15,7 @@ ENV WASMTIME_VERSION=42.0.1
1515ENV WIZER_VERSION=10.0.0
1616ENV WASI_VFS_VERSION=0.6.2
1717ENV PYTHON_PATH=/opt/wasi-python
18- ENV PYTHON_PYLIB=${PYTHON_PATH}/lib/python3.13
18+ ENV PYTHON_PYLIB=${PYTHON_PATH}/lib/python3.14
1919ENV PYTHON_SITE=${PYTHON_PYLIB}/site-packages
2020
2121RUN <<EOF
6767
6868RUN <<EOF
6969mkdir -p /build/cpython
70- curl -L https://www.python.org/ftp/python/3.13.0 /Python-3.13.0 .tgz | \
70+ curl -L https://www.python.org/ftp/python/3.14.3 /Python-3.14.3 .tgz | \
7171 tar -xz --strip-components 1 -C /build/cpython
7272EOF
7373
74+ RUN <<'EOF'
75+ cd /build/cpython
76+ sed -i '/!_Py__has_attribute(preserve_none)/,/# endif/{
77+ s/# if !_Py__has_attribute(preserve_none) || !_Py__has_attribute(musttail)/# if !_Py__has_attribute(musttail)/
78+ }' Python/ceval_macros.h
79+ sed -i 's/# define Py_PRESERVE_NONE_CC __attribute__((preserve_none))/# if _Py__has_attribute(preserve_none)\n # define Py_PRESERVE_NONE_CC __attribute__((preserve_none))\n # else\n # define Py_PRESERVE_NONE_CC\n # endif/' Python/ceval_macros.h
80+ EOF
81+
7482RUN <<EOF
7583cd /build/cpython
76- python3 Tools/wasm/wasi.py configure-build-python
77- python3 Tools/wasm/wasi.py make-build-python
84+ python3 Tools/wasm/wasi configure-build-python
85+ python3 Tools/wasm/wasi make-build-python
7886EOF
7987
8088RUN <<EOF
8189cd /build/cpython
82- python3 Tools/wasm/wasi.py configure-host -- \
83- CFLAGS='-Os' --prefix=${PYTHON_PATH} --disable-test-modules
84- python3 Tools/wasm/wasi.py make-host
85- make -C cross-build/wasm32-wasi install COMPILEALL_OPTS='-j0 -b'
90+ python3 Tools/wasm/wasi configure-host -- \
91+ CFLAGS='-Os -mtail-call ' --prefix=${PYTHON_PATH} --disable-test-modules --with-tail-call-interp
92+ python3 Tools/wasm/wasi make-host
93+ make -C cross-build/wasm32-wasip1 install COMPILEALL_OPTS='-j0 -b'
8694EOF
8795
8896RUN <<EOF
89- cd /build/cpython/cross-build/wasm32-wasi
97+ cd /build/cpython/cross-build/wasm32-wasip1
9098${WASI_SDK_PATH}/bin/ar -M <<AR
91- create ${PYTHON_PATH}/lib/libpython3.13 .a
92- addlib libpython3.13 .a
99+ create ${PYTHON_PATH}/lib/libpython3.14 .a
100+ addlib libpython3.14 .a
93101addlib Modules/expat/libexpat.a
94102addlib Modules/_decimal/libmpdec/libmpdec.a
103+ addlib Modules/_hacl/libHacl_Hash_BLAKE2.a
104+ addlib Modules/_hacl/libHacl_Hash_MD5.a
105+ addlib Modules/_hacl/libHacl_Hash_SHA1.a
95106addlib Modules/_hacl/libHacl_Hash_SHA2.a
107+ addlib Modules/_hacl/libHacl_Hash_SHA3.a
108+ addlib Modules/_hacl/libHacl_HMAC.a
96109addlib ${WASI_SDK_LIBDIR}/libz.a
97110save
98111end
102115RUN <<EOF
103116cd ${PYTHON_PYLIB}
104117find . -name __pycache__ -exec rm -rf {} \;
105- rm -rf config-3.13 -wasm32-wasi
118+ rm -rf config-3.14 -wasm32-wasi
106119rm -rf _*_support* _pyrepl bdb concurrent curses ensurepip doctest* idlelib
107120rm -rf multiprocessing pdb pydoc* socketserver* sqlite3 ssl* subprocess*
108121rm -rf tkinter turtle* unittest venv webbrowser* wsgiref xmlrpc
@@ -117,5 +130,5 @@ RUN <<EOF
117130cd ${PYTHON_SITE}
118131find . -name '*.dist-info' -exec rm -rf {} \;
119132rm -rf bin
120- /build/cpython/cross-build/build/ python -m compileall -b .
133+ $(find /build/cpython/cross-build -maxdepth 2 -name python -not -path '*/wasm32-*' -type f) -m compileall -b .
121134EOF
0 commit comments