Skip to content

Commit 9881f68

Browse files
committed
adjust dyld patch
1 parent fb7c11f commit 9881f68

File tree

8 files changed

+50
-38
lines changed

8 files changed

+50
-38
lines changed

config

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export PYTHONDONTWRITEBYTECODE=1
77
export REBUILD=${REBUILD:-false}
88
export CI=${CI:-false}
99

10-
export PYBUILD=${PYBUILD:-3.11}
10+
export PYBUILD=${PYBUILD:-3.12}
1111
export PYMAJOR=$(echo -n $PYBUILD|cut -d. -f1)
1212
export PYMINOR=$(echo -n $PYBUILD|cut -d. -f2)
1313

@@ -42,11 +42,12 @@ fi
4242

4343

4444
#stable
45-
# EMFLAVOUR=latest
46-
# EMFLAVOUR=${EMFLAVOUR:-latest}
4745
# embind broke after 3.1.34
46+
# export EMFLAVOUR=${EMFLAVOUR:-3.1.34}
47+
# export EMFLAVOUR=${EMFLAVOUR:latest}
4848

49-
export EMFLAVOUR=${EMFLAVOUR:-3.1.34}
49+
50+
EMFLAVOUR=${EMFLAVOUR:-tot}
5051

5152
# no extra wasm features
5253
export WASMFLAVOUR=mvp

scripts/cpython-build-emsdk-deps.sh

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,20 @@
33
. ${CONFIG:-config}
44

55

6-
76
for pkg in $ROOT/sources.wasm/*.sh
87
do
9-
pushd $ROOT/src
8+
cd $ROOT
109
chmod +x $pkg
10+
echo "
11+
12+
Third party : $pkg
13+
14+
15+
"
1116
$pkg
12-
popd
1317
done
1418

1519

16-
cd $ROOT/src
17-
1820
cd $ROOT
1921

2022
. ./scripts/emsdk-fetch.sh

scripts/cpython-build-emsdk-prebuilt.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ echo "
2222

2323
$PIP install --upgrade pip
2424

25+
$PIP install --upgrade build
2526

2627
# make wheels
2728
# /opt/python-wasm-sdk/python3-wasm setup.py bdist_wheel

scripts/cpython-build-emsdk.sh

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -248,18 +248,17 @@ mkdir -p $PYTHONPYCACHEPREFIX/sysconfig
248248

249249

250250
# FIXME: seems CI cannot locate that one with python3-wasm
251-
cp $PREFIX/lib/python${PYBUILD}/_sysconfigdata__emscripten_wasm32-emscripten.py \
252-
${SDKROOT}/prebuilt/emsdk/${PYBUILD}/_sysconfigdata__emscripten_debug.py
253251

254-
sed -i 's|-Os|-O0|g' ${SDKROOT}/prebuilt/emsdk/${PYBUILD}/_sysconfigdata__emscripten_debug.py
255-
sed -i 's|-g0|-g3|g' ${SDKROOT}/prebuilt/emsdk/${PYBUILD}/_sysconfigdata__emscripten_debug.py
252+
MODSYSCONFIG="${SDKROOT}/prebuilt/emsdk/${PYBUILD}/_sysconfigdata__emscripten_debug.py"
256253

257-
#cp ${SDKROOT}/prebuilt/emsdk/${PYBUILD}/_sysconfigdata__emscripten_debug.py \
258-
# $PREFIX/lib/python${PYBUILD}/
254+
cp $PREFIX/lib/python${PYBUILD}/_sysconfigdata__emscripten_wasm32-emscripten.py \
255+
${MODSYSCONFIG}
259256

260-
# python setup.py install --single-version-externally-managed --root=/
261-
# pip3 install .
257+
sed -i 's|-Os|-O0|g' ${MODSYSCONFIG}
258+
sed -i 's|-g0|-g3|g' ${MODSYSCONFIG}
262259

260+
# this one is required for `python3-wasm -mbuild` venv
261+
ln ${MODSYSCONFIG} ${SDKROOT}/devices/$(arch)/usr/lib/python${PYBUILD}/
263262

264263
# cmake usually wants cc
265264
ln ${SDKROOT}/emsdk/upstream/emscripten/emcc ${SDKROOT}/emsdk/upstream/emscripten/cc

sources.wasm/assimp.sh

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
#!/bin/bash
22

33

4-
54
. ${CONFIG:-config}
5+
. scripts/emsdk-fetch.sh
66

7-
export ASSIMP="assimpjs-wasm"
87

8+
cd ${ROOT}/src
9+
10+
export ASSIMP="assimpjs-wasm"
911

1012
if [ -f assimp.patched ]
1113
then
@@ -38,4 +40,3 @@ else
3840
popd
3941
fi
4042

41-
cd $SDKROOT

sources.wasm/ncurses.sh

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22

33
. ${CONFIG:-config}
44

5+
. scripts/emsdk-fetch.sh
6+
7+
8+
cd ${ROOT}/src
9+
510
# --disable-database --enable-termcap
611

712
NCOPTS="--enable-ext-colors --enable-ext-mouse --prefix=$PREFIX --disable-echo --without-pthread \

sources.wasm/openssl.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
#!/bin/bash
22

33
. ${CONFIG:-config}
4+
. scripts/emsdk-fetch.sh
45

6+
cd ${ROOT}/src
57
export OPENSSL="openssl-1.1.1s"
68
export URL_OPENSSL=${URL_OPENSSL:-"URL https://ftp.openssl.org/source/$OPENSSL.tar.gz"}
79
export HASH_OPENSSL="URL_HASH SHA256=c5ac01e760ee6ff0dab61d6b2bbd30146724d063eb322180c6f18a6f74e4b6aa"
810

9-
. scripts/emsdk-fetch.sh
11+
1012

1113
if [ -f openssl.patched ]
1214
then
@@ -72,3 +74,4 @@ else
7274
cp libcrypto.a libssl.a "$PREFIX/lib"
7375
popd
7476
fi
77+

support/__EMSCRIPTEN__.embed/browsermodule.c

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,7 @@ Object_await(Object *self) {
294294
wrapper->asyncio_future_blocking = 0;
295295

296296
wrapper->result = (EM_VAL)EM_ASM_INT({
297-
var value = emval_handle_array[$0].value;
297+
var value = Emval.toValue($0);
298298
if (value && typeof value.then === "function") {
299299
value.then(function (result) {
300300
__py_notify_done($1, Emval.toHandle(result));
@@ -324,7 +324,7 @@ Object_await(Object *self) {
324324
static PyObject *
325325
Object_repr(Object *self) {
326326
char *str = (char *)EM_ASM_INT({
327-
var value = emval_handle_array[$0].value;
327+
var value = Emval.toValue($0);
328328
var str = value.constructor ? value.constructor.name : 'Object';
329329
var len = lengthBytesUTF8(str) + 1;
330330
var buffer = _malloc(len);
@@ -351,7 +351,7 @@ Object_hash(Object *self) {
351351
static PyObject *
352352
Object_str(Object *self) {
353353
char *str = (char *)EM_ASM_INT({
354-
var str = emval_handle_array[$0].value.toString();
354+
var str = Emval.toValue($0).toString();
355355
var len = lengthBytesUTF8(str) + 1;
356356
var buffer = _malloc(len);
357357
stringToUTF8(str, buffer, len);
@@ -369,7 +369,7 @@ Object_str(Object *self) {
369369
static Py_ssize_t
370370
Object_length(Object *self) {
371371
int len = EM_ASM_INT({
372-
var val = emval_handle_array[$0].value;
372+
var val = Emval.toValue($0);
373373
if (val[Symbol.iterator] && val.length !== undefined) {
374374
return val.length;
375375
}
@@ -399,7 +399,7 @@ Object_getprop(Object *self, PyObject *item) {
399399

400400
EM_VAL result = (EM_VAL)EM_ASM_INT({
401401
try {
402-
return Emval.toHandle(emval_handle_array[$0].value[emval_handle_array[$1].value]);
402+
return Emval.toHandle(Emval.toValue($0)[Emval.toValue($1)]);
403403
}
404404
catch (ex) {
405405
return -Emval.toHandle(ex);
@@ -490,7 +490,7 @@ Object_richcompare(Object *self, PyObject *other, int op) {
490490
static PyObject *
491491
Object_iter(Object *self) {
492492
EM_VAL val = (EM_VAL)EM_ASM_INT({
493-
var val = emval_handle_array[$0].value;
493+
var val = Emval.toValue($0);
494494
if (val[Symbol.iterator]) {
495495
return Emval.toHandle(val[Symbol.iterator]());
496496
} else {
@@ -518,7 +518,7 @@ Object_iter(Object *self) {
518518
static PyObject *
519519
Object_next(Object *self) {
520520
EM_VAL val = (EM_VAL)EM_ASM_INT({
521-
var val = emval_handle_array[$0].value;
521+
var val = Emval.toValue($0);
522522
if (!val.next) {
523523
return 0;
524524
}
@@ -545,7 +545,7 @@ static PyObject *
545545
Object_dir(Object *self, PyObject *noarg) {
546546
return emval_to_py((EM_VAL)EM_ASM_INT({
547547
var props = [];
548-
for (var prop in emval_handle_array[$0].value) {
548+
for (var prop in Emval.toValue($0)) {
549549
props.push(prop);
550550
}
551551
return Emval.toHandle(props);
@@ -620,7 +620,7 @@ Function_call(Function *self, PyObject *args, PyObject *kwargs) {
620620
case 0:
621621
result = (EM_VAL)EM_ASM_INT({
622622
try {
623-
return Emval.toHandle(emval_handle_array[$0].value.call(emval_handle_array[$1].value));
623+
return Emval.toHandle(Emval.toValue($0).call(Emval.toValue($1)));
624624
}
625625
catch (ex) {
626626
return -Emval.toHandle(ex);
@@ -635,7 +635,7 @@ Function_call(Function *self, PyObject *args, PyObject *kwargs) {
635635
}
636636
result = (EM_VAL)EM_ASM_INT({
637637
try {
638-
return Emval.toHandle(emval_handle_array[$0].value.call(emval_handle_array[$1].value, emval_handle_array[$2].value));
638+
return Emval.toHandle(Emval.toValue($0).call(Emval.toValue($1), Emval.toValue($2)));
639639
}
640640
catch (ex) {
641641
return -Emval.toHandle(ex);
@@ -668,9 +668,9 @@ Function_call(Function *self, PyObject *args, PyObject *kwargs) {
668668
for (var i = 0; i < $2; ++i) {
669669
var arg_handle = getValue($3+i*4, 'i32');
670670
arg_handles.push(arg_handle);
671-
arg_values.push(emval_handle_array[arg_handle].value);
671+
arg_values.push(Emval.toValue(arg_handle));
672672
}
673-
return Emval.toHandle(emval_handle_array[$0].value.apply(emval_handle_array[$1].value, arg_values));
673+
return Emval.toHandle(Emval.toValue($0).apply(Emval.toValue($1), arg_values));
674674
}
675675
catch (ex) {
676676
return -Emval.toHandle(ex);
@@ -709,7 +709,7 @@ static PyTypeObject Function_Type = {
709709
static PyObject *
710710
Symbol_description(Symbol *self, void *unused) {
711711
char *str = (char *)EM_ASM_INT({
712-
var str = emval_handle_array[$0].value.description;
712+
var str = Emval.toValue($0).description;
713713
var len = lengthBytesUTF8(str) + 1;
714714
var buffer = _malloc(len);
715715
stringToUTF8(str, buffer, len);
@@ -896,7 +896,7 @@ static EM_VAL py_to_emval(PyObject *val) {
896896
setValue(argv+i*4, Emval.toHandle(arguments[i]), 'i32');
897897
}
898898
var result = __py_call($1, $2, Emval.toHandle(this), argc, argv);
899-
return emval_handle_array[result].value;
899+
return Emval.toValue(result);
900900
}
901901
});
902902
}, callback_id, func, self, max_args);
@@ -933,7 +933,7 @@ static PyObject *emval_to_py(EM_VAL handle) {
933933

934934
// Extract the message and the exception type.
935935
int type = EM_ASM_INT({
936-
var exc = emval_handle_array[$0].value;
936+
var exc = Emval.toValue($0);
937937
try {
938938
if (exc.message) {
939939
stringToUTF8(exc.message, $1, 512);
@@ -978,7 +978,7 @@ static PyObject *emval_to_py(EM_VAL handle) {
978978
} target;
979979

980980
int type = EM_ASM_INT(({
981-
var value = emval_handle_array[$0].value;
981+
var value = Emval.toValue($0);
982982
var type = typeof value;
983983
if (type === "number") {
984984
// Check whether it fits in an int.
@@ -1061,7 +1061,7 @@ browser_getattr(PyObject *self, PyObject *arg) {
10611061
}
10621062
EM_VAL result = (EM_VAL)EM_ASM_INT({
10631063
try {
1064-
return Emval.toHandle(window[emval_handle_array[$0].value]);
1064+
return Emval.toHandle(window[Emval.toValue($0)]);
10651065
}
10661066
catch (ex) {
10671067
return -Emval.toHandle(ex);

0 commit comments

Comments
 (0)