From ee0c5053a967e607b82139ef4c4c1bd7c396065c Mon Sep 17 00:00:00 2001 From: Jonah Beckford <71855677+jonahbeckford@users.noreply.github.com> Date: Sun, 3 Sep 2023 14:02:43 -0700 Subject: [PATCH] Add DkML compilers to bring MSVC Ran: ./dk dkml.workflow.compilers CI GitHub Desktop OS Windows --- .../pc/setup-dkml-windows_x86.ps1 | Bin 0 -> 225340 bytes .../pc/setup-dkml-windows_x86_64.ps1 | Bin 0 -> 225274 bytes .gitattributes | 6 ++ .github/workflows/dkml.yml | 102 ++++++++++++++++++ .gitignore | 10 ++ ci/build-test.sh | 84 +++++++++++++++ 6 files changed, 202 insertions(+) create mode 100644 .ci/dkml-compilers/pc/setup-dkml-windows_x86.ps1 create mode 100644 .ci/dkml-compilers/pc/setup-dkml-windows_x86_64.ps1 create mode 100644 .github/workflows/dkml.yml create mode 100644 ci/build-test.sh diff --git a/.ci/dkml-compilers/pc/setup-dkml-windows_x86.ps1 b/.ci/dkml-compilers/pc/setup-dkml-windows_x86.ps1 new file mode 100644 index 0000000000000000000000000000000000000000..7e4d696543175898969950cab437d42610e0daa3 GIT binary patch literal 225340 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%0Ao3cmi z>3f1~?g|Xr{iU|tZ;i8jVq0)aX_ELq=h?-)-{M6e~Qz zWvrLF)wI4AJynm=Isxu>9HgD!9@#Pd)?{-aJvkB8&%F(=)6qLB6O8G=kTp>LQpdBQ zx$-v-v|xtMxGB03CG@FItT?`-@eZWVa*F1C`Tu)bb?7{=bf1FU-27i!d_A1AuMQjT`;gg zBLf1=rY{PZ*7uIT+oSs%Od5S*`b>(G+p#2WiOmebJ(HdA^7d)RCFIddq; zx^H_4%x2^mvqG^?z1xZ0VkIJn90$!KRK9*zbB$HU{seY?cp;pUb*`SR!GMd`$Da6G z9d9Hn!(*D}Pn5MJ=>2H+zek!d@<^aoY4t}fhg6Zl*#0Pw4coGwEqwBRT%{#j(J0Y> z%ZXTQubfR^V{7HY8?k zyN^K~hE`)o|KmU7*uf!l)_I6g)|}F}s^ZBOm229ybrjL-B-dJ}bC5gJPr$Y~FlMu# zI~Mr&M|#u@p5%8Rd-Ap18pF8X*76O;Tf}%;^YM!$sdqA4yi%{#(=JJpoEeuX{c*Rs z4|wB{Vzt%lzYT9SQga-m(@W`R;Qg}0h_*>K%Na!$;Fs88{AI@wxq}p{cMO-+M5k{T zvG(O^n<*kDClQzUxh&6m%n_lBv8R<&$4hGJZFZ50wtXGeWo_w)7utu_xAtpHlE2da zuf&9L#+aDTe9x)AcTaIzqU6Yl`d-~GzmG3XM$P!XRM<*=_(7$<4PLg{QM@`~_}?W0 z?`Zs39NznHKJD|N;`~v&?_0%<*jr*>$@`R4Vj!o79WrN1MKqpRCQnD?p83tAPR^cP zRyOk9@b9~wF?LDEqw3_hQ9CL!Psu-|zsO=L>pW~}OyuF<-z~1V$lE78>e=aUx2 z-TM*ndPF(Iz_iBP{zW}Lk0)=>m^iWJIXtIvv9i8=kx57Xab(7`JIgNSZMC@B{qLMO z)8l+GQsC}(^FI78MaSXDvS6A zO{KKgFq}J*%Su;Gd0*rEOt3C#Jh2;P>hsrC*?H5|Mg1@m>1m5e{ zWZBUyai%X?m$Mj{8A9;bE#-t<*N@+k#XC;mhjOj-bzAPi8{QBV$rRY>W<0OtR@ePs zOwYiY6@6|3ME0@Ly9C_2KJ^vjiciJ>uYc5W98{zR30HHzc&sOaFL-wfEAD2uKRSg! z3?FHjPK@|G3f!Kbxb*oEvga*x@np>{A>oi?CI4I2>Biv$R6t(zrhdzXt4N zHRn79PtLV-jQpH)54ArsXF{SWlcwF5?oE}_&q|_mVvy{Ql%=~ZIhvm&!~;4jEf7!U zGgLnbH9gV<8B5LQ2RNOTL+0rkKP(+2@KoG@!7p?7?qMt)mbw&AgL zd}@YTFuSstuu{!y>CR3zujDO9i??O*yZ(eZIk%SRi~VD)7IMQTqNtKzf+ZCGX!Ove|M_+&h6`dfA!OO|G`!9$vybsrf5k6JEvzse0p35?iYMz2Hjc z^p=&qoH-m&FNj|g3|AIp*O=N;->ENb?tA+0NymNYfzoS>(}Zw4{8rl2zkMOcgA-C- z)c6LKAo!1DQSx$Z@`zft_(WuV~-w@4!w_Qgp+E^<% z_uG<@vBPC>bWTlZOC$t2d2lG>(@Aa1VeDJh1D27cHna^sV8lZ;1tgyvrPlA78T1u~tvW=zygFh7B}Wj%b)+k7}>h;_r0)J+ds1oO-s+9T?Ml zS&z=|g{0>eon5Ey{9&DjWMQ4{WNt30T(uL;=TRd;pLNpJdFNqw1xC3Hu+@#meb~v6 z`m9}y&h-ZZLX3&;5koY+o{LuSKBIlu$xcZ`c&%@f{oz)f0*R=FjcZ2dVj|Iq2;8s9wnkZ@+V%pUg{d0lwm$P!L4Axq*p&a5CG zV@10a`Y-k_O34`QLRuvGJCtJ(lG>14QpD$=V_h#dGcn3~X0|j&qE6oR!J6CEnBtv_ zJdNxkc7mSdg!UKuMjQp301e-&YO|=#zIHiMouG0ruRM`IHp+ZH&lDIUUlWGg(#X>> z!ooZwDx~%~7vyxnwps@AS;5W61MTyEe%tXIb{2i-Bj8Th-Zu_)D_&HZ6YT%nhxU5= z37*GV!dJoyjq{UGvBnC0Zp)n~u}ASh(RWz7KHV7jct0`UpZ43+h&asT<;Jpv8aI_7-1#2iWkwtoJ#mwCH8043eT{9GCZuX z0X$duJXCX{N37TAvFszA{WD&+ju~_8)8iRL+caBYhl6E4I^+>nw<(Q1mOQdFQ>6~P zu9bXEmOtx^iX*N}LgkY^{azQZyd@}(NtW~Pk=63693h@PR=1^;`O5j7RHEcGJ>0@N z`uENrpT7Ej>hc86bdfew2wF`UO~}POMpyIDZnr`f&!FdxHGmZlm0WqNJ(J7N<*cxiVIc)3DL~HEM=~9Rp#bOH!df4&`>h+@< zt=fcdY9;(6iYpdDpJCg@YRzn;}{u5w$)(T3&cDq>A&$~1R5 z?PBCH>e@dDe`b}oB>j6YG|~7ZeV|2jBsO7NDW_B)S85L2khFI7bF7KHMp}xlIW`;8 zdYWWhjH7L|9K-x9Sj=a9*7G{uPjEkAU3&mIcLgukwq>#3$1&ho&(zUKO|vogC*R!eo5NJwO9Q1aC}xGxa{KPmG*Kg#rogz=DyU< z>7I`z^pAHth>Ei>U>oPTaBQ^;+O1Z)d*1SOA63JG6I;0SWp-ef+YiALEeP>^jAl%# zUDjNmTzBUG`6~OSYB0o;tx11qz={se3?I4 za(ua##wiYNCG@r?sK+ow)f_A1v2LBev5E3$XS`*f(zvU7O-3(@W~NmXPu z`P+Hx@>`xw)xzNXA;hiDH)pq%o!C3dRnK=~i51+G&fn90>XF`33;{j=l57C#r(RNv z4|FHq8#WCBwM{Q6gT*_!X?0o-B9DlX;CrFriMIF+FhSwq@Ay8vl4CAfyva)W`B!pa zxOinAeP!pKeQSMN15Cjrhcrk0HgL%2EBvImH%6&8ej$fgQOHW7h5a>QIY?}U9PU;0 z%8cA4BV$Af(x%lx!A14YVc#d_s81jS;`S0(GAM2ZL0nL|jT(t1k~gTUly z+?UI^#c_n_Ypzk}8fRU{96Xy_1XzgJ6==;e=j$X!k+0+-{#=ChNmIUs^U?N(=aNG? zhN0KC8nl|2=rP3-aVKUF@5;vP_^ zjFB;8`1G+~`ZvvQlBIte7~SRzEWP*O3~K1*{W*3Ou?C4@k$JTWY9y?F@#fIVi@iB! zyIf7|95K_I%CIgqJu@8<$373-(3*t9TD)%Ser$&GHQry9IltvlYFUz^NWuBTas)W1 z!voD}1J-@HOzsC~FIw`}k~^L_n%@YQM7(fYF%a*zM-FAmJOR6WergSPSy2w&zp~%$ zWpK9os=jgBI_+Qls>?1vyYY5YX1?7?*D}|9Tlv)9v-(kyk;Od>w@z<}8N;yj-SY8< zWm@xPuH%q-&SCKmEvwY~KVy_-d^fvUo;DNVNtY|wRfYS}qam98B)ak*!3XNu(w{7e zY4~~<+xcvM>rS7hXtX$G1y^%+25lLc4q;LDxpyo=9kUQJAatssBtK@%Z|V1l-EKNW3-WMNOqn|6SjXJuZqd2B$a%36{j@o=B^^eMA)N_~7sim$p&RuIAv7tViSC ze2oxQJSn+=jbYpS7r9_Q3AsQFd59-i^V8ONfAtcdXI1>N?m1IkuTr?Nw$WF+?uX`- zXn(#6PkNo_m9|%zACO#0 zY98T@lC$6)%YMbSz%M?1HV+7{Lp3(0A?oF)Hd^g#?e}xoZ%5(OUo5BL-PviD(-6tLtJ|R^H|yl3Z0-xj3PCQ$UR>^7kn6-Q|AEHAJ{uL{9DxbBl&^)_ zMsxPrd);nxjDA;RXMcK6SJ|PyA#ZM1^(`)SdGAT?P4np%?d>nODwn4~?qeOL^=bB6 zjxye(*)q%bl>0WzbK!CAp5^h)S5a$yj`8sstxCtyw)N?#PC7jmS5g$m@$eLTizkk& z3AR-G0y*-I-brhiAjA#@*JTKe)pG$Pk;^eOz-N-cr4kY zI8GE`S{z_onDACUymKPp$ zb4x#$y7OqR*yuVk>poH}m;Ov)eXKX;vG0b=^4jOzu5-c5`3b+2dMuU$?`oc?$F%Mv z{6hTaH--9L;7De?*Lr;KclP2n$$jiaxR4rU>pr@#rGJPq5Cx+ZbkiNJ`rB(i5~`rFgW9)^!2U0q3w*D2pN}+( z?ZdracAPm0-JhK_s(tAsPDQ-i*|q)X+j`mRR7Sk7(e+1kNA|;eYd%M0;NXd4!8$Tn z>P-CpD;=*x~xCztvoim2@+NrjthFBPWk zK-XLtV~i+7e~)jyWnn(*s0oFw&dU3;i`w_~ZraIzM_P-Fs>`xj$@1Y;8FBe_*T`wq z_qxa)-lTJFhvs)zBlKGlh)|xEIVF}%^fIz`;>|3>Yc(P?ktesW(O%cC_vsz+fqdwD zBhslq;yvm3-BUMWJWjHv$k+C~bM}e)wNqDfPy$cQ6{A9$QKOf5@o8P-UIoJx3d?Qr zx)`R->4;3^l5Y`Jr~~y#o)>j}kRW3^elhRxrlYH}Ywk!xAYInoOBknAI^WQjvH9v- zj-ygGK+rSEVPEk|JZ;iAUwLDcLxTBy(35UAYgijo>yESPNm7l`j;C(Fcw5CkD)p#E z$GaaKIbI#--H?Cv-iwIy>84&zp;|K%3!t7Jbt#wQyqrF@mLzIG-GmQLwM9|#R*K!b zc575Y=PmBuSx!DeNV0ORmJ|!!x!3L0U;Brm)N!?Fx%&3SOaDlEl=u!g7tT*u)rw>{ zlbR#WYxu`pk$uWJB7^n8P7@Kd{_f%Uy6n@<@eS56J90#+)_uou+-|F>maLJ;a#=?5 z*Yrv@h<8^`v##t@%6Ve1C~tf@{n)3H-~9rle?$tka(tFsccBm0KO<OPX}CKoa|@iecz9~6~{ip;!yiL++QQRibtA|lUXPuh)B!KZ~H z?1qnxmp$>*Hk$3uZ~bg!7Cox{&JTU()XWujtu^VmUx}q^>2{ht#d376IF?4+%3cfU zv)|d~X~gw+PPv?x^;lEEmSj77Z+QIqyWmgf$eC{<1CfDR?n4aA=aToCdGh=sJGI<{ z_(!44)JW$d+MLeFX1QYed{ai7j?Ot{?BulYPI=N~x}AepwW}R?A|GTt+iO2<){Uhn zJ5Ib4W2y|X^kiqr+1{sdw`6SOoM-2Zg{yQAuZS@^_!Jj3;uPs=Sq(K+T${;fnmC;W zO^A3+r-^f|eC~-17AQh|>vU3t{hl$qx#S4W4V)h9xt#k0Sr(jRqsrabUUWI)J;^~% zxZTt|pPoJEcy~4XdAzB4Y`h7@`jAE4 zDP$s30Tca8^^oDw#y$zT$#=9Sd7C+F^R$dO-gr7Z!YiGOS$_=@+{*j=u$h=UtVwIj zmNbnON|q-U5_5+YZH;+aWGeM1zis9_#`tbY>a2fuW6YmN!@NDy3=Z?9N5yP?q&^AfhczMRa*5inzfOGKw7~ze_EvRSX|mk=<(!Y}O02sCf1tCMccqEz_3^IGT3(XQ zUGMe4e#X;7$=n~o$C`uF;I%wZRoMTKosKWs&xd+<$g`#o|0y6fl9WkH$$ zYiabJY$x;ndP`K^$IZFCFU0?T4|}QEu5`Z1%`V$=ckSZ^$f5okK>n=z8o)os@8BdW zRhepj!Xw7IBVJEczxC#-{}4|Rw@Gzn$kyNP^aStfX^-)bS}{a*QjHmM@%KCZaj82| zbQ(s^Og@xu@5eg+C|OMPEUFQ%`}_@AC#S_S3Hz$;&;WRAxdV^ljk}BoVI3`r^&f)MY~Ut-DQ36#ijDf)jDSvi6djvwQt> z+?>H%_mkS~xX)>b@)&c!(aUdasI|XGu`lk&qgwy!FJH@+Y*~}ng!}qikzY$H^{q&1 zsja&eNgl-G&X(`{v1B`3@9g+>_r>#3e9-yj^?Jz1avCB&`H1$!UDRJK{j7XMdtK)B zdh2gS^rVZ#Q8%ESS-_ZXbrCr#0-Tn4;*=S6YFabISurZqtpD6Fioa_w(r+~A^BN=h zvvwY-j=cV(dDfhbk4^>V``S}{G=TrUb`P(v`6wQXi~5%Nb@9%+TjD9dxL(UCXL!AN zKaC)=8}kZ1Lp#)IbdeFA-ewnac-ALLI(=tzf6AEu*=<8x^i1pdDW5Ij4r%I9fT*1!6BE9$cT(H5}&L6VpECwYzZEel3L6#?F&6{r5A2^D$8Y5$U|{*}=he zA)Uh)9-6O^(%}i8j(JO?YwMqwxiq@dp@+Q2uuq8?qF;TMVrcfTQi&p>X?=#`bj+XM zF~VDkhb6t=HsZGko{mw)i5|bT`aee`N}TMu)a~i~pHm}MzUXvx{|z^>-grAKbtO;7 zd^zWOSnfOP`m{)Vzf*+>#sk?&$VIZAh+TT`l>Mxs^V>0hoTcM^pXj+%C5AJ;-d$zS zD^66NjyZ-7c*x{Z?rZ#h%gK;DMN8l%JBN~NDYC*&$4H4*Kb1svrSYK=Qtj@xJZIN* zJ{==t$AF5bWuS&Hlarid8f zbMa(klcrJbA4aZ*M*A1>Xk?kD5uc7ot4H3>=`gpRhFlKhi7UhO=Lju;PFQaV((>xo z--iS1b{6Al$zEgxRMV*W2K=d=gCmp;T|YbeIK-&9eTZc_fRmKO1BttUvag8-CL8JgBHh zWOm)-k-YEw2gRKG-XCxG{#a3ib@%_ilTODz?C0w6-gs=pbwB?_rB`*Alq z>+yeX{11Ki5AucV57!gl*S9z&5vOj*n)NRB_Qp%<`5W!u#uZmrXaC{M22g+M{_@|W zZqmkD8g>+<2>l@VQ3K*{KKJ zwZCrstFF3M+vBds7)^=Yrm*$8%}3nFjNBG#)KQz`mTV*ZP_JyPj2aj3KIT)&Qu4~b**LfHYmNWM#>j_SqY2W;F!OyYc zeJ0S`^A~j7mp%4PhYMMvp9vf02=2(+A~)e8*YMuo_!r@u-w)ca1c`EobljW&q}b_kq2oQSIstgBLbl z+jyl(bMi?()Kh3I-fIazoa@HKjI+DX%s$aLod>+HS&Vnv>~)r@qkhZt!~f|T<7oL04ETb!xgmd1_9lWl=tH)VUs?u)WN zUe@oBY>($^ZHs2u?{ow5i_F?w&o8H2qmTGRCZeBm$!$E5p5JN2-|DVoI^coyM7n*c z-zWMHEsI?N1j}yD7$g1NDx~bDzK3R@$~y50YOb@_{-~?BLp+r|>*u=0C)pdE5PP6c zpL)X%Y|T@QB|gc}ebm8tedCSM7GXa`%lZ?$%RCs^$K1Ea07vB7DJ%i(zr~s@c(KMJ zzJm?A3XJ%FN4ykxmHqA%Sj3y5812JRdYJR53i?2_hXa@ksQI5TKb2EO%Y z;5f?$*(?74)^{yPoYDPJMrDWiDE0i8Ibt^xE9` zq?-@ss2tZ=e>ptn=#$PmAbMNZ#K3PM?{Zg9*>Ad_e*QXhpG1@CHTuLNJZ`V>@Ayb_ zyVE^?+R?POZ@CJe!AnP@`cz!{mSY>Q{&OdXW8V&Ju1f#X>p>$8$qVRf*Fz>Wg?y`|%^0+xyQzbqg8^(LfR zq7zTTqg;jUg7srOfd0+Odm@V+>i9J$Rj`E$~>bhgI>?>~SY$d(hYTwd#V#oa)lJkPW8uZFx9KYTG(zEUw zqjitvTl&H~bFB72>+O4aK-E=TQ1C*$+m*&KI;ip~m{A$@N{^%J+2)t(zn!~#t z$>*(ixrgDw;q~tJ@x9mK{%U`kH~}L%FWvM=I}8V!omachv=eY%le zSjPTJJtY3!?#{=ZRlMZf#=md;mp(ty@2>|rioK(Q9;Z5HzdEdkvSm(kE+T@^Ua4(5 zc*R~6-AiA*j=-;CCXjeZR{W#R0RDD+2Fme6dAy02^t|&L$r@odn|Je)E7kWk+OrZF zV2jomYnNU_&uvO3$Bq#&wxxX>UHdV^37>-Ovy`JXoErwWx3Gv21}y4wvQx(U5y;D9 z-z%p>JXcDCA?SAm>sA+S<;@Y(An$Z`#1ly>GOQj~a%ZR~BD%};F$6o=j@y!Yo5BLC zCSkK9Y5H6;j~#Gw@R+GZ66R=hCo^er?_@;A*`=fO1Lyshe$gvfdhFWmh`&EQ{OkW7 z>Uukit<~rFtgmKVV|~mqrXl`X&1l-tk28*19`G87Brxg@$}7T(%_$N3wg#rSNFNt%Bh zu%FxO`6TE4vQ{ZMSKnyfBkStwp@jeMw{nN65p!<|L6%%P?^5n=PVph9&2YWa%k0GQ zy=Zg-RuSGdQiC77%qbb?$Cv-?K>S6&7duOuh|A9*M;P-Qc3RLgKGSF;U);OboYcS{ za6aL58*OL6hKl~kZ-)=_xs7}E=ay)2RXQUgXGnPTGO;=SCsQI*nK#ZmPWO$hU}x$PW3jbJoQs$xXWTY>Rx$DWx|PqY1fFOiqJBgff2E%( zqfXgiXLN3cGc(jKCG(KjUEmn`r+$wMI}&u0yD&N4DOQoMizJnuRmCaYxlfmsSWVk) zvDI$b7&{%V2}!2>wZsUBxx%(Ldugy|-ne;XYrvsaYUehjtmuG@Fh?8M8uzF1O44yK0xYmUUQHSHUW_kx zKFH4JRBFE3hb3G&Cw=^q)GMDH=U4jvIi+B-pChjOV`nQ-gS2&amVJ~s_v@2wwpXxN z$`iiJo&1?5y%MM7b5?7vpF?6VnscnPXX3;b-hn^&BKAUUarRD$aSY3B&OoK-k{n!( zgf5{c{w}YlUM+q13Y@S@Lyix%TSkt?$)+(mG}KQiD{DzNEstgxwj~-7y^uEdI(g}R zbmsVBG5f=krtD)1-G6Q=(&F0oTKzfJW=YSfEAi~c+ueNaNk=`EY{MHPU&2`z%yz^c zQ|#$eX)|`DKh?S=yMky7t;-k;IUbx12gbX43J$s7d9@F9?T)TII=p6$`=R8(SAxN} zmnuA%`L6}t?ZSQ9de=b%D)gDpGte9wRiLb&)w6v^BO<&@_Em1 zWFO$g+s@nR`rFnx*#V;R(YN|cZ+YEOE6#Xg88ff<^q1$p60P{&$CNA`q;j5T^KadA z4gM8mLD*Kd#~V637Zf0~XH&CqQe(i*e5?!_{yy9o!*Hv!NqKgeF_S-q#Drp4 zR8%P8O-|lXW6odcM!YCv5dE+^s+3Vf&n_zqi<>!P=CS^u2{XwZSC7D+gFCi6KNw%> zU?J5k>5&N7o@6-j#?O=!nR<+ztQ~BM!>l) zOR$FTw+L{jkD2?fTjaPn&Tur07I7LQIqJ_c7%{KM(;dijWQZludC42j27~|l>Wenc zNk>4HaXnF1zd?e;$zZ%@M}NI?og2!|K2O}$Dz>ykdmd;FlZRbKoLS|cNn-6Nhig+6 z4tBcyOiq*hx;jOcp5(cg8c#Bk;G-0s?5~{QYtC84D&i@=`Q)0{)M|JoayL#Fx71iC zeqsJ^O2ZRPeXNNynPolqHk&MqPENZ8fy)8*uzckkT$!(w(<82Krz(0qYGN!?(!R zO=G5-CU@8uU~KpwM9Q&-p6NT;j5pNBSKZD@WEt2BKXaG?Minuln*V=$=h{-&5ryIY z6fxRp;Yb?j7a4IiIgJ^bIWZY`}bFPwwBed3FA3QCRX@S-+U|m z>_DH;`_QlPaKRDUGYe|p)c3Xo*d5M}w)B|_Ai&{zXH{|?^NpC*ZNY6LMbNVIIm*&? zj(}|w>YP;*&+Xc&cLm0?tf0Fe<&y=i*HuZViSk^uNZte3nQ@w^9MjK|Vv2W@1!rtp z5nkZeTwPEKWd!Y`p9)L&_D$cUtTl?p2aly5KMbH=7ueQ3eo3~o6uR0

lws^-qJ!3uaJ?vI)unw)*pV0NGFckR+ z?Bcd!C$}Ygh+%z{_H|!RsB4BszM&@@`t&-zi#Pn0BpV}<_u&5UU0`Auxw_GbWI-0TY{@p6SMNTq4(FUC z7{P&?lHrB=Uf#dUdw~&j%DE%9nfM##__vtV`vh%fVLWK!Cvy+HVRwz`T`Q~BYyYAby5n$5c0b0ytR>kG z(Kh^1jC`i2z{{FWQ$n*Bn}VQq5n%1gTAAA!Tb>Hj!4@jQ?I%sUAMV6*p}n(bnPxJr z46n3=WDO!vNUXBfu7q5@T@!B9w#4#BTXMf9|9B>7;SB~u>w06qE*MnVq@{NCP^z!t zQEOAC=``qmNxI;YXqnv`)~+l`a%K(hvMl2yt;A;jKGi!*s-Nu*E25N-(#n?8Pg@Ji zSoTGxW((9dH4@nz$hm)|g|e$%iaN7xNsD|O(-;2(x1S*gw`6B*>#tL3-oz;(Rhkq# zZuE9vVy%pOL#r`mFP-}p#;gO~01X3;jChubB*st5_Vg#D7}f;&LvTqjvN^k<8QCTQ zi#@lj(PWFU+>dCFjf?y+XPt;^^|#Nu5VmlZIX)M-9AaZvLHn}LOU)CGho^H#dyYTe zv2x~6C4YcNpJ^q{%Ct=$0)IZ!{;`KcYYrIU>2Iz-^y6jqZjK8-H#a0-a6C`@6l=yG z*{x^Woafl}?+aTw4azx&^|jyL>bvz!IFp`j^|mQ@#b@3L3ee15UA@n{hU??b28ZY3 zFUVymqkVdHS0PfXaxyz+FuE-@I4-tlX&txmuH+8WQ^-|$#G&v$ya7#acwgVl%K7YD zuCF5Ws_AFk$IHgdzK?Ik%&&XyeVk~_-21rBP0hW|N5-t8&NFUmJ#{WHW<7O^AHSZq z-G)_4JziV5zO%|VQeySvKPmN<_9?)pwC3Pu_zC;Grq`v9{d>W&hHcFnSN$AxuG$(o zeRZ4%k``%#mfDospGJy=7k}EF?Bj0jnTD2GTd_U9L@&L&<14Q7#A(*U4fnYp7H1WoxKY>G(Bdy=S&K6yhz(%^=FTTgxvf%O2?swWK|? z=^GWs$GpNh_^rnjJ(jLG8$=_ayb9ANSQf*Ha=b(67oIp?q>$%SM3?9Ff9W z@IE^Jz?pQ`+8l4_6FM?i@s{$w4{07T2Yk2fyQq9_K+Z~zR^((HSp@<|MZ;8DBk9Z$(d#+qh$%-h=N+t zw}!P(Ch>2cC>DzGndjlfTXS~LissD8-(hO=UTuL~b4A>)?0H9wCF8kbU%;37mnW*o zw}_L8wKd~j$kg~CP3RZFgE$&Ty$~a_r=D2xQ1QCXxQMa*Uguq#I_-U!_Mxv;&Y9s` z?xiCy`I&w>C*~IDSL*NjaGVzzugG>SJqC+9nO{q|cC3F-6kmLxzEO?yKy5#!6YW3M z>R8mZBHRHMraI!6-lX*$=`VcT_7_vr504^v^hj^)YW&eIS}msD@u|O0eCxKQjN|q@ z_K|*GUDvzdUZteTt-BiUVuHKR$`%FBAN0e0&cK(P_Gfw%l;Aj|2l{&{^$6V?uRm+_ zE_a_AZ?VB*#@0S&*$-0?8kbMwgZiLc=%+i2pi0LgK%u5*?9n;Rtbg4@YihnDGQ5e6 zA0CT7J_#u)deH|qORqq4WG+#Hg41)d!yiY~J`;EmRCeRkzI2zxE4h6<%2d7{Q+@Rn)d zQO*VnHF&MG60s6RUiteIvH zh{vifu>kHf$MrGyrQ<=&)8pUto9C+tH?9yYdM{M#e2tVMQGb-U2T}RbvtXN$TM^j z*T5wwJ@nOPJuuo#F02whAw4Jh1*fm3+lE$IYPZ=28rE;&So}-}59rxGD>N_id9dy; zht5z71JfxtUZ2ce9%>YHGt1UW3A1(j&w zp{U2_T0U`~)I?w(?M2ONwmr!hd+HbUi14nSh$q33{?T)|6V|BXtoiOJ#lRZ}!l%%e z+vti1P(v9rg#Q}f4)>svbGZ!(?m9}w+jf5}ed=4f5@PhoT0(H4hZ^6O zGIKvZhevy~@QuF_e2^pd9#VO{JMwVb{+Z&z{Y|qlFJTsVd%NTIx9cA>s=RRD37%5+ zI`Xbe?W=mq8;|woXwyHIz0q$puQCfDL$dk3#{gT1lBS-yu_HV?akCB9Xw1Mk0+%j5 z8}Y3%&h>uq8luCX*^r@R+~IBPSnTQ5D}rR7#(cuQ7owAOWk0t$SwIj?c?7Q$A I=3RZ}KkQBNwg3PC literal 0 HcmV?d00001 diff --git a/.ci/dkml-compilers/pc/setup-dkml-windows_x86_64.ps1 b/.ci/dkml-compilers/pc/setup-dkml-windows_x86_64.ps1 new file mode 100644 index 0000000000000000000000000000000000000000..e9ef297cc4d0f56a77be70b73483a43506ef5efa GIT binary patch literal 225274 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

0tSVL@RU}zQn~E{h2D_ZO+3c>S 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 literal 0 HcmV?d00001 diff --git a/.gitattributes b/.gitattributes index 09de0a89..783af180 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,7 @@ *.ml linguist-language=OCaml + +# https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_character_encoding?view=powershell-7.1 +*.ps1 text working-tree-encoding=UTF-16 eol=crlf +*.psm1 text working-tree-encoding=UTF-16 eol=crlf +# Other file types that must be CRLF +*.sln text eol=crlf diff --git a/.github/workflows/dkml.yml b/.github/workflows/dkml.yml new file mode 100644 index 00000000..92d2e185 --- /dev/null +++ b/.github/workflows/dkml.yml @@ -0,0 +1,102 @@ +########################################################################## +# File: dktool/cmake/scripts/dkml/workflow/compilers-github-workflows-dkml.in.yml# +# # +# Copyright 2022 Diskuv, Inc. # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); # +# you may not use this file except in compliance with the License. # +# You may obtain a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or # +# implied. See the License for the specific language governing # +# permissions and limitations under the License. # +# # +########################################################################## + +# Updating +# -------- +# +# 1. Delete this file. +# 2. Run dk with your original arguments: +# ./dk dkml.workflow.compilers CI GitHub Desktop OS Windows +# or get help to come up with new arguments: +# ./dk dkml.workflow.compilers HELP + +name: Build with DkML compiler + +on: + # trigger on any push + push: + # ... or trigger manually from GitHub web interface + workflow_dispatch: + +jobs: + build: + strategy: + matrix: + include: # + - gh_os: windows-2019 + abi_pattern: win32-windows_x86 + dkml_host_abi: windows_x86 + - gh_os: windows-2019 + abi_pattern: win32-windows_x86_64 + dkml_host_abi: windows_x86_64 + + runs-on: ${{ matrix.gh_os }} + name: build / ${{ matrix.abi_pattern }} + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Cache DkML compilers code + uses: actions/cache@v3 + id: cache-dkml-compilers + with: + path: .ci/dkml-compilers + key: ${{ runner.os }} + + - name: Checkout DkML compilers code + if: steps.cache-dkml-compilers.outputs.cache-hit != 'true' + # For help: ./dk dkml.workflow.compilers HELP + run: ./dk dkml.workflow.compilers CI GitHub + + # The .ci/dkml-compilers "pre" actions will create the environment variables: + # opam_root, exe_ext, dkml_host_abi, abi_pattern (and many more) + # + - name: Setup DkML compilers on a Windows host + if: startsWith(matrix.dkml_host_abi, 'windows_') + uses: ./.ci/dkml-compilers/gh-windows/pre + with: + DKML_COMPILER: ${{ env.DKML_COMPILER }} + CACHE_PREFIX: ${{ env.CACHE_PREFIX }} + + # This section is for your own build logic which you should place in + # ci/build-test.sh or a similar file + + - name: Build and test on Windows host + if: startsWith(matrix.dkml_host_abi, 'windows_') + shell: msys2 {0} + run: ci/build-test.sh + + - name: Build and test on non-Windows host + if: "!startsWith(matrix.dkml_host_abi, 'windows_')" + run: ci/build-test.sh + + # The .ci/dkml-compilers "post" actions will finalize caching, etc. + + - name: Teardown DkML compilers on a Windows host + if: startsWith(matrix.dkml_host_abi, 'windows_') + uses: ./.ci/dkml-compilers/gh-windows/post + + - name: Teardown DkML compilers on a Darwin host + if: startsWith(matrix.dkml_host_abi, 'darwin_') + uses: ./.ci/dkml-compilers/gh-darwin/post + + - name: Teardown DkML compilers on a Linux host + if: startsWith(matrix.dkml_host_abi, 'linux_') + uses: ./.ci/dkml-compilers/gh-linux/post diff --git a/.gitignore b/.gitignore index 48d95161..7aeb30c2 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,13 @@ mirage/myocamlbuild.ml mirage/.mirage.config _opam *.install + +# CI using dkml-workflows' DkML compilers. +# DkML compilers populate the .opam folder. +/.opam/ +# GitHub, unlike GitLab, does not need its CI files to exist +# before referencing them. That means the GitHub scripts do not need +# to be checked in. +/.ci/dkml-compilers/gh-* +# Desktop testing on Windows uses MSYS2. +/msys64/ diff --git a/ci/build-test.sh b/ci/build-test.sh new file mode 100644 index 00000000..4653874e --- /dev/null +++ b/ci/build-test.sh @@ -0,0 +1,84 @@ +#!/bin/sh +########################################################################## +# File: dktool/cmake/scripts/dkml/workflow/compilers-build-test.in.sh # +# # +# Copyright 2022 Diskuv, Inc. # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); # +# you may not use this file except in compliance with the License. # +# You may obtain a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or # +# implied. See the License for the specific language governing # +# permissions and limitations under the License. # +# # +########################################################################## + +# Updating +# -------- +# +# 1. Delete this file. +# 2. Run dk with your original arguments: +# ./dk dkml.workflow.compilers CI GitHub Desktop OS Windows +# or get help to come up with new arguments: +# ./dk dkml.workflow.compilers HELP + +set -euf + +# Set project directory +if [ -n "${CI_PROJECT_DIR:-}" ]; then + PROJECT_DIR="$CI_PROJECT_DIR" +elif [ -n "${PC_PROJECT_DIR:-}" ]; then + PROJECT_DIR="$PC_PROJECT_DIR" +elif [ -n "${GITHUB_WORKSPACE:-}" ]; then + PROJECT_DIR="$GITHUB_WORKSPACE" +else + PROJECT_DIR="$PWD" +fi +if [ -x /usr/bin/cygpath ]; then + PROJECT_DIR=$(/usr/bin/cygpath -au "$PROJECT_DIR") +fi + +# shellcheck disable=SC2154 +echo " +============= +build-test.sh +============= +. +--------- +Arguments +--------- +$* +. +------ +Matrix +------ +dkml_host_abi=$dkml_host_abi +abi_pattern=$abi_pattern +opam_root=$opam_root +exe_ext=${exe_ext:-} +. +" + +# PATH. Add opamrun +export PATH="$PROJECT_DIR/.ci/sd4/opamrun:$PATH" + +# Initial Diagnostics (optional but useful) +opamrun switch +opamrun list +opamrun var +opamrun config report +opamrun option +opamrun exec -- ocamlc -config + +# Update +opamrun update + +# Make your own build logic! +opamrun install --yes --deps-only -t mirage-crypto mirage-crypto-rng mirage-crypto-rng-lwt mirage-crypto-rng-mirage mirage-crypto-pk mirage-crypto-ec +opamrun exec -- dune build -p mirage-crypto,mirage-crypto-rng,mirage-crypto-rng-lwt,mirage-crypto-rng-mirage,mirage-crypto-pk,mirage-crypto-ec +opamrun exec -- dune runtest -p mirage-crypto,mirage-crypto-rng,mirage-crypto-rng-lwt,mirage-crypto-rng-mirage,mirage-crypto-pk,mirage-crypto-ec