Skip to content

Commit bae43d1

Browse files
committed
3.1.54pre
1 parent 26cff8c commit bae43d1

File tree

10 files changed

+300
-317
lines changed

10 files changed

+300
-317
lines changed

config

Lines changed: 71 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
#!/bin/bash
2+
if [[ -z ${CONFIG_ENV+z} ]]
3+
then
4+
export CONFIG_ENV=true
25
export LC_ALL=C
36
export ROOT=${ROOT:-$(pwd)}
47
export SDKROOT=${SDKROOT:-$ROOT}
@@ -42,18 +45,6 @@ else
4245
fi
4346
fi
4447

45-
46-
#stable
47-
# export EMFLAVOUR=3.1.34
48-
49-
# embind broke in 3.1.48-tot (coro suspend/resume)
50-
51-
# embding more broken in 3.1.51
52-
53-
#export EMFLAVOUR=${EMFLAVOUR:latest}
54-
export EMFLAVOUR=${EMFLAVOUR:-tot}
55-
56-
5748
# base wasm features pure is "mvp" , "bi" is bigint
5849

5950
if [ -f /mvp ]
@@ -71,31 +62,77 @@ else
7162
export WASM_PURE=false
7263
fi
7364

65+
66+
67+
# ============ emscripten ==============
68+
69+
# stable
70+
# export EMFLAVOUR=3.1.34
71+
72+
# embind broke in 3.1.48-tot (coro suspend/resume)
73+
74+
# embding more broken in 3.1.51
75+
76+
#export EMFLAVOUR=${EMFLAVOUR:latest}
77+
export EMFLAVOUR=${EMFLAVOUR:-tot}
78+
7479
#temp fix for oom on CI (Error: Process completed with exit code 143.)
7580
export EMSDK_NUM_CORES=1
7681

82+
# for shared modules
7783
export PYDK_PYTHON_HOST_PLATFORM=wasm32-${WASM_FLAVOUR}-emscripten
7884

79-
if echo $LD_LIBRARY_PATH |grep -q ${HOST_PREFIX}/lib
80-
then
81-
# config already set
82-
echo -n
83-
else
84-
OLDPATH=${PATH}
85-
PATH=/usr/local/bin:/usr/bin:/opt/bin:/bin
86-
# this is python used for emsdk : ${SYS_PYTHON} -> ${EMSDK_PYTHON}
87-
for py in 10 9 8 7
88-
do
89-
if command -v python${PYMAJOR}.${py} >/dev/null
90-
then
91-
export SYS_PYTHON=$(command -v python${PYMAJOR}.${py})
92-
break
93-
else
94-
# sane default
95-
export SYS_PYTHON=$(command -v python${PYMAJOR})
96-
fi
97-
done
98-
99-
export LD_LIBRARY_PATH="${HOST_PREFIX}/lib:$LD_LIBRARY_PATH"
100-
export PATH="${HOST_PREFIX}/bin:$OLDPATH"
85+
# ============== wasi sdk ===============
86+
87+
# stable
88+
export WASI_SDK=${WASI_SDK:-20}
89+
export WASI_URL=https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK}/wasi-sdk-${WASI_SDK}.0-linux.tar.gz
90+
export WASISDK="${SDKROOT}/wasisdk"
91+
92+
93+
# =============== Nimrod ====================
94+
95+
# stable
96+
NIM_VERSION=nim-2.0.2
97+
NIM_URL=https://nim-lang.org/download/${NIM_VERSION}-linux_x64.tar.xz
98+
99+
100+
NIM_VERSION=nim-git
101+
NIM_URL=https://github.com/nim-lang/Nim
102+
103+
export NIM_VERSION NIM_URL
104+
export NIMSDK=${NIMSDK:-"${SDKROOT}/nimsdk"}
105+
106+
107+
PATH=/usr/bin:/bin
108+
for extrabin in /usr/local/bin /opt/bin
109+
do
110+
if echo $PATH|grep -q ":$extrabin"
111+
then
112+
continue
113+
fi
114+
115+
if [ -d $extrabin ]
116+
then
117+
PATH=$extrabin:$PATH
118+
fi
119+
done
120+
121+
122+
# this is python used for emsdk : ${SYS_PYTHON} -> ${EMSDK_PYTHON}
123+
for py in 10 9 8 7
124+
do
125+
if command -v python${PYMAJOR}.${py} >/dev/null
126+
then
127+
export SYS_PYTHON=$(command -v python${PYMAJOR}.${py})
128+
break
129+
else
130+
# sane default
131+
export SYS_PYTHON=$(command -v python${PYMAJOR})
132+
fi
133+
done
134+
135+
export GITGET="git clone --recursive --no-tags --depth 1 --single-branch --branch"
136+
export LD_LIBRARY_PATH="${HOST_PREFIX}/lib:$LD_LIBRARY_PATH"
137+
export PATH="${HOST_PREFIX}/bin:$PATH"
101138
fi

python-wasi-sdk.sh

Lines changed: 66 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,42 +8,64 @@ reset
88
. /etc/lsb-release
99
DISTRIB="${DISTRIB_ID}-${DISTRIB_RELEASE}"
1010

11-
export SDKROOT=/opt/python-wasm-sdk
11+
SDKROOT=${SDKROOT:-/opt/python-wasm-sdk}
1212

13+
export SDKROOT
1314
export CIVER=${CIVER:-$DISTRIB}
1415
export CI=true
1516

1617
if echo $0|grep -q python-wasm-sdk
1718
then
1819
echo " * adding emsdk to wasm-sdk"
1920
emsdk=true
21+
wasisdk=${wasisdk:-false}
22+
nimsdk=${nimsdk:-false}
2023
else
2124
emsdk=false
25+
BUILDS=3.12
26+
wasisdk=true
27+
nimsdk=true
2228
fi
2329

24-
echo " * adding wasi-sdk to wasm-sdk"
25-
wasisdk=true
30+
if $wasisdk
31+
then
32+
echo " * adding wasi-sdk to wasm-sdk"
33+
fi
2634

35+
if $nimsdk
36+
then
37+
echo " * adding nim-sdk to wasm-sdk"
38+
fi
2739

28-
sudo mkdir -p ${SDKROOT}
29-
sudo chmod 777 ${SDKROOT}
40+
41+
42+
43+
if [ -d ${SDKROOT} ]
44+
then
45+
echo "assming destination $SDKROOT is ready"
46+
else
47+
sudo mkdir -p ${SDKROOT}
48+
sudo chmod 777 ${SDKROOT}
49+
fi
50+
51+
chmod +x ${SDKROOT}/scripts/*
3052

3153
ORIGIN=$(pwd)
3254

3355
# 3.12 3.11 3.10
3456

35-
BUILDS=${BUILDS:-3.11 3.12 3.13}
57+
BUILDS=${BUILDS:-3.11 3.13 3.12}
3658

3759
for PYBUILD in $BUILDS
3860
do
3961
cd "$ORIGIN"
4062

41-
if echo $PYBUILD|grep -q 12$
42-
then
43-
wasisdk=true
44-
else
45-
wasisdk=false
46-
fi
63+
# if echo $PYBUILD|grep -q 12$
64+
# then
65+
# wasisdk=true
66+
# else
67+
# wasisdk=false
68+
# fi
4769

4870
if [ -f ${SDKROOT}/dev ]
4971
then
@@ -76,6 +98,8 @@ do
7698
. scripts/cpython-fetch.sh
7799

78100
cd ${SDKROOT}
101+
102+
# generic wasm patchwork
79103
. support/__EMSCRIPTEN__.sh
80104

81105
. scripts/cpython-build-host.sh 2>&1 >/dev/null
@@ -84,6 +108,18 @@ do
84108

85109
fi
86110

111+
cat > /opt/python-wasm-sdk/devices/$(arch)/usr/bin/py <<END
112+
#!/bin/bash
113+
export XDG_SESSION_TYPE=x11
114+
export SDKROOT=${SDKROOT}
115+
export PYTHONPATH=/data/git/pygbag/src:/data/git/platform_wasm:${PYTHONPATH}
116+
export PYTHONPYCACHEPREFIX=$PYTHONPYCACHEPREFIX
117+
export HOME=${SDKROOT}
118+
export PATH=${SDKROOT}/devices/$(arch)/usr/bin:\$PATH
119+
export LD_LIBRARY_PATH=${SDKROOT}/devices/$(arch)/usr/lib:${SDKROOT}/devices/$(arch)/usr/lib64:$LD_LIBRARY_PATH
120+
${SDKROOT}/devices/$(arch)/usr/bin/python\${PYBUILD:-$PYBUILD} $@
121+
END
122+
chmod + /opt/python-wasm-sdk/devices/$(arch)/usr/bin/py
87123

88124

89125
if $emsdk
@@ -149,32 +185,43 @@ do
149185

150186
CPU=wasm32 TARGET=wasi \
151187
PYDK_PYTHON_HOST_PLATFORM=wasm32-wasi \
152-
PREFIX=/opt/python-wasm-sdk/devices/wasi/usr \
188+
PREFIX=/opt/python-wasm-sdk/devices/wasisdk/usr \
153189
./scripts/make-shells.sh
154190

155191
cat >> $ROOT/wasm32-wasi-shell.sh <<END
156192
#!/bin/bash
157-
pushd ${SDKROOT}
158-
. scripts/wasisdk-fetch.sh
159-
popd
193+
. ${WASISDK}/wasisdk_env.sh
194+
195+
parse_git_branch() {
196+
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
197+
}
198+
export PS1="[PyDK:wasi] \[\e[32m\]\w \[\e[91m\]\$(parse_git_branch)\[\e[00m\]\$ "
160199
161-
export PS1="[PyDK:wasisdk] \w $ "
162200
163201
END
164202

165203
chmod +x ${SDKROOT}/python3-wasi ${SDKROOT}/wasm32-wasi-shell.sh
166204

205+
fi
167206

168-
207+
if $nimsdk
208+
then
209+
${SDKROOT}/python-nim-sdk.sh
169210
fi
170211

212+
wget https://github.com/bytecodealliance/wasmtime/releases/download/v17.0.1/wasmtime-v17.0.1-x86_64-linux.tar.xz -O-|xzcat|tar xfv -
213+
mv -vf $(find wasmtime*|grep /wasmtime$) ${WASISDK}/bin/
214+
171215
. ${SDKROOT}/scripts/pack-sdk.sh
172216

173217
else
174218
echo "cd failed" 1>&2
175-
exit 156
219+
exit 208
176220
fi
177221
done
178222

223+
224+
225+
179226
exit 0
180227

0 commit comments

Comments
 (0)