Skip to content

Commit

Permalink
add pkpy
Browse files Browse the repository at this point in the history
  • Loading branch information
pmp-p committed Dec 18, 2023
1 parent b3c3fff commit 7ef4711
Show file tree
Hide file tree
Showing 9 changed files with 280 additions and 130 deletions.
Binary file added assets/pkpy/beep.ogg
Binary file not shown.
1 change: 1 addition & 0 deletions assets/pkpy/pkpy.six
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
P0;0;0q"1;1;128;128#0;2;0;0;0#1;2;14;15;16#2;2;48;43;18#3;2;19;31;44#4;2;72;60;9#5;2;91;79;28#6;2;27;43;61#7;2;55;63;73#8;2;98;98;96#0!128~-!128~-!14~^NNN!47FNNN^!59~$#3!14?_ooo!47wooo_-#0!10~NF@#6??_oo!46woo_#0???@BF^!54~$#3!10?ow}~~^NN!46FNN^~~~}{w_-#0!8~B#6!5?}!52~}#0!6?@!53~$#3!8?{!5~@!52?@!6~#1}-#0!8~#3!6~#6!15~B@!13?!5@BBFN^!14~#3!6~#1~#0!53~$#7!29?C?!13@???AA?CGO_$#8!29?w!17}{{{wo_-#0!8~#3!6~#6!15~!6?}!7~!4}{w!5?@!13~#3!6~#1~#0!53~$#8!29?!6~#7@!7?@@@?AC_!4?E$#8!46?@@B^!4~w-#0!8~#3!6~#6!15~!6?N!6^!5NFB!5?o~^NNFFF!6B#3!6B#1B#0B!35FNN^!14~$#8!29?!6~!11_oow!4~^B#2?_O?G??!14C!34?G$#7!35?O!6?!4O?GC!4?_K#4??_oo!50wooo_-#0!8~#3!6~#6!15~!6?!8_!6oww{}F@#5!4?_o!49wo_#0???@BN!10~$#8!29?!6~!12NFFFB@#4?o{}~~~^N!49FN^~~~}w_$#7!35?!8O!4?GG?CA@#2GA@!60?CO-#0!8~#3!6~#6!15~!6?!17~#2~#4!5~@!53?!6~#1@w$#8!29?!6~#5!23?}!53~#2!6?}#0F!8~-!8~#3!6~#6!15~w!4ow!17~#2~#4!5~#5!15~F@???@!9~^NFB@???_p!14~#4!6~#2~#1~#0!8~$#7!29?CG??GC#8!38?w}~~~}!9?_ow{}~~~^M$!29?BFNNFB-#0!8~#3!6~_#2!37?~#4!5~#5!15~!6?!4~^NFB@??_ow{}!17~#4!6~#2~#1~#0!8~$#6!14?^!37~#8!21?!6~!4?_ow{}~~^NFB@-#0!9~wo#6!4?@B!35F#2~#4!5~#5!15~!6?BB@!6?M^!22~#4!6~#2~#1~#0!8~$#3!9?FN!4~}{!35w#8!21?!6~{{}!6~p_-#0!12~}{woo!35_#2~#4!5~#5!15~!6?ow{}~}wo_???@FN^!17~#4!6~#2~#1~#0!8~$#3!12?@@BB!36F#8!21?!6~NFB@?@FN^~~~}wo_$#1!13?ACKG!35W-#0!52~#2~#4!5~#5!15~!6?!10~{wo_???BFN!13~#4!6~#2~#1~#0!8~$#8!73?!6~!10?BFN^~~~{wo-#0!52~#2~#4!5~#5!16~{www{!14~}{www{!13~#4!6~#2~#1~#0!8~$#8!74?BFFFB!14?@BFFFB-#0!52~o#4!5~o!52?_!6~#1o~#0!8~$#2!52?N#5!5?N!52~^#2!6?N-#0!53~{w_#5!4?@!49B@#2???_OCB$#4!53?@FN^~~~}!49{}~~~^NB#3G$#2!53?A?O_#1!58?_WCB$#0!116?_o{!9~-!57~}{ww!52ow{!13~$#2!57?@?A??!47C?AA@$#1!58?ACCK!47GKKKEB@$#4!58?@@!50B@@#3GCA-#0!128~-!128~-!128B-\
3 changes: 2 additions & 1 deletion scripts/build-loader.sh
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ echo CPY_CFLAGS=$CPY_CFLAGS


if emcc -fPIC -std=gnu99 -D__PYDK__=1 -DNDEBUG $CPY_CFLAGS $CF_SDL $CPOPTS \
-c -fwrapv -Wall -Werror=implicit-function-declaration -fvisibility=hidden\
-c -fwrapv -Wall -Werror=implicit-function-declaration -fvisibility=hidden \
-I${PYDIR}/internal -I${PYDIR} -I./support -I./src/hpy/hpy/devel/include -DPy_BUILD_CORE\
-o build/${MODE}.o support/__EMSCRIPTEN__-pymain.c
then
Expand Down Expand Up @@ -261,6 +261,7 @@ emcc \\
$LOPTS \\
-D__PYDK__=1 -DNDEBUG \\
-sTOTAL_MEMORY=256MB -sSTACK_SIZE=4MB -sALLOW_TABLE_GROWTH -sALLOW_MEMORY_GROWTH \\
-sEXTRA_EXPORTED_RUNTIME_METHODS=FS \\
$CF_SDL \\
--use-preload-plugins \\
$STDLIBFS \\
Expand Down
92 changes: 92 additions & 0 deletions scripts/build-pkpy.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
#!/bin/bash
reset

export CI=${CI:-false}

export STATIC=${STATIC:-true}

export BUILDS=1.3
export PYBUILD=1.3
export MODE=main


. scripts/vendoring.sh




pushd pythons/pykpocket/
rm pymain
python3 scripts/multiline_parser.py pyque-pocket.cpp > pykpocket.gen
python3 scripts/multiline_parser.py pyque-pocket_begin.cpp > pykpocket_begin.gen
python3 scripts/multiline_parser.py pyque-pocket_main.cpp > pykpocket_main.gen

# pushd ../pykpocket.native
# rm libpocketpy.*
# if make && (echo 'print(42)' | ./main)
# then
# popd

# if clang++ -DPYDK -std=c++17 -O1 -fPIC -fexceptions -Iinclude -o pymain pykpocket_main.cpp ../pykpocket.native/libpocketpy.a
# then
# if ./pymain
# then
mkdir -p ../pykpocket.js ../pykpocket.html

pushd ../pykpocket.html
. /opt/python-wasm-sdk/wasm32-*-emscripten-shell.sh

if [ -f Makefile ]
then
echo cmake already ran
rm libpocketpy.a
else
emcmake cmake ../pykpocket -DTARGET=html -DCMAKE_EXECUTABLE_SUFFIX=html
fi
emmake make
popd

# fi
# fi
# else
# popd
# fi
popd

ALWAYS_ASSETS=$(realpath assets/pkpy)


mkdir -p $DIST_DIR/pkpy${PYMAJOR}${PYMINOR}

rm $DIST_DIR/pkpy${PYMAJOR}${PYMINOR}/main.* 2>/dev/null


echo "
* building loader $(pwd) for ${VENDOR} / ${PACKAGES}
PYBUILD=$PYBUILD python${PYMAJOR}${PYMINOR}
EMFLAVOUR=$EMFLAVOUR
EMSDK=$EMSDK
SDKROOT=$SDKROOT
PYTHONPYCACHEPREFIX=$PYTHONPYCACHEPREFIX
HPY=$HPY
LD_VENDOR=$LD_VENDOR
toward : $DIST_DIR/pkpy${PYMAJOR}${PYMINOR}/
" 1>&2

# clang++ -DPYDK -std=c++17 -O1 -fPIC -fexceptions -Iinclude -o pymain pykpocket_main.cpp -L../pykpocket.native -lpocketpy
# -fvisibility=hidden \
emcc -fPIC -std=gnu99 -Os -g0 -DPYDK=1 -DPKPY=1 \
-sFORCE_FILESYSTEM=1 -sMAIN_MODULE=2 \
-fexceptions -sASSERTIONS=0 -sMODULARIZE=0 -sEXTRA_EXPORTED_RUNTIME_METHODS=FS \
-Ipythons/pykpocket -Ipythons/pykpocket/include \
-sTOTAL_MEMORY=256MB -sSTACK_SIZE=4MB -sALLOW_TABLE_GROWTH -sALLOW_MEMORY_GROWTH \
--use-preload-plugins \
--preload-file ${ALWAYS_ASSETS}@/data/data/org.python/assets \
-o ${DIST_DIR}/pkpy${PYMAJOR}${PYMINOR}/${MODE}.js pythons/pykpocket/pymain.c \
-Lpythons/pykpocket.html -lpocketpy

du -hs ${DIST_DIR}/pkpy${PYMAJOR}${PYMINOR}/*



10 changes: 9 additions & 1 deletion scripts/build-rootfs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,19 @@ echo "
* packing minimal stdlib for
PYTHON=$HPY
FS=$FS
PYTHONPYCACHEPREFIX=$PYTHONPYCACHEPREFIX
"

if echo $PYTHONPYCACHEPREFIX |grep -q $SDKROOT
then
echo "
* cleaning up compiled pyc if any in $PYTHONPYCACHEPREFIX/./$SDKROOT/
"
rm -rf $PYTHONPYCACHEPREFIX/./$SDKROOT/
fi


$HPY -v <<END 2>&1 | tee log |grep py$ > $FS
$HPY -B -v <<END 2>&1 | tee log |grep py$ > $FS
from __future__ import annotations
import sys
Expand Down
2 changes: 1 addition & 1 deletion scripts/vendoring.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ export VENDOR=${VENDOR:-pygbag}
export PACKAGES=${PACKAGES:-emsdk hpy pygame}

export SDKROOT=${SDKROOT:-/opt/python-wasm-sdk}
export SDK_VERSION=${SDK_VERSION:-3.1.46.1bi}
export SDK_VERSION=${SDK_VERSION:-3.1.51.1bi}
export CYTHON=${CYTHON:-Cython-3.0.1-py2.py3-none-any.whl}
export PYBUILD=${PYBUILD:-3.11}
export LC_ALL=C
Expand Down
Loading

0 comments on commit 7ef4711

Please sign in to comment.