From 474110de59a0f632b20615256c913b144c49354c Mon Sep 17 00:00:00 2001 From: Sergey Pepyakin Date: Wed, 4 Jul 2018 12:03:47 +0300 Subject: [PATCH] Recursive test (#50) * Rename build scripts for clarity. * set -e instead of && * Use bash shebang * fixup! set -e instead of && * fixup! set -e instead of && * Install wasm toolchain in .travis.yml * Add recursive test. * Update rust-toolchain * Decrease alloc size. * Update gen libs. * Supply stack-size to rustc * Recompile tests. * Clean imports of recursive. * Update nightly and rebuild --- .travis.yml | 7 ++++- build-all.sh | 23 +++++++++++++++++ build-rust-test.sh | 10 ++++++++ build-test.sh | 8 ------ build-wat.sh | 11 ++++++++ build.sh | 20 --------------- compiled/alloc.wasm | Bin 464659 -> 412876 bytes compiled/call.wasm | Bin 3660 -> 2877 bytes compiled/call_code.wasm | Bin 3665 -> 3713 bytes compiled/call_static.wasm | Bin 3665 -> 3696 bytes compiled/creator.wasm | Bin 5100 -> 3752 bytes compiled/dispersion.wasm | Bin 5352 -> 3431 bytes compiled/empty.wasm | Bin 118 -> 109 bytes compiled/events.wasm | Bin 31942 -> 6648 bytes compiled/externs.wasm | Bin 7123 -> 4474 bytes compiled/identity.wasm | Bin 298 -> 241 bytes compiled/keccak.wasm | Bin 29872 -> 5547 bytes compiled/logger.wasm | Bin 2862 -> 1232 bytes compiled/math.wasm | Bin 10250 -> 7066 bytes compiled/realloc.wasm | Bin 5297 -> 3518 bytes compiled/recursive.wasm | Bin 0 -> 148 bytes compiled/rterr.wasm | Bin 170 -> 175 bytes compiled/setter.wasm | Bin 4690 -> 3756 bytes compiled/storage_read.wasm | Bin 641 -> 318 bytes compiled/suicidal.wasm | Bin 4395 -> 3047 bytes gen/main.rs | 9 +++++-- rust-toolchain | 2 +- src/alloc.rs | 4 +-- src/recursive.wat | 51 +++++++++++++++++++++++++++++++++++++ wasm-install.sh | 14 ++++++++++ 30 files changed, 125 insertions(+), 34 deletions(-) create mode 100755 build-all.sh create mode 100755 build-rust-test.sh delete mode 100755 build-test.sh create mode 100755 build-wat.sh delete mode 100755 build.sh create mode 100644 compiled/recursive.wasm create mode 100644 src/recursive.wat create mode 100755 wasm-install.sh diff --git a/.travis.yml b/.travis.yml index 8275c6f..0f8ca59 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,12 @@ rust: sudo: required services: - docker + +before_install: + # Install wasm toolchain and put it in the PATH + - WATERFALL_BUILD=31834 ./wasm-install.sh + - export PATH=$PATH:./wasm-install/bin script: - rustup target add wasm32-unknown-unknown - cargo install pwasm-utils --version 0.1 - - ./build.sh + - ./build-all.sh diff --git a/build-all.sh b/build-all.sh new file mode 100755 index 0000000..3b5aa04 --- /dev/null +++ b/build-all.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +set -e + +./build-rust-test.sh alloc +./build-rust-test.sh call +./build-rust-test.sh call_code +./build-rust-test.sh call_static +./build-rust-test.sh creator +./build-rust-test.sh dispersion +./build-rust-test.sh empty +./build-rust-test.sh externs +./build-rust-test.sh events +./build-rust-test.sh identity +./build-rust-test.sh logger +./build-rust-test.sh realloc +./build-rust-test.sh rterr +./build-rust-test.sh keccak +./build-rust-test.sh suicidal +./build-rust-test.sh storage_read +./build-rust-test.sh math +./build-rust-test.sh setter +./build-wat.sh recursive diff --git a/build-rust-test.sh b/build-rust-test.sh new file mode 100755 index 0000000..86f7297 --- /dev/null +++ b/build-rust-test.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +set -e + +TEST_NAME=$1 + +cargo run --manifest-path ./gen/Cargo.toml -- $TEST_NAME +RUSTFLAGS="-C link-arg=-z -C link-arg=stack-size=65536" CARGO_TARGET_DIR=./target cargo build --manifest-path=./target/tests/$TEST_NAME/Cargo.toml --release --target=wasm32-unknown-unknown +wasm-build ./target $TEST_NAME --target wasm32-unknown-unknown +cp ./target/$TEST_NAME.wasm ./compiled diff --git a/build-test.sh b/build-test.sh deleted file mode 100755 index 0ae4fd3..0000000 --- a/build-test.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -TEST_NAME=$1 - -cargo run --manifest-path ./gen/Cargo.toml -- $TEST_NAME && -CARGO_TARGET_DIR=./target cargo build --manifest-path=./target/tests/$TEST_NAME/Cargo.toml --release --target=wasm32-unknown-unknown && -wasm-build ./target $TEST_NAME --target wasm32-unknown-unknown && -cp ./target/$TEST_NAME.wasm ./compiled diff --git a/build-wat.sh b/build-wat.sh new file mode 100755 index 0000000..0921bfc --- /dev/null +++ b/build-wat.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +set -e + +TEST_NAME=$1 + +mkdir -p ./target/wasm32-unknown-unknown/release/ +wat2wasm src/$TEST_NAME.wat -o ./target/wasm32-unknown-unknown/release/$TEST_NAME.wasm + +wasm-build ./target $TEST_NAME --target wasm32-unknown-unknown +cp ./target/$TEST_NAME.wasm ./compiled diff --git a/build.sh b/build.sh deleted file mode 100755 index debe586..0000000 --- a/build.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -./build-test.sh alloc && -./build-test.sh call && -./build-test.sh call_code && -./build-test.sh call_static && -./build-test.sh creator && -./build-test.sh dispersion && -./build-test.sh empty && -./build-test.sh externs && -./build-test.sh events && -./build-test.sh identity && -./build-test.sh logger && -./build-test.sh realloc && -./build-test.sh rterr && -./build-test.sh keccak && -./build-test.sh suicidal && -./build-test.sh storage_read && -./build-test.sh math && -./build-test.sh setter diff --git a/compiled/alloc.wasm b/compiled/alloc.wasm index 7d51a3d5ac31bae45c971a919807d4c40c23cabb..f1a9ef4a6f335758afa831fbbb414cddbdfe7bfc 100644 GIT binary patch delta 2308 zcmZ8j!EPKy5UuL&neE-)&GwQI$1F%aLj=A+I2no4c2FX$2=NKnSVr;Kj=h_eLxf>g z0u+!y1aaa97r1eNOFn`Fd;tK>Db-L$8tyZTkttJk&p`p0K~`DVSPox4X& zM10L|tG15@Z_s!!QL2guob5lByO9^1l~}#wvp$uX@ZR( z&NqqVglw63Hm`9GIR_i;O9a>RX=Noo_;4V_iluBQKqM=;mn^_mP{HCUPKV@N#w5WU zw80#N-WE;hR?sc%XZk{^adTpTv2m1*Lq-uEj;L@4&~ zTxk*6$T8a)+a`WKiQoEGY^84@l}%XSR%P1RJ$xLsLDV^`TJ$15K?nL-P=}Dy%HwtA zZ%ykW;+h~50e>WMK;lUO=>j6XBwLl+9ZrX~NLM}e2}p!<#}my4l{+5eC@@6}A_IeD zrS*}s6o2*pqO?PQ2`xFv!)tOiW|?h5+~hA~tfg|wAM1hgB23f_t+ri{>_>IF4L}xO zbbYm2M>`%nlX#b&b&{`h=ZT+oOEli|e=&iaKm61k}dgNt|DOfC~ z*eZibY*G7$>`K!GO1dH`9`q*#Tih6Mq(X6P>aRQlD$7*(EEn{Aa4!mxUyV*7fYQ)V zE;a6CS1qWj!7?Nwy-Xy63Q7-alS1SdM%-3uhVc!%&V2_k_gB$l6 z$t~cf($ek&#&@5sqp860C-HLblguL7~V`93Y@YLPBz*9c5Ut;tyEJhzgKL1~T zADa`b-^TMIo__%>VZ=YZ`+l{4xc?6Rr*OP`ZLxFj?bE%>yDu;9?(UrI?Cvk`hvU<| d#k+^c_voW){Gb{$hQiPo2BY|)8kaMse*r*$I8p!r delta 2902 zcmb_eyKbCC6rS6E+nH7Vf&zkz^N%PtMWiT&Ez#Ix$w&wx=MAvstbpJ48k>~^63Q$B zkv38qcnK&{P}6~wB9?dn9s^PFota%<){YbuwA!87xt#gFbNOao{PfPVpI4&T{qj%> zA>^pqQ89`gA$D|(QAYlYU&%iPBbeg}p>8WZo}B8F@l*)zm51ZQqm!?dtXtjGN}Hn8 zMj9i(5TcNxs-@Z6Jvb0`BgNp4x9U|XquL;~H53#@r}YMDl6Qr8UkH*x_MIfnjV2Xh z@6}LPOTrc+%#1Z6Nc)RZO_Yy=2x6p6xVP`!sxoQ=W_2h&gkiDy?QAw{*A%*;?!(i1 zHFaGd?xW|V<<%qxFDM+TFC-Exber&GX8O>c`eH-ehOu^v1WL40V+aXH z1%{E)Cy6FW@J}mbBF-_rLjKLe3+gBpKJCVwEkazP-fRyQr~}YzP%oDfp`@G$T%C1) zkqAZCI3Ph7dY|B!#eyy(x2a@+DBe^EHJpHI;mWJHwo`(l6`V`CARqy$AkVE}Z#DvJ z*NrrDBWQ(FS4%QhoWTfr%3zpX0xmOfmX~X%f-V&d9fzNvT4d-*=5#8MVFe@t>?DUh zaI!c~jFyqaw#S)S*mCxBxiBUdT5j)X;fHHFt0)bVo|3zxTa4mphapW)vumnr-UY9W z5I(++kewU3HrTri5!!zP#Qy~$Y5+Y! zahoaakt zr@{n;t7p%vGx5Wb#zvUtvtf&>oc<_-EXv#<9r1y%XU#@Lcnnp{dkp^adq~(H6jFNe z8fy1FPR9)&T$nvw39`k@i1<-k7ihHV)<;P_#K9`V||Rj{)auRJCLP^^Erw|SYun17gFfgG2-7sDf! z1BNcMh3n_SP_xScZ=~?pL(8*{3mf^%g?-BkyoUb#aRn~HJMqDb3W%KjzJ4C+zxA^R z^>7`}Kzskuc>D?8qepwRw>y~}O=10L7=F*ky>sTCo90A8Vgq{aHH%RYTun*^oioxxDgKAVWR%`XYG<037HZ~} zjImIJ_^}Yo(xr=R+_?w^SH-Oxy9kOPxN#xqLe%FychdGhm|O0g_q^Zdd7pDrTD!g_ zh)A4ouM({$6Mn>GRW(a%Cn{JYClgu~cr~kt_s|Ob$Tt!-xOy{LUtinYBo*b2!8mna<5u%u=3)c^VLn@|7Pd$|AHisJ44`s>3_ zrVqb-Kr7043f~`oth&-cy8GvMKc-ze3-Ol+;&plf!hz{ZAE*$JsUr`vuIz;))W!aY zD*XB?eC1qH$bjq}+3Uhd_Po3>M;^LROZRM{8pp+|lzr5NC&#&Jw&A6N-s;bPd!$yB zZ<2?_6FZlB;vIM9#Ky6`CZNzk6^ZOM|DY8?U7iy@;YE7w<;#l7w0~~Tr~S@ezmCt* zzqC7rVsWN8esdQ))9ikKad*l_bC13MnrG7@%YV0GPzUlqinZtNO{dcpBCms~3e*a> zszRdnq$(10BC0~x6YJvP5<$ z6O46CLVlNye2Mbw>9738=pDHk?~LR<6&R%$F7T67a?Z8h`# z2QAD5crvW0E`~TEp@pIqk5(8Az*R;2DH@myAb}}_>_tw*@d$uYnjl7O)82%g5#Zn; z50i%J&Zx}LDr#gtdzDaov{Yzr5NEfIAC;E$)pm&Hsqd+Ua2aGT{WGp~of zbtwigLD~pfXfbRRb0+hxp-)Gpd3#Rz#A~E(5~FJ*HAu?T4K#1j5^<*n^ezog5%NhL z7-mJwjB(N2V%Fdi6GmJNuH?L1l(EkX|Dn=M~8OK}08J ziXeb0OY3_AaGWe%Q7(AmpPaJqKb z*6#9BnFO>P@`~@txA8lO0(|=-7HGHm5H@s2G;SD!9tQ>@iH7ik2`?MM3x=0DyiDAb zMw85Z+(6trPtK5irMZDB5*k;q#zG!RaoQv^;C_+KM{|IFFf1R&6}S7KE&Il;;g+f%$Py!_qx E54yf6F8}}l literal 3660 zcmeHK&1+m$6hG&Fy!Z6Yn1_nScHw<*ArnX;xR``w(YYg)N|F8x6O&PVNz|liQIO1( z3^8CAMf?MF--R3LwiX39?hCpo6rte8on46ackX>@(^gzHxG)o#bMCqKp6}ne6I#Bo z!9>Kf=^))1g%6JgYBZt&(Lh5Gm-uF3MMCOzqlX_{vMVdg>+3{;Umd=4@jYVU_117Z za>>SUrq}Wek5rWSP>8O;C_M!}RRl3&||=NcEgL(U0vniW>e@+rzZZ?-viT&fo5a=N2TrGlQWA~+Z{vR9jO!GF5xR9BhYS)t@q z$xbzD#8oAxl5ostb;WB{>dae+0!E!K47`NgLAdsIn?(zjxPu#_E-BNN&QDXRobjKH zP3?|9oGZ2~_S97w+yFtW__Gk#UTw+c40>=8`?7*xI4c1lRNaf|cq*Z1{}Q@= zEcEkjRJDXlp#-s-Ui_Ovu43r2i=wOT8o83>B0Gshkh(0SMS=)<&0-Zq>e8kPpoGe) z-ajQ6IXSS>B-kRsDEEQsI`~}lCnhxPb)0wzHP~}q3A^%TS2lb1kK{+Ha zlERVnG3C2$m5zAFgGbBxF-`Yl@G7MQQE&35@YFrUvZ@$({( zofpB(FVagOH))Yx2K@c%e;uyeZ1v+L8m>w&^4!UE!Q~P~&9+1J+M?a*H@cbsM zgIk3si06u6!o!~~Scw_zA$a^3A>QY6z=#n~Lc#(@5`UL!L@$|2`aG`(UX|8UNuEn1 z@mi##j!3r%q;9h6uL}D}g3wzE0~Hx*rkHZNsRU>Q&!G%s8b78$G7QW-HH$f7fDIY+ zf*V9-k$7~?peds_Td;Bps^o01O8X0YF70>r`s47qai4Z45KK3M+oyN2%HrzxS9d3}neEHzdsDJCE&QKp zxYPmvmlo;5{$w%{GYEY~FC4KMq)NIhqz{CPChrIKZ zmR8oM2tby>h}Thc1tsB)5%rjrg3y-2w2bppejii;1u~T5RqMdV7g8`AUJQ@`sw@Jw znRtL$oOn5y1W!#3?Nd472g~&gj}d-Z&3#XBsg+MM(Bsc>297iEf6f3#Ufy~G|L?gA W7gtt>!&MoFc^)M1F2BD%T>Tr_1J0EI diff --git a/compiled/call_code.wasm b/compiled/call_code.wasm index 1ed2fa8dc422594f88200075eb8754cfa17c00b2..9c21333f2b5ecc8d94978a1094d2027a03eb1cc7 100644 GIT binary patch literal 3713 zcmeHJPiz!b82{d%nRz?23)7;eNiT1nge)eKs$ts*F@0+w5<<9oY^4>ME$Eg)Fsa=& zvXDkh@St2ga4}vq5-(`t!J|P<@PZ*4qY2(H!Bh^O^!L4)3dW0f*>-l``~H8w_kG`6 znm>755Ro|8oKu6rK&*uq&4~d&*b>b}V1PBKBnETw+9p8`Af|aob67(JIs^HnR*NT2 zM+-;hmzF50){8HkI!cDuYI$*`TE)i~kH5V9suVI;+r~*qr6VI7X%@+bOtV-=;uX~*2!temyd>jN#aWJS4~sL)N3 zc`8&F%M5Jg#j=%$gM@-i`4ka|YUQJIR-Y|2)^fQ}LG&MTPt9IWU>4;69i=>!N80fqtkZtb(y3 zZmP_Z&&xvL)h>$!*>F-}=MtOjRAi&kG`?BPsXW4BZ|SKc83wq`L6|Bb2dO+`$2}(j zRMK~GuaI(9&9cwK@LAgvR+l@8TxFL{DvPHwK~{THA_&S5g@vq*bA`Y;roE+&;W)c2 zM6_19pKzj^uR{)@m{li6PIez&M;IKMLs~Gq>U7txuR1w$5er8USKZdS)gz~%6PQ>> zP-D*6`p5~02ReLnrV(3J$Z>+BVr5tp5JiBH6`XzG*!5{;vb$31LA3TLdE0YhJ5(4x zMCC1G#Wn@<=fN-@NhNhu>e_z0zD6h4hz<-;y^_ z(DE6%)C1T#R`XamFZZkab%&#~J{zh;7uC zhPfcQ*vht~4jCxM9YU`6Y!q<@6FFCFoSDD^E)B**=VP~2my`9DHR423=_4%(eWSVpV^1$hcXEp?t5GX z0$@1fMW1=v8o$;D46MK`4c2PkrI_yUk=pceg75z1=9Lq!8_1E%Sgy&pK;~s1ucmE6 z->be&kq{htU52<&k#JL6Wt*U~7@Gl^v%gO`EFrHrEQ^uC&gyM2BoR5#;S)ys%a97w zpQUvncz#2yw(U|}3pU}qlQAdTfYMmXu$5dZsZDw|?mKg+#dm>*>B?|n*r8R*+iX6zCz>@YI>MsJIoJGy2vAB-z@#d#$V@Q#CI5XUBCk2N{&@lN^$67!9`{m5VmP^x*lbyuj~>>fX+> zKa4`lm~84<{9v;$&L3M^TnNjPr;Z$1TwHi={^U!?P8_viyRh%fu@&rg?b?MhzhbhH np$DG_2s}XGe~titUS(4PAn5v$c&mCH;msfB$9NJvJU9LV5n8JT literal 3665 zcmeHJ&1+pn6hAX}?#H`xUvgV93+-a&;v%9A!Nn6=(9DyFQl$O~iRrWECTW|GmI@&+ zVjpcFf-ZFB!j*1Zx#`A5gsy6Yx>1562n9jvD!Q(}GjsE5sOYBP!sJ2DymRJ!{La@r znq6HIL?oU`XOfLR|B3#L?DuJgXeJtd1yituIV7J`QSZW)_}tv=;v!Kv_ujaCo&=wx zmEKx7B}=`fiz{zSA<8ICWTfIGR!UqViUp;aP~Je)5|saXJo%-NX+PO;-uv`c)RBY}ofgcXj!43{JdlFPDH;i6G>|foV}TqGpC8rKP(UegYBB4r6w?*LM>WR9{rrTuHNy?m9ZVPRcjSHdqKH{!oCa_1+ zGobF|GAp?CWfKFDHpCSFtTJ(9hO{;@I}^B8NfW!QuGB&mxlQ?Mo3z1Uqjops*|uPP zh;bWt*^sbN5orWxY9FE7p)!U0WLz32UWRj=o9%nUId$*z@lbjc?9?_w zLPRKqH0UQ^2ktA>4x$J7CG&UrMV%j+M-2?{0iR+80RUADyyzJdis;k|oXNGCtHgao zs1SEx_mhu>;np9k9SDkwY1x#eLTy3#nk$_y1u!||iV_6IyZg7l{ra=*y)S+zTXg@p z{mr}IfBwVGeX_dy+fN_tf3*AK&AVjt?$38W-2d+0-k0~twxTJ6?yR3Cs!~%7s=~C^ ztCq>T?JY!^uUGk?((6@bboba6j?6E*<(6sj-MnkIaK+$;9#kz{f$;Gy1Es=bUYL1< z1Dgl63=+Okz#!}DfrU#PZ43U=f#v*TCSm~PfpC*KqpF<{KN1;vyT(qhlR zj6?)~CPfli2<@D;ksVF|BQ98o?_M)!P4@3|&yvIX&sHq-sa5n~s z$Gb#SgBP$jcF5(NU@R44@hPAuK1bCyaFcx{`hik&ZE7N-KER zU&SKn8)@WXCEaF;dzI+%z;{X z4Q~jn99oizO|ey9B+He)zNuep({X&G`T#mhQFJU?9k)K}fV?3^VSwap?{rWA!M3!2=gdcL|&Dr_I-Z^qc z7ykR|<+-^YGbZ)OE3>O_&0jcgJP)iL()sk&`8Dt+CMF0!p!Bs2#*Y4uGH{fE|8WNX E1oO|RssI20 diff --git a/compiled/call_static.wasm b/compiled/call_static.wasm index 356eb248271cf1f748c006573a96e811a317b8b1..3b676f9c1e62443961fc8e88f08e21c56e9319ab 100644 GIT binary patch literal 3696 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 literal 5100 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 JeRnvX`~^bmJaGU3 diff --git a/compiled/empty.wasm b/compiled/empty.wasm index 7125e4061927910e75b5d80129c6a552fa936b2b..98669bdb3355d6cfd99b78126f5b15e83e42c384 100644 GIT binary patch literal 109 zcmWm0y$(Py7zNOKKmVGD#b)p-2JfM&u_!`GOgy?c(}6x50Wgyu=;e7JwFGv#qR|fL x1pbemb?bf$r3{1!BW@&PB1st?hPog^M9 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 ZZxH5W;CjY6SAO;R$^&0{;Q!eJ{{+m(VYmPQ literal 31942 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 Hjh+7mG?Fm@ diff --git a/compiled/externs.wasm b/compiled/externs.wasm index 991b6edc05b2c4554a702e34ef01d5f488e62e51..85782e318a4e29a8d6362ef3d72ef25fb992d13f 100644 GIT binary patch literal 4474 zcmeHL%WfP+6s=cx*SKt4h5!ZwsqQ4;EO@L8VuQ;lh$upQ0-g*GnHf8d?TJG~@K}n0 zERcX7KrHwG#ENA;fh{Z8AhATOSRmk>s_w+VjvXT7%yiYQs{1(i+}ovy{@#`pLdaKV z*VXhutgC~mSeN(;c>oCqV%<#f!P;~xr&z>KK?w&st?*Y))km_YH?HjWE^clQ#+Unh zmxbiq4z`C^F822}gi6bk;nv39q`!4lXwF^Qe&yQM#f{x8nR$D7>C$j;ZF6!XAF=QB z_cn)H!%3d%-HnMbJX>7tUl|VaxZK*<+TOjPr1H8B*r}B=s;q2J^%S0^s%)VOHB%^I zoGIj0IWtpQ#1lXL%(%)*Gw5$_ic`ILDWY_}M<0LU$w&OcgG)1CJsS3oVvL)ifR{xoRu!h+Avjm1sg;#kh(&|Llhiq>U%BADNsai3s{%q zxbD)N;Wty-6YOrlt*~Uh>!!;9ZJlFxtd4NkM-rQ+$ z3=sz#EC_|2OSPqYFyR2n3GU>Af{L^Y))|BlE~sExGq6eCWu1aLXM!1r>O2lGcoBLy zv{2Fi5&Q}>p&Ex0rr(&;p$G=5O)x2}PAL^eG4J4Vs$d)69W|D4(h2xZJHV_piUh!{ zp^He=PBILIChDDFfjFQ>fUQ8ndln)ZLN=RG2{P$z+Cz;>NCD>@x`gKUiC)%}KtRsA z8I-2H0u*X)9mMXeHPR?1MAc&5eIlirrbGzrZ6y6y^j~KG74w{2!8#MgC_n*&Vn=@3 z5kV&(a{Mx#&*&gQnQBx*gR)odDlHnfHQI`%XJeo=<9dN_HZzM`Ac?rx@_chFN z>s8BC`mn4{ELefy)GE?(vjsQ9r7~;bf=FZ)_sE(c?D7OEC7=^gQgOCK(RUSqs|W^& z(RD=1oGFWgsg9C^GVtNPX7Vyve96g(Brmb@0=>jZjY8kA>936DLK02UGU6YS6OBTM zM|>Y~w~B|BxlMtB?6V=k7H3CTGNX9g`-f{beI$CeBUwZ+JZ9U?c-?)x5Wh%U*{u-B z3O1meGUn2Kde3JApL0wND~Ton2D(^Kn_$wRr%(REQd2|}2ppmAZ>SsOPT5bDhv*Vx zRqk>)jSREIQ+ohAWbSihYf!n*Nt{fr3ojQ?z#vpMJmIW}-+F(NP0$DQ;Y1BT-_5^M z=!Y3`O?n>xOXNl=0}|U5=xjC>HyDDI1LUm!uKl3=UkaC5>WQNh6L0u*lb zSJ9->ew|DENw5L-Ke{4k-%7zxFyvCiI9ziUcgx_xwX#4D#kOn8H9w8R>3$#fHdC%EOMw{41=c~R+ViY`_7 zTDTVg5F*gYZ*&x17r_xGUUxS}ee9~}+~++lKvwsG756{)5x9@Q{~Q6lncTVr2&Vli zJas!R@Z^W>E9N`T4v2JuEIjei_e)@caeJl8*S3cV{+-7xDiH+k@wK``6#v b-xxf%yEo`x?GJ{N8)18YWB1bL_I2?m#-!?V literal 7123 zcmeHMJ#QSx8J?M){g|6Qb7i>@tRi!Z6eJKQf&o)T8gmIqK#&+@k={DdC+m*i^vO?109R?^pO7xC$`nSD=Xq!Mbo_|pLUa>JfM#}P_MP|RdEfWBl^P!J zYNeF^p!dK$o2ds%KYO4tni(I|gJd?F=@}pKujW4%E7;?PGGA(!jP_34!=3%D?Z?C8 z$4c?p%k$pnyAMZ4N^_;y+8^&d93GF9;bZU9@uNrMt9qt}Pq1oRX#;dEv6$8tbgp2TG+{<%PCe z!<`*fIIVhL|D^xzP2*?!S)&@YY;5yFZ`Zw5V?(cbsU}U?{6ROm>YKIDTQ&!czTa1z zP3z(wXV{j*p;$GLFetF3Rt<+cljhc>R_p3+!h?9MCbeF8EGD(-9(fl|CyUQGZWo_% zK5d^l+zCAn2kVrM_bZOyL^)YVRuXmBbW0HBf<3ncX?aMyrO;bR4(^)GphC7{L}eXZ zJ2N3~XFZ%Vn{szFDOB%-*2LDd)}+>w)_^PZ)^ojIsryRH*QA_fI8>kl7+ieH={Wd? ziwDpGM}8fLO$_j1Wr7WE*{C{^x8Z<9)t(}BkR=nmh@j&(xdS;|LR26E!F~sx=~X!b zBr6PXAxrw=(v|*`*g_aYRY}OA!Y&RA>L;5x@;8O>4)SCzDj$kT$lp`y=SqdVnN0?H zC>lMfizfV{uRIP>8K8|QZ2@Bl1i>ly0GGVoBM8s!0XGaB-y@sm^$))Yetr3i^;7xt z=YOl`XIQw^F8uwY=XfgO)5{+{KjUWc6;JRp=d+ehVnuP33MCU>TyNc*kpBGgt%)V?g(-BKOx=$ zO~5bpFoL+6oZA7mI_MYkolD@>m%v@1T6QTE!R=nb{Svqr(F|SYZ6JcXtNIl{=tibt(Kr(?XX8!Y=7Lhl!Zq|HzFh(=#oyBc22LArH@v* zpf6ZuqE#(;e?XfYZNjy%2;P}SdmQXZuCT|InTO-UM7)nz-hyY#WfS5L3(S68`!)xV z3&GR3h?z=&BL00%QFGrBwUkjKHH=Zqg5E&+@My6S0s{OJ6fM@6avg-WYRsS)l7TOs z|43o#nlDc+Sl>yVuBmq+teOHm^27jrQub`fsDE~H*iTSv87RW4l$V?#>K zargYvG-?hU%cW2ZCr}#N0FR_#aHW9RpORj}kQ9*e4vVzgIa9FD#>OC=e9SX7omEgK`$zM{P&CpNHPHmdg z3Z?zD`sM99ffoi=(xEN}IwrnZLs8bTh@-2vtMi;dr|L?$9++6d(Q9puZapvIoPkZu z+q1N6mT(~p20%xb7cng1hNtN)=*3@L+u$R%D|X4e*kKWXfp_KDV)4!q3={+Wls;b! z42yw|#Xttw%J3`{g938!A{qlh1-(!gkPD;}T_t=irWfB~I?KVL=^Lo%8XtI~7i0Tx zsNWKN1rJeW?4s8*L2_{}*oY)Fe}S{7(FpOY5GS%d+ySB^IVpsP6oB32qJv4E+FL{t zK4}bc#JO7>5aAcDmW+f3=dW(lQp}52gER^7@tr3EAC*H&^+I$|%wwHKIG`_*kh}oI zCup)C5~0e;zc;#n|B>oq)_qqC@v~Y7=Br0YwL)hTNpb?vZ3p4SE*N}?2#%*wj*{}LOB&5LjhNqA_E+qH+>|rH~P1PqKu>vAOrFjT^)ERID|j!%SO(cq9ISD1;L zeK+XKrcu&7uP5_&A9Vnkh= zA<0}HuxEt0)d#bPO?gT55zQkWS?k-*L-^Dgd140fk;q%lJK~+OvKHtZ=_?`+|Kc#c z0~&;ZM1BEybxL{kV#f3Y1ls*9X;CFf1;Wf&fnY_Ka{(Eb~JqQ$;oKzr$@*C0ibT}@&Et; diff --git a/compiled/identity.wasm b/compiled/identity.wasm index 13dc99b116a9e64c63ac1575b34f29685f344e32..0844bebf2741d3fdaa2eb9a746c18470232270ae 100644 GIT binary patch literal 241 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 (zu>>hzg+aYf4}?ZpT+EszvXzyC8I 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 diff --git a/compiled/math.wasm b/compiled/math.wasm index b58af041f1b5d77dc761452b6c8c7b3de5411e47..ac072dc80c2aafafd39f3023c7f83c9ea9126678 100644 GIT binary patch literal 7066 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 JeuFLv@h?8G@~;2@ literal 10250 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 LXca2)K<|G5y~7j= diff --git a/compiled/realloc.wasm b/compiled/realloc.wasm index 98187b051ba92997f7405b74cabc3ebafacba6f5..75041649014a16175c27428f2959ffc627dc1880 100644 GIT binary patch literal 3518 zcmeHK&2C#o6h8BF?QtfileR#KL7IChQdj_$kWvXY9;6nkz%w+#a%pbTBz8?oMZsQx zV1Yz=0mO<2fK4~7+42T#S@Qz$eKWTyf=8fE?YVb;&iT%F&iO`_y}Ngmh^RLQyL!14 z{;1`y$gaYRUE;$>OjUf&Yj`pFQSVe{dUR^$(}f71s*}B={YiOV-#^*TLbcD==qZPV8woU2tdQE%yWKv-8E3$mqo%ypYx zo4(mdKjf_mHn%huSB^VFONhRb&=>C{{T9L{@dLn&Dj>>%B>V*>ehx~K)Rt_}2w*lq zmCPcoRtj(l;>IX_wX$sk!>40GOksg7%j=^Ojd@3|BAC1tryk6}#Jr$Rs^wdX^o-piO2L9T*4I2(X(_Ko4qwq$zF-D^X>; zO?Rl#nJMsGLRTn(&&Xb}lu1C&9>2k8SB=?n2N1i9)kLRwA*&9a{kQCzoCp-JG>Z5& z@hkYlpqb|k1?x-{qd*DRw$?2A@N061a@2dYVc7HlsAA@rOcWA&Zv$m2D9Q>I##Kx;y^LjB91ivv?mukQJr5JP z{dyj};ol>L7RxBXxp2Q_mOE5kr4qxIzPM3QO!OFA9<(K{LYFR83kZ^nRh|@Urtoo| zP)eETTqvE?WTMTP0n{pj0b_)MNSQP3a4`2#2B;zj|09u~NghyTrPEkMj+g~ZsiJ%6 z;6^&B1C}CnWqX!7az$X2Iw~A~verSvpmpbCmaqRP-9PqrQgY{8ojjXb*vm~G* z6vac;tWe$&yee>GFtyA*({3?Ck)z&)7a+O03c^7A&q`HyvtFVi z=p%rC)I%6i#oHPRpA;JoYJ}C;h8Jm&&M&bFgA@OYQZ_fT9&^osQM!JYJ&eP+C-jZR z4pkC(z{~;+v%D?__VX QzqlWdPp9)+hsXEiZwlW)8~^|S literal 5297 zcmeHLO>ZQ{8LqGXn(AR2!2z+WsJfMd_dsHC@Jd{8t>mDHp#2HEgBe)2z2mi+c!PwP ziG-A&z?FZ%1)&^4f=hk__xz1K&s*K&vArM;n_RM(nX0L-em|f0skc_mK7FEi#ff@kSF2U}iEquR!wR19fimxBcD}gqAJ3PEj~^Z_p8j>I6jy4QKRlT) zK3P6inoHT!+2ZI>8P4tbe3@qXllha=^UsXdjeTW`HJ9Z@ndMel=k!yhGOdbIyTjSZ ziE1jXCSUz-`eml8Ra8;!7#G8FSM3>R_Amc}imu-=s?!Hk6?D|gu8ga{OkKbmsx_eu z`n{)7Iz(y0*p5gE}><9&Ickzp}F5_wi3M5y(9`;QUJB0Age1M95pKppF=1U;GlyB!avSSJfIX8iak?u zi29r}Sm^2!7K#E<#4U;sY+ZP46v+i87nDp-N6DCvl8bx)0WK-wj`;K8SRfHFN znEGI+4w)TNZGC{1)JX`1GVQEl=;7fluau8Js^*sB>^rNo4GNp%j!|Z=X_&&-B?h+h zpIym+Hsl}nB&EoI7BVKqFe#R+x#YjbSP%JEL;ew79o#1W$N~4u>ni0RJI|OjS7&f- zOUsb@j9TdMCiSCi1lcCz6V)xTKDm7%s?xbIJrJcmT71g`T!-siU|PJ1DqWSRfmZH zNQatXs9AeUSY5Rq&iGD{;88tEa;OIcso>vIU@?$}55Aqi3hoD;b`uWF1zg~)^C=OY z$(}HNU;&IOOj;i%gBS*8!reLZRluyW@BDEGMnn+2C=RZvVO~eNB~>1O078Z={KT7h zk3#cS*9`J~1Wlq=*TN{vwhH>1S0;HiAoqXhQ$?Sk79N!>XYr?kKlVBPR3x4n3^E1* z2@my-2|Q#JXTR@+fDrUDRKYV0$eFS@Ir#U2vR3^{)}+eHP1f?DAK>iph0=wjP}SuEMm6|5&>|HWyvCuik{PW(n|!S2DN&tf8PAz}JBA;pIT| zJU8jKc)RWT3rQ`Cgvy=^*Bg#k55RgJCG=Yy&#!?X4+#V;%WY6+ZAFSimT~M$5se#& zY97zv8^n(#P$J>^aL%!&rQUdA5k{#LQ2JMe;N2ty(ryZ2cf_J4@sL?b0%I)}#4ge; z*oD+=XOIGfrH=-wzDSQ|JNr7#RiK@D(@XS|98N=;BSG^FXFGSOMWJ?n%f z@e#(mR&~>RHc@Ao3WU^+hjD+U7n zaA;Q!pC2-vuWhM4@%*bS+z*3g7I5lyxF;bQQzurY3MwjTEk1 zlPDbLsOvWU6QCsLwN7{tj&48_CXY$PSAD45BOB zw#mCdGC&6C^RAMCAsOgI1~R}`re})`O2|pAIWmH0Fp#ytc4}n87veg44=Q-B>!gEi z*B^k~lb z;qNvO$QCSWG+wwHh@c^+{Dpv;{YH1}v0;jp*m$(z|IKI2Tpi(rbj4Gf1S5?^be zB1etk*zVExwWu%{fOp(`5M4C5-4K)@Uaa9p7V z+gn^G`6`4rVu*uUh-fUnu>?{m5-9*oMcnD}b%&i0Vhjuwcg^b{H@R~BELVwA&()`E{ajUF>tE1?Ti2H*q`ds^ zWdvSE;Qu)SxDETapUvkFg^YybcN diff --git a/compiled/recursive.wasm b/compiled/recursive.wasm new file mode 100644 index 0000000000000000000000000000000000000000..69ff639818752039285726886d6558332032feaa GIT binary patch literal 148 zcmW;Au?oU46a~=x-U}*5A)N%Lj)Jqh8N|x<7_-wbJdWnh}s-%ar8ntRYxv*_df@nIq(!YoSB2+S9xx;6yxa?cwW cvg)jk&=v+3JBE?1uE3>6jnf*IZbr2J0&_AO%m4rY literal 0 HcmV?d00001 diff --git a/compiled/rterr.wasm b/compiled/rterr.wasm index 67d4927a7b047a83727ce8e21ef5573456db3ef5..8fccf87f95e2cea262ca4b0314553f10b6ab3782 100644 GIT binary patch literal 175 zcmXBLy$*sf7=_{UwX~p($u~3A&BYsVWAHw}+9*j21jV1JUb=$Y^Cst@xkUm%8(9N2 zCDbA%h@F(ad#Iu5S_iTC>`&9>ZykN?$G0HCQmgrnOwm9@nvfTixh4dN^EgqrLjkAHGw{A5H)O literal 170 zcmXAjI}XAy5Cz}bYand1HB}@U=&0#jaE}CIK_us+K=@R-8b>1vZ=}(b59Pfk0F;@+ zj3Wxb?5vH=(_P|uxB_!`WmAQJFX~vg{l^fgbxhNksRJBgxgri_N-!B=y=8${zfq`z sWbhM85C^rh86tZF&%%fA^ueoaPVW%AN7Xj@t4b+vLm2w}7W;Vo0hRF`@c;k- diff --git a/compiled/setter.wasm b/compiled/setter.wasm index c8c9774a81b118d4ef2326eb75a11c628c52f843..d0656efc36117d30f321cccf3182134278b43f2d 100644 GIT binary patch literal 3756 zcmeHJy>A>v6o2!vd$Tup@tOoMJ`l4@iUcVH3FJsr9;76)0wN8yeVo_Ht?fJC`Ep65 zz+HnVfsUFEiGq?2N+g>62T*{Nf+C`#0)B7i&apuJ1?24gn3?z9yszJHmb%A>f{4T$ z*^Zdej-KI1JCbiiI|?H)+aX*DukZkCxC`9m`-!Rs)AsRXIPTu6w(pMnlZqtIwfcjj zJCp5$YH(|En}V3#t0ukM+hKu-g_5K0px=uM>0xy^9N(8h=Bl$!LP)6~rBV_Nld^}@ zFiLBkh$GQ#rUnl9$DeE4Fhcjb2M3g8D}ubR*>lgou>Nem`pjDM$JO<(U}^RW`Fy_= z=Sgllx*&BaueQkvey0toF)O{Qy`1`4U6TJx+`uwt#DM0V4A$8dg?tET8YpUxGB}77V$oiQ<8l+bDJQpJ1Iwm_`c_*6(E@V3 zwvS}vO*mP@2UtQdd4nw0bZ*Edly{c*FO|r+aF1!fr1J;|Ny?k-^qNnnh49}~Aw3m} zH&(p0cn{kV=7St+5(lX5W{ulUUFtk#1ExTw{6m5Os#T`mIb2(vGOaz~55s-TynLgR zzqG!POkA43$OBjVHMR_Oyp+jBqAQBs!$Q7X$m_CkdLj728m2DIa>3C>x_L!8=(5k+ zC2t2)jrcI}LHxM6kZC&J3DT&6jKOH{uD7K_M5qa3S*sWJ8wep^4h#lnIUtt?nVZN8 zY!#@27j?lUj*f6J7{KA2T4d2GoP3lH)j+4NSU)$pCHt!o`ZTz>6!9+?i+1$0ciQkZ z!mCsaFdYCU(7FqN>8so)0bpn?r@6TR8aRd7fG-{Jbp|em-eZJ0)t0Tqq64HCg=)!D zfHMnSz%t?unh|kk1Bi6!cZH_Qp#xaNrc`V*i~w?k%VFjS9_@Y7mTj_z{Ldlw{S#hE zBCo)6Bod8$woHM6gc}ekjRCb*!A(@8Eys%NE7ADvYm)Z=v zo^nNY45Y!1<}4#3i4>MxJ~i?4xu{EpE#+3ne=^r~DSbZOBqTkbKxB5U6M?SKQNUpk zh1P=+n2$LDoP|tk&IyviK-HK<^nR|b2K?<$N~AMnXI2-1!S)dl(`3;IkrW0s&FdnI zJrH1NxVEMcVZcOLgbJF{fTeg%JG10Axyft+MjMq-L&VNFbBVC?s8bkrj|zh_2VxVv z5Qz;^3t~gDkU+z^#Gc%`(PrSsrqlbb!TiL*lgpsA+F<_~m#*m=Ks~m8x2*st4exa5 zMcy+SWrLo1%YdIH_F#Tyobr2MI%Z2ri%n4ggo5r4g<^6I2DMisXOMBEI=CJtK(2(; zz>_j=8?%CrV6p{hf>J3F8_WYcfz#11{=-1fPm+L|MY~AcqOS0tEpwJ4oky#@PG~xg z&|uwu%BLk)FS3bX|KnL14~KAs1XsW|TquqLEucXneB{M9PC6eoF@C}EFZM$WOjA)2 z{SG4qgOHC>a6||sOj8_K#Df3N*sXYoYXBm25S8H&0#5)0=yfL#u-`n#aGu}jl!-?g z!5+*2KbZUsST0Ztb4Q3U#3dsZpbfNfBLE5LD?;-GG;mByh7eqGZg8B{a7rU8h6ULS zpu};zLiY6tPn<~#DRAl<8XRcCCjxG0*tZCyz_pQ9?W_N(@GnvOXQlu}WAEM5L~jz& zLp;ynd5G_$3{QazQ{j?$;sYwYCwTIY*ZEVbfy>}x9sd1u{yP|1#r)TJp2hQb7z;N1 zAI2W;R>zb6pgZXg2d+EVb;rXy<6h;C5Bk08*xl|C)%)g zdEC9bJ*|4LjgNcXqi(N1x$lP4YP@$aybGD$a9mvuhAtltcOisQ-~;JncJ}G-X$GEV J;QyR~zX6Zjil_hp literal 4690 zcmeHL&2Ah;5U&24otfT^CrSv+fZuD#wkM2c7+ zkhtazcnKZ=B)D+0#0zlXz%dWNfv>t}Hg=+*pny1#Sl<5G?yCO2s`|Pe>Yp46A`(?+ zTg+*j#C%)MxkKDyB=|$kF(*GaYB)Z%yTjRFZ)-F@dN?EEnQrKB9Sp}0W_u)f${h8_ zqX9|o_fBS$Y5&1+>(O*H8^*chaCkVGK9)ih>PkRh%4Ij@+FiK~69pg58U9A`Suif@Xs;cobu`9f z-no5O6;3gjJ4NBl{opx?O(!-PH*6lzL5J|JX51S+b4M-K(@f#{FB}i z8dZCFT1h{ztIW%p|D6!z^&X%5Om3pJ{x@2cT^wD`N)T4&YR%(+&3 z)A=n*y*Ta(>+&+|3d`#OvdXxDEs|k^s@%(C-r%1cJ5F!wkm2~=Wo7QN#!O2TlJv=Av|Iq8#SfsT8lanUf^6k8zH5@_W~vv zF)`7g;@?B07*S_|$hedd!7cD~I2b^KNuW_Lp;2YpO&C4uqoE)Jt_0lLWm$OfAr6k- z^(qfZzA96fx}1qX)JQcd6864%+|s{@n|=|c+C+)vB~HV|mxofYT=#-cXYUJCw3j8r z$-9}oM^dm(}2q(xnPwW&BD0@8-Tkicd!zP6+#_~ z~_Nd87vpo|c5R=9XBIQ${D5!H5@7;MXH!sfr(R1`JpAw zt2`73>-{Ao$VOgDXt*3fDU7IS1cKNYK}%hExipiQ%v_o{K*;&$rKwSx;n*xPZ{QS? z3UGq60d=mC+(-pzYnjDL@p=l+a1jfE%LBQkp<)qp@)BzXbZG_*@)m$~3plbCDPiAg z;X8Rv-$_ql<2ql=1;mWF1~i%=gJF~+g)PJ%^GhgnmVP3e0idTsk~QSdwAJK={lSQ2 z?xd3k5cIPGAv`NSey>7&W*|dwwWXzKF9*o7s0>fyMrdXir68V*xF}^5aTw6Jyx0yH zLEwW$5y=o>$H|ZYhFfwHm!G^K;*wn@VHt9v!jq=sbSrpjA$XWXj^GBw@h{4EQg*tE z#XzFyTQM*!29m`<#NrPPu;RyDkOscyu`!JjgLB2q<*Tq&!hZxhl>3#?Ie!AC2Kpun zL7*%ni$MhuL~O?cpn=Zca(SU9I)PkVZV5Z!$46U!f!8!ffoEN(i2_5`n&-w7W;kOMA8Q(Txoe6Ina`3}! z5}v9{R04yrS72Kc=HSWDaoR&Sg-r zj7t~li(DyKxvc#qOUXm0p8ZHfzH4u+puLLU&+vNJLV<$8K^u zobDb>9+5vMd+lKK1^z~w3~o>RkG4*SgZHN=gecjsQ{MRY-&+RWGVniU0AgxyJk>;Z zK*BlN>u7&k=*rW~-q{(R%tqt>Y&03W{&>foOdd`LLw9m88Vpa|UjKCHc1F9q!|8B5 cbMZfUATj5ey$-N_oIU2I&lg}GMB?Ukv_EXSW*MKm*et+eNf!?%HE3hI?cNNH6Du&V z7u=B?RO}hvKWsg$XkVK38glhb`6O+BkMM<+=LE`dmjWJ5Q8(!cv!fcFRWWS-;whmi z+$L|bD`g;~OJ4qAmAw7M@~H9{b5P_-HB-S11zb}3gDR;#gK{cbGRz&*1ofCKg>~hT Q`@)%gEb7a$MIBN906T6ln*aa+ literal 641 zcmY*XyH3ME5Zv8cJI}&J3W^kql_Du<y!k*7Z zaO1rl&CKrH8Or?@0RRWIqT>-(0CZHy$R*U6tzqrQ2$|t3L@b zGx}l1cYp+;*GGOXHyfYNIh6E3L2Jr zBv)JSal(Su>VZqT*K$$a#0meYJTP{WbbzT76GwTIbwQ5;AsL1eWBaaIQjJ2~48??# zox14KY^Q@`0)L%8^rXwsP2xQzEo0neuoH@=bDeyvFVQkNFg2~{E%^!TbcJga-*>`m d|37;hwI7s{=^voSGdgt}jfM!8N1R;%egVyIWE21Z diff --git a/compiled/suicidal.wasm b/compiled/suicidal.wasm index ef0ab0c8be80a958b4ac3ddf5463510b0635638e..f4ccd14c59af2706d6f33d2b790974f2bb2027ae 100644 GIT binary patch literal 3047 zcmeHIJ#!pI5bd6s-J88Rp%E6gLCNgmK&}E*MNuauRB2pgD3{>}5Lw4*W#37<(|uT$ zs|0rm&5etb|GV?-xk?VSN+8K;a9?tI_)ua3K2c*R04(fUT!M(IV zMl7w_!$E(rUpF&7t>;8y&rW)yLBDy=kL%;{^s!>)^|hb-oY?xkqa$h+t4xty@z&MrZ?F5cH?OsybgsU~z_}ZEQ`t)0UZFri#l^6z z4BlWx1SYiVd`>PS{|>o76`RGo6ra*zMK?(8s$EYNuTZ3t1D;)VJqSCZfg^^Q;JJg&iS4dE^e>mmuwp6jVrqw#x<%U>QyBuBtN`>wpQQlV%F3hT+c4}%hD2+V0(1DQ zo4Uyn=%xgyN$~O5B&3o#_GLVp z^;H*_)~}LlVaY3UMcT$|a+cz+X{i9TNZwqkX$k=XtPy?SXcSaXp|q&yak*ru0d=W6 z8}Z4~fb8f`cL|d5bGR%%*$}ZnA|M}vO|FPKpFmwxFbwHME)4_`bfahkD=LgjoDY#%6`70Llz8DH;I87NiC8}!ibLwAf;xq@oZRGIYkQg zvIdj@Y*J9wmTiqdY&X25gozg`ydY7q7eq183sLCJi+a*wTvmM%RJ8#E=?(HpUPk7x z5<4kVA^}oq^5V2ED>qPwaiQir00 zI)bd19@C}2yHRBksAFd+AFQ97k6hE#i4Gu6Uuo4S9?@uA;XR!hw8V|(Su~FiS^A2L z7DUE35-0u{wOZi`!Do7YS z^y^u8&^xWe{@~!Cp4OvzXns(!_9cGa#{I2n@6o-}y8pp+*6*G4`h)r7Fg~rP2S?*a i@ad1I^;Sx>bv)jO6MFDj;l2^Dudmk(yk_A4%)q~pL?zPz literal 4395 zcmeHL&u<$=6n^t#y}MqUZqy*#9607bfbW~J(tZ z-cvKVCu(+2&o~i|_@?;B%&?|EYnXa;SZvqR-u=7%(cXip2v=HRes@@pzMS3{#ieAg zJL>mDb8aT}G|tk42mM}utB%_myY=pP@<=OHnr3c{O&T^aVy)T}NtC3Svc2wbC`qoQ z`RzOTcT2jMsV82%tZ3_xWv6Oh*H&-5%5SMExz!dYe)e&@#9#(qA6ClG236+u)c+=f zD!tWKF7rqF4#uYcRj%usPT^@syR?&=4VPDDMN5_6YMXc}%$~`hEa*GGESXpPZB@9u zleJXA4Y+ERaeyCv8h-_=>IANUye|TSeieBVKiIMK7iC(r&ljDk8iTSkK|p z5uZQK%Ix0+rwOic0?xXW;BYLEr3?&kVG+2@OSp6=Z8b>5&oVfnBL~I=L^oITrdPK? zGiIMxxl2O~GMBoXq#%Z3=D8C$zkU?czlfqa4-{FJxV(ewFvvMj6Ur}u!c=k18*1Hb zdd+}!@>X8FFCARoe{*C9zC5hVhP(^f$|<1b&R~L!o&;nb4v=#kEQ@6eJ^=W--hw6a zEMvGs0-s^wKZy06wgv^}RVXllhQ{AW4U`q4KB#o4u|-XQaP2I4LQ#hT$&f8JR%GJz zyc{tKlPeDu0&O_!1Sv^V!NBqar*NX9lZH#@PB2PKpDWcQrZh{{VEfrpH7M0^Z_3VV zoC@gxI>mfI-5Vqpl3^3mY+f(kPH;5Nh}FOvL3$YoTPr2%H=HuNlW5G)7%R>cdgUuZZL9Jh!H&Z0&wP{C0_ zLBTfxGZa+jzk;O;0-pLO`&Ecv5D!*9vcx~8XjYbO!18#CIn*Z@hJ9dcA5{y>eddsD zCAje^_b5erFm%u0&r6De9DQpZr02ddW2&GuxhePtSo$WL%mXMO8wK-}-3c>T@><}B za~jh@%E(aKP$h_Y)-sI2yz3yEj2jbi9$1=cOFBHC2Lct{TB?=T;Rph1V@fDrR+>mwLw8;TY8{vEV16%-tp z0kDsm5qd*hLg&d~T@~Tpewj|^)xs}$T&x>7cR2Ybtu`^o(lT5w4@w)_7+J|d8G5dk zA`yRN3yTmI-zTauLjvewrTtNff;lQbdJn0C*A43wZeC>_wa9m~;Z&7yQ6W3e^=9?r z#X~_q!ixtSSSTO;fC2CwJVI5NJ8F?*g$s&@n(ip3Wq5yKBhoyo5zH7owF3dPi_UCL zIx`j_V~Sp2hCTCqY@jn6b}VYeqGKiOSehLRZy-#sFaRrllT-bRQNu<&XY6n<*b)Hp z)olEO&>>Ph;7_3^=b+z#D&gH}&SL1*2qLy$09O$@pR&M$Y_ot-jtw3_jX!A-)w^gfk4lTuQP6Z z^Yey*Hw^rb8GuR_%TKMyHIVQe<0XtgoaoBaytuYiA58nB?zBH1x$bDo9gH7LdbK+k t_Ive#yWc&m-By2lyPnjesf+);fW$n{i%Za+-gr`94W?Ij$6FAeKLFHI+uHyD diff --git a/gen/main.rs b/gen/main.rs index f5dd918..42799f8 100644 --- a/gen/main.rs +++ b/gen/main.rs @@ -17,14 +17,19 @@ version = "0.1.0" authors = ["NikVolf "] [dependencies] -pwasm-std = "0.5.0" -pwasm-ethereum = "0.1.0" +pwasm-std = "0.9.0" +pwasm-ethereum = "0.5.0" bigint = { version = "4", default-features = false } [lib] name = "$file_name" path = "main.rs" crate-type = ["cdylib"] + +[profile.release] +panic = "abort" +lto = true +opt-level = "z" "#; let target_toml = toml.replace("$file_name", file_name); diff --git a/rust-toolchain b/rust-toolchain index 8635e01..b66c3c9 100644 --- a/rust-toolchain +++ b/rust-toolchain @@ -1 +1 @@ -nightly-2018-02-05 +nightly-2018-06-28 diff --git a/src/alloc.rs b/src/alloc.rs index c19dcf8..367f574 100644 --- a/src/alloc.rs +++ b/src/alloc.rs @@ -8,8 +8,8 @@ use pwasm_std::Vec; #[no_mangle] pub fn call() { ext::ret(&{ - let mut data = Vec::with_capacity(450 * 1024); - data.extend_from_slice(&[5u8; 450*1024][..]); + let mut data = Vec::with_capacity(400 * 1024); + data.extend_from_slice(&[5u8; 400*1024][..]); data }); } \ No newline at end of file diff --git a/src/recursive.wat b/src/recursive.wat new file mode 100644 index 0000000..9915a89 --- /dev/null +++ b/src/recursive.wat @@ -0,0 +1,51 @@ +(module + (import "env" "fetch_input" (func $fetch_input (param i32))) + (import "env" "input_length" (func $input_length (result i32))) + + + (func (export "call") + ;; Assert that input_length is exactly 4 bytes long. + (if + (i32.ne + (call $input_length) + (i32.const 4) + ) + (unreachable) + ) + + ;; Load input data at the address 0. + ;; + ;; It contains only 1 word that represents an iteration count. + (call $fetch_input + (i32.const 0) + ) + + ;; Load the iteration count from the address 0 and then + ;; call $recursive with this number. + ;; Drop the result (since it's always zero). + (drop + (call $recursive + (i32.load + (i32.const 0) + ) + ) + ) + ) + + (func $recursive (param i32) (result i32) + block $out (result i32) + get_local 0 + get_local 0 + i32.eqz + br_if $out + + i32.const 1 + i32.sub + call $recursive + end + ) + + (table 0 anyfunc) + (memory 1) + (export "memory" (memory 0)) +) diff --git a/wasm-install.sh b/wasm-install.sh new file mode 100755 index 0000000..f54e5d3 --- /dev/null +++ b/wasm-install.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +# this script is intended to be used from .travis.yml. +# Takes an environment variable WATERFALL_BUILD to download a +# specific version of a waterfall build. + +set -e + +if [ -z ${WATERFALL_BUILD+x} ]; then + echo "the WATERFALL_BUILD environment variable is unset"; + exit 1; +fi + +curl -sL https://storage.googleapis.com/wasm-llvm/builds/linux/$WATERFALL_BUILD/wasm-binaries.tbz2 | tar xvkj