From 4655b125191d51dc449b5a14dd485096ff516f81 Mon Sep 17 00:00:00 2001 From: Daniel Sanchez Date: Fri, 8 Sep 2023 12:55:42 -0500 Subject: [PATCH] Update to Zig 0.11.0 --- .gitignore | 1 + build.zig | 30 ++++++++++++++---------------- docs/script.js | 2 +- docs/wefx-example.wasm | Bin 0 -> 12741 bytes docs/wefx.wasm | Bin 12331 -> 0 bytes examples/example1.zig | 10 +++++----- wefx/WEFX.zig | 24 ++++++++++++------------ 7 files changed, 33 insertions(+), 34 deletions(-) create mode 100755 docs/wefx-example.wasm delete mode 100755 docs/wefx.wasm mode change 100644 => 100755 wefx/WEFX.zig diff --git a/.gitignore b/.gitignore index 5544111..c0735df 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +c_wefx/ zig-cache/ zig-out/ *.o diff --git a/build.zig b/build.zig index 42688e3..b56ed12 100644 --- a/build.zig +++ b/build.zig @@ -1,22 +1,20 @@ const std = @import("std"); pub fn build(b: *std.build.Builder) void { - // Adds the option -Drelease=[bool] to create a release build, which by - // default we set to ReleaseSmall. - b.setPreferredReleaseMode(.ReleaseSmall); - // Standard release options allow the person running `zig build` to select - // between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall. - const mode = b.standardReleaseOptions(); + const wefx_module = b.addModule("WEFX", .{ + .source_file = .{ .cwd_relative = "wefx/WEFX.zig" }, + }); - // EXAMPLES - const lib = b.addSharedLibrary("wefx", "examples/example1.zig", .unversioned); - lib.setBuildMode(mode); - lib.setTarget(.{ - .cpu_arch = .wasm32, - .os_tag = .freestanding, - //.abi = .musl, + const lib = b.addSharedLibrary(.{ + .name = "wefx-example", + .root_source_file = .{ .path = "examples/example1.zig" }, + .target = .{ + .cpu_arch = .wasm32, + .os_tag = .freestanding, + }, + .optimize = .ReleaseSmall, }); - lib.addPackagePath("WEFX", "./wefx/WEFX.zig"); - lib.setOutputDir("./docs/"); - lib.install(); + lib.rdynamic = true; + lib.addModule("WEFX", wefx_module); + b.installArtifact(lib); } diff --git a/docs/script.js b/docs/script.js index 117352e..b472106 100644 --- a/docs/script.js +++ b/docs/script.js @@ -19,7 +19,7 @@ function getWASMGlobalValue(memory, global) { } async function bootstrap() { - const { instance } = await WebAssembly.instantiateStreaming(fetch("./wefx.wasm")); + const { instance } = await WebAssembly.instantiateStreaming(fetch("./wefx-example.wasm")); const memory = instance.exports.memory; diff --git a/docs/wefx-example.wasm b/docs/wefx-example.wasm new file mode 100755 index 0000000000000000000000000000000000000000..f24231023b12baeadd2fd6e6650b7de1ea8f11e7 GIT binary patch literal 12741 zcmb_?2YeLO-u5#y+c#wc0YcN+6={M}G&Cid5NV2t3fM3peFK3&C`v+BLRIi0pn#~v zhz3xsC@L*TQ2|A{N)ai73hGr*Kt({l=YM853F7sAzwh@&cV|xd_j=BPexrwL0JKS3 zwZ4u*{%M7Mo$@S1UqgMn)JWzv&Vf&$uT}tiJ6~l+I z`Gs0Ofwh9ZT0Xz@f(m+Cp>btBhtuWuc;(OG^T)+|5_A}vo``ru3nW#kQZ+d#KHlNf zMrt09)6kIQYU3`{tVpB`{z6!r=G)Itp0J;vMW1`3&o86TL-KSV)e>F92M!-G>H!^& zp*chIpm~S)8=8|fY{ZC>Fnr?%4jP{|e)P}>2f}R+9#8{M6}2+D|EPfjbFxMZ8Z>%f z9=!IBLBqz39s*wtwWHsF0a@7tAGm)+zfl9S296z=lZUwE@|EEu#*7{qosN%F)7(5@ z#JC(oi;oRQjv6?6w4vL`xjbg1VI-(U1wMSl*nx(l(u4wc+St?%0=T^K8Z6E4ruu5s ztX0jotaH5unnAlw)C#YN@DG-m9n$KlS3O-%x6sI#J-;l1kX|av)hykDsb`qeOB?D) zQu`1x;$do*)=u-7TF{8o{2WCh%~JJbQ!|ZJJ-{*AX(@aJ!a>7t!ZaG`Xr;r1bqU zERYEkfv9XIuF*X4gf%H5Sy^K*lRI>{ZR&$#v1BM0YO8cO>_Vv z-TSB~gE&`kU|CS7?WkbgPc+8JphH-FN>OoI+Ss7Wh7CL=a);cedrrt5MI_G{B6lT3 z<#L-YQ>UeenU1if=Y?fnnTS#=Eojyxtt0t&m|C_dMwm3UH|B;sfoFvr@u#QH`)~BT zHsfA$AJwzG*d}+G-f+lk4GRw=2a0wilCQ{;hUb4FjL$~y`+MZRN_hV)qHl;lUU*2n zB2qu|+GcG&mG~-NvI9P?F#L|$SO`oRyX;?EcLz|kR=Lf5r z31(t`Y0zuNtEbP5TMfVJtpZo|2w{lefmG{Gnos^_x=N2%JIM2SB}dh-AnaidMzzX_4?%DqbD$>Fg?ga zH3~yAwI&y&5dy!hvHU<5eugfh@s(6 zq{l|Hj!H>P|4cz4-FitB$ZZM&+wAOEjtW8##*$HwDP5W~Hb%T|`r9l~Z*r z4rM~+`i8nE=^^n_W(_^v)DxW0bzNh|@+zPI3Z3Ga!zy|F|66FN1TVo@q#KTj1}mhg zuQ0KqAmlI|8EMl(jwz<2AjEK7VQPP!brl313#uR#7qpG{hv@$pi!#5hw=VuT)d&cX6 zMU<0BtD4Sy1wxk;5ZhG*#48|n8nx?%M`a|fygvw(_Xj4WkhGN;wlsNnB&mAHsisH_ z%1R(s4&lFDmo6jPV^rXf{zBP`{RIKy!j{9-rMoD{b)6nZf31W|rxhm37QY)p))Rfk zMW6Ll>17FRCOrjRo_m@EbqiAZjC7OrQq9#fjj)utiq3;lq)>*?vuf$`! zp%Rm$SmUF!LC~mAGN}3)592E(thnVadOXJg8GFKZza!YJI^mGPWxH|{RPD24MhZ8r zW0;QG(S|@C4g#6skZ$V2iN?r*g+y@&klbI9QG+VrLPQ1zu!CjyVtn{}d?wjV)$7=g z6xt!$p_w$WBI)l~;Roy!9rYN95t1BZTckIOvkFx`VdoDploB@u<316=D>TN@cYW4nl@$kPB;~ zvS`Q{mn#mIH;TT&86p$r7_qtv)eV)-3N(^#8;N4WiUgS9tYYbvOaYC^X(STpQrkp! z;4$G`j3ZOs;-RNYZvKy)CJ01eGu0kRg(JC;G*lrv%`w?RF}Nk-2$U!nXC9Dzrj|rQ zVra#H`l6}0c_gzz1z~Q9Y02NNA|@)inW4;Hu5V=#Ti=y5?0-em96W8HeUASO`t-#n2p#zT!t09(k`X;y7a$K~~k+ybF9jyCwT)|4;(DOphG=vy%c_DVu zg>2wWXLc?Npq?$L-KG{!XKw0Dr*WGu=^3~rs2B!;*-FjC8psPeSbqH7DJ-?lkRfZt z%8s1&?Jh?cAs%DcLBAn#mtu(qh|O!FMOQe6SN8|SJmsrgv@sJnwrQ(oNEN5=>DKt% zAT1a5KYCSnGR>wiOlc5!LMg~~Jt&~%4x6rw*3<2QO9suN1E&lc+5^6se51$~Yl^Eh zZ3m>Ji;!T^v5> zG13X=7Rb1e!}Rd%MV;iD-fYpZkBB+TLgom0t?}WI|0Y3hvR1`0oA| zAx^q0_Yj2tClv_`^fYy5<+>bo*@O}Y+nfpp$(=t7wge(2otC9i=UGSco_&vDqpYar z;(WSg*KH}wQb|PtQeYs>iCW^GRCXPv?jNVl_;M^(+d^(4;5%jKW~uO=u%rMXZhNra zjTW@~IOc9!a0U>SMDbN8;iiaG3v;?S0yCLpUZ`Xp+v4)KiYmSL;Bxs|BvM$!=3kfA(~)uA^wN;i zVh}%2nr%93D=%RY=&aJopNY&0rgjU#jY{YyuUBTJ&q=VOt6*oqrsb}fY8tV{=)9#7 z#fqsJ7wkWG5zm?#*G`>mZ)CI0fvM*cBb|bG1;nRlGV|!^*3IhuW}(j=3`lgf0V?oK zmSQCSA7(4d^rUsJZKcsAR!rx?CqtWV>JLgUnwHyf1hSt{a8akS=&*ExWUo2kohe2ag@rIndx2u+0v+rOg%xO(G(^S*RE+vx2YabR; ztPVWQt>8%9#r}`rJ4=5oa)?V9)~+Mdr#YlEFsy_7)=zPCi`Oz!nr7Z{HdwPP_L5F_ zF6_!mx4O6-AM-C(GoKjNk@@=~j+^3jGA7%I)e!|elU5vfCQ9GoFP}6W&z4UcDt#%i z%$>oOh537{lo4^|4IGv)Rp8SF&=B>Ubt|nzg_8`ZL(>haUAxNgloNGE z$1&Yd7FmC?d;@zz1)w&}jOx05-uenWIl9X z-1!R^4z4fBg!(&?R%|b6nHg=JU)|pG`Lq(5(Mn8Y4!!lKLm6|=v@gkQa9QH9X=T0E z7nc;j<-bYOqxfk566vhCy~NZqOFOokIqjn@+@E)J>)|tK%>5E0nXjMCnGr~OD6J%O z+)LZ;=-G3#ETEXURvN5mMtVyt)!k=hs$%I(VI_JzR`ryOi z&9c5GVyM5?9g1Ub8;e6OdB62+@XUJ3B} zH;S%>QRqWfe@RKM<#ziZ42@^eCr5_NOXMl!L~vsLKM)c!_U(fNL^;8<0rquiB`j(G zBNi#3(Y#ykc+@VBT2_s**7p;`?6+&=Wv^Q;M0w1TtnIOw)dIz2pPhoK)6G<(H|$7Z z;&_sqnR{3Q<*t>2xi~>8e51$A6_p%A)l2pEW0-AC+FonkFIhu zaA)(%!EX&2#tOtUf}i+_Q_st`)+j1LH#6iXU>99}YEgIMoHvMupRRJ6Ff1dF8((#V z!>mobOmdMQer$dcY|ZlKfGH&E1mLxxG8?PlD!yudBVBo=+e~07thCFNiyt44`0>&? zn4TNuqT(upSBf@8n?b8s3p^*Ls72Y>WOzj#q6)dZqHR!8%zG?$b`(WgE3vZjevLO) zL&BjXOY2xWSj9@@<)n3aZm_Dwt1R`FOhKp>r&a8ybot?6HKE8W8NOEM>j_p=Vy$5& zQ5nG$(-rinV+%L21$0`o*;-dHSA%>Rc{CXX^3Xu0Czrh1d);9Xiv=?1Rv36(U|1&p1uXF|VC+hK(#I%?F5%lP z1;|a^(!ab)p=RJ>joN&gNr6RThESpz~3WK&|jc+vt~G0 zGrHgvp{lB1H<*T!n1$%f>`E(>6JqwXGQHQT5&JcyR=KE$(gx8zEj?IE!rUud=wm{) zEZi)2j^fB3Mh!oV8lB?=+v!PDook#{#CI`Kdq&9<^oh^9X@msceN$H+zWU@EJea^p zA`Yb|n@wRc#K;#8s^n4wezT^SuBKVb;)S6Rwa1AxGm)AWhRuW<;e>VgRrQd(#N&yJS_EWZ+SZ6B8X zm0iY5StJpyDiO8XDv$axCAN(cleB#aLyM(|2wqKyF~R5#`a~9?qh#`_qZ9qjmtD@3 zc!#7DepF2~U0u};pe_#^osz7QXHdshMDC=d$k6q?@{Br0v|iF@?W;M5)L6PT?@ptt ziSn$xl1h*|ENsbzhV0_ER=LW>L{)`a%EU#^$Gy}^x%0WjF_~IKJ-(x8u2yZa8VSgU zvF$OPR~aX`$RtQov-umEsH!3s)!Zda{EhSi7R{06OvtUTqTI&dWdW^LHC#^|6-?Fc zTy-}6FJY>(i_#Q-E)|w94*QF0wQM{2|LH7h%!{2#O?6Opbg5l&I2D!hR2n-K{tu^8 zUO(Aq%tLZCmHRAp!eq-GI}xT|aw4S#4eM(;lk$N34`;QC)1Eq2{LRs|{Pf4>yZlJI zzJj0;JJMcyQsz-GCL#qc=eDfkgh;b0PXDhCu$4Kw=tO(bfz>{*UVNgZ6Uk}fl9OqZ z=nbmWOa2zZkTpzA?i>wqAKun5-sIv=ZpQo>l{QBUdpS%~K)}>Bd~_{(ziwkvjz}~m zHP{-ce_vHrT?3%=WANkP$H|Y2pOO9m+$U@FG_A+l;n3^{}&B2D-Qo!TbHys59qN{80B#GFXvTbM@7D>buEUS$`ydDagXE$J*fbqBeNyR2w{!H5m=hti|t_x5I%8^O3l~ ziKJ_e!*};17=HP1?3kDe@3sc$*nJhA8I*>m-)G_724nEe5AWlK2|wevHg3$h?O~kF z{vMaVmIY6rS!ibT!h~}japJ{nm}_<*_0*F%vaBxd>-QKuwZFxbg#%HXoP}BGLlD_> z0S!iXgUi(%TYFW*hf7Ce!r{Kio>_*Pn>yj6!5iT{_9gBrYK%w5Zo&(7ofx}XK>->?yvWgo}l-|xe9m$yaXFI(~Rw7STj9YnZZ zK0eR+1I?O_L$!7t@MiKBY^?b-R&06?O}bh9*F=3VwV)%8V9;e@EbQG6FP-g#iG_O*8n_BAj?KWg>-*yPrjIZz z)r&r9pP~AJ-MF*e0UTH~2RlOz(QxW99KN#~wrp(y&ynglRIm*-%5KHUx}``tbPuks zdM%2o+>fHp8csiY4_3Tdh|9kF1)aNgKw$8{v3&m?yquMRaKDe?Yq$jeUbqsj7k&{Zj+E@+9&x z=hEh*!@To|pE?uGtpk|T=4tF7ITJNj9fjv$J5+0R74D4`=i@bt; z7j8o9*@?I-Wi0N0z8d;%TaEW;yn{gcTI~GAfi7bj;D@(<#lFyL_>z}nM*V9rplB?- z?OGyXUM=)!yBu|&dk?St_%iOTUj@V8>xQNeK83Pg^I@bF!F%FYT$Mf(!<#Qeo0V?< z@?8ykHr|8Nb2eeiikooD*5^^$>LYx+EEO-#nTP!uLr}B-0gRn_977(t4d?c?!pqOT zh=bLdgD;3X`vnGc8-yR7tI%j*GxYAY9-S_bV+nfK{ufd|^5T|^?@)E!612SHO`KR>3*84U#m)`S!=ILjd&Yl+E6$9? zghw2hQDYRgyl^{4BKeI|DPw3cJCT|a$q=SzkfLz?|Tc+UCA=?%9B`e`&_)$+kr++SK_9~ zM10{c#n|Num~hv#s9vQpzFgH5e|&QuGxq(78SBpD>#@V&T6PZYBO@^-ry9;ryMTu6 z-RL*CB^swpMYpxzGoD_-zlP`F@xg7-eEmI`yt^}+9juP`n|8pJ{jS4@BR@v7ZEs`! zu=7}g5;%u_jl1_3BRHZH?ys^F@7y~XBl~qhcCSNNc$d$z)5pRYp8pEsduP8Rw! z`x;ZOUWU4_Z^W}LQsG&(1mC~L9Q9ie{~G!=8eABMI3vQm-W1(GDu(&|LcCG(Z(P&I zhm~hCko3hi6s-FMi}r26i#66_Yso|Kgzv@GJ!_x=dZIA-1io@lMY4YYp0H+N+PVYy z;(TLdU-=d$%(xcLlYio!_0M2PxI4NwUW)FU?ncw!*I@VE3vlZF#}VIc7RjyY?(n9`#16VX*5B9EWjwSOqV%(jdVd#;~IPpbQyxaDA zbWG`po@27GbM0y5%-MpMuI__`%pXyweFpk%nubQ_zr)d8ClSiuiV=@p2hX9+xUhQ` za>9r4>iI30>)C+(K6%Jq@j5=rc^d6UO~96!>`99@7;R% zrl2qK_B@REYEAG^N*pE*ng^{>bu4~xEY6=_hh8@x$6nU%|Lm=bN8Wu0o93TG^Q8^& zbIwN0+nkC$OM7AE(l@bVdjhJ=Xo?ZNuSJtyGqCXEBiLoWgY5g3qkZG2kd(C@=lxyr z)v2?1wB2wVp4tT8eKr~ARxZQwpFYLa*L{d<+Vn%~U?yts{QwW0^WkjQFs`Yy2e+@B zj9V7Y#2umSXx#Hllx^7sf6XUQYvkJ)`uG6Uzq>EeZu<#^Nr^c1W)jYAJB@4CH09?f z9P6_k`|shYYc4+dzJOuhpL*tt#Akw53I;^jP>Gfx0 z{Pi=ibko=PX5R#CYWp7QpZXrZ4W`C-(P4b>0|kYP%RkCC_5ikHgVs)`OVz_A+F*xECE8+yh+uBX(jO&YkKB z?XGS(lpA3ui*)`rk|r-rGxOT>5n0gjcm6X0^zE^Id^;Hz)jrXN&vf(32V2WHH0ekx zpQw9s=ymEJtiyk+jG;PZ`|a=gYFSy%KY2c$^TRduTkKwI{5oo63*MtjS)w%Qk0ILQbGXMYp literal 0 HcmV?d00001 diff --git a/docs/wefx.wasm b/docs/wefx.wasm deleted file mode 100755 index 8ac0090df8e37c5286f10439f34970d28063a2d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12331 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