From 2078cfb4a341dc5b0b3018a7fef4eba586bd920b Mon Sep 17 00:00:00 2001 From: fennecdjay Date: Wed, 24 Jul 2019 16:41:18 +0200 Subject: [PATCH] :book: Update docs --- .../03_ContributingTranslation.mdr | 7 +- docs/09_Benchmarks.md | 238 ------------------ docs/09_Benchmarks.mdr | 5 +- docs/assets/benchmark/binary-trees.dat | 6 +- docs/assets/benchmark/binary-trees.png | Bin 12020 -> 11825 bytes docs/assets/benchmark/fib-recurs.dat | 7 +- docs/assets/benchmark/fib-recurs.png | Bin 9713 -> 9342 bytes docs/assets/benchmark/fib.dat | 6 +- docs/assets/benchmark/fib.png | Bin 8415 -> 8445 bytes docs/assets/benchmark/for.dat | 3 + docs/assets/benchmark/for.png | Bin 0 -> 11923 bytes docs/assets/benchmark/method-call.dat | 6 +- docs/assets/benchmark/method-call.png | Bin 10397 -> 10483 bytes docs/assets/benchmark/string-equals.dat | 2 + docs/assets/benchmark/string-equals.png | Bin 0 -> 9184 bytes help/struct_check.sh | 2 +- tests/benchmark/string_equals.gw | 21 -- tests/benchmark/string_equals.py | 35 --- tests/benchmark/string_equals.wren | 24 -- 19 files changed, 27 insertions(+), 335 deletions(-) delete mode 100644 docs/09_Benchmarks.md create mode 100644 docs/assets/benchmark/for.dat create mode 100644 docs/assets/benchmark/for.png create mode 100644 docs/assets/benchmark/string-equals.dat create mode 100644 docs/assets/benchmark/string-equals.png delete mode 100644 tests/benchmark/string_equals.gw delete mode 100644 tests/benchmark/string_equals.py delete mode 100644 tests/benchmark/string_equals.wren diff --git a/docs/08_Contributing/03_ContributingTranslation.mdr b/docs/08_Contributing/03_ContributingTranslation.mdr index 7a9c35b8..2cd13df4 100644 --- a/docs/08_Contributing/03_ContributingTranslation.mdr +++ b/docs/08_Contributing/03_ContributingTranslation.mdr @@ -5,6 +5,10 @@ First off, thank you for considering translating gwion. Thanks to the build system, you're gonna get on tracks fast. +> You might want to export TRANSLATION_TARGET, +so you don't have to set it on the command line for commands requiring it +`export TRANSLATION_TARGET="xxx"` + ## 1) Init the translation language You have to make sure there is a directory for your target language (e.g.: fr, en, es_ES ...). @@ -16,9 +20,6 @@ make translation-init TRANSLATION_TARGET= Where `` is your language of choice. It will fail if your language already exists, but this is not a problem. -> You might want to export TRANSLATION_TARGET, -so you don't have to set it on the command line - ## 2) Edit Next, you should adjust the translations. diff --git a/docs/09_Benchmarks.md b/docs/09_Benchmarks.md deleted file mode 100644 index bc87638f..00000000 --- a/docs/09_Benchmarks.md +++ /dev/null @@ -1,238 +0,0 @@ -# Benchmarks - -We'll need a bash script - - - -### and a gnuplot script - - - -## Show the results -Then just run it -binary-trees -### binary-trees - -![](assets/benchmark/binary-trees.png) -fib -### fib - -![](assets/benchmark/fib.png) -fib-recurs -### fib-recurs - -![](assets/benchmark/fib-recurs.png) -method-call -### method-call - -![](assets/benchmark/method-call.png) diff --git a/docs/09_Benchmarks.mdr b/docs/09_Benchmarks.mdr index 92ad35c8..34a60725 100644 --- a/docs/09_Benchmarks.mdr +++ b/docs/09_Benchmarks.mdr @@ -24,7 +24,10 @@ get_list() { get_test() { for (( i=0; i<=$(( ${#language[@]} -1 )); i++ )) - do echo "${language[$i]} $(run "${language[$i]}" "${extension[$i]}" "$1")" + do + if [ -f "$test_dir/$1.${extension[$i]}" ] + then echo "${language[$i]} $(run "${language[$i]}" "${extension[$i]}" "$1")" + fi done > "docs/assets/benchmark/$1.dat" } diff --git a/docs/assets/benchmark/binary-trees.dat b/docs/assets/benchmark/binary-trees.dat index b1e8e6f5..5fbff080 100644 --- a/docs/assets/benchmark/binary-trees.dat +++ b/docs/assets/benchmark/binary-trees.dat @@ -1,3 +1,3 @@ -gwion 0.18819 0.63 -wren 0.24076 2.13 -lua 0.32172 0.82 +gwion 0.19427 0.91 +wren 0.234493 0.25 +lua 0.3426 6.66 diff --git a/docs/assets/benchmark/binary-trees.png b/docs/assets/benchmark/binary-trees.png index 26a4742220992df87a1481a0c21515c3c0bad71b..56d241a542e43e1bbf660e17453865792a9cde3e 100644 GIT binary patch literal 11825 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 literal 12020 zcmc(l1z42(*7hGjFhH>gNfof@mUc@?qjV!JAl)#4qPUS#6p&T{0qGbzMWh4-q*J{M`_A6`#Pz-Bd}pr9OC5%p|2)r%d;RVepsXl;@&wfh1VK*9+>yA4Ao#ur zf;V~$AD$`Am&=F0j@#YQazv0*pAY}wg)^U`Mv#k$jKoi>Zn29)p317`@dqo8R2Dy3 zTTnY4A^Z946A~`fD^$F){d7lO-78nUVWr7?=j<2RpmvgR?J>;=syK%z7S8-cD+S7D zWM3MSbe|9L$`VSL2F-GQmSAhzd?R&?>XE*+TOlbbB!8071o(-e1EuAneJS{L{ zEH*^nIvZnMG{A%)quMvx2@!;Y{7f~19J_@Oz{&7P5MSg72Yi*&|L!M8Evt4X*$MFR zOSN&WLKq7kDvfS}TgUJzZ%un|q#G#2-n{EXR-Gz|5Y)23>(f=`%)I! z40$Y-OqW+w`1$!AOd9OhwJ&)c*Dlc<`t~iyvg<~$6gO&T9XsMP(!Sr?(e+uoa4j zhes7WHJg&Kzm{+?h&fO)oX91x%l!WRd*iFC+4>cw#l^+Bxhpg6iAzgM(xG%}-Ae;S zwx6CHZx!ju((~Nk-Tw0Bi{DXF*)XS-u{sxmLNq!&A_AV1l9WWF(E_%(PsHr8Vm_70 z$&$0=l$6B}IK?t(hmLoyQ)l>gQFuY zYj)+1rJ>>5u((Bh&9Eeu6h#4#);F9COian0_nDcQnPj-Ag7p^b_E8^1y|$FK2GLeM zPmZ6gK7G+=CGq@JbQH{Kr+K^`s}9u?I$JN)QwsN6SS zg1a#7>qbA3R_!QS>3(co@d%TI5?q5)l^u^y!oL-n_xVcAHP7C)Osx5|P5gr#xLb69We+hP^W4(FvCL0?Y zH@8Yy61RElV7WUt6O&|EQky7F-lYSz(psy{5&;jm$%3|(=52I=bsgi{zg+9uPoKK8 z4YE6Dr`i(Qtg0zhjv3xU(!2Wm`{y*v9j8MWWja47%=fA!&#nICG4?s2$G~T=WIBFr zV*?^{swHMoFtuwgMCajPac*kr494dGclc*!#$u9IQ%P*EU@bg%DbSTpJ-w^6tPIna zpE86-!#ByQM~5-CMDxyz9ju8_Q&TG?h>ASyFW|N6-o^SHxMDqzN}W8sEN1y}qNx5{ zx4G|W)z#H6Uc3-JxjI@yproW!KNfKAsz-hoT;mV&Q4Y(aHRa{Plj}vy@*8K^6REn1+z!#OZ2Z`}ZX!+dCWcmgfT5y65FBzoC zSv24F%$t9Gb5~nC`sK^^=92~xfihwGUMrH5{mvTdncCs8vAdA3H+@bOCnoGpT#aNm zh+ve-?wNNg4QJNq{{H=%ZN!rI;`(f-%DsCXot+SMDGD(z3%$9aqB|B)04jt}7$&{) z^r|>oea&%mLCdek4lY7Ug15F4YjrOaM`Jm0@mjd--z_&v9H%9E@Pi)cJ|_C|f=Mm{ z&iqmJqj7ymKo%k8{7nKPPS3?6Tv!Ixm zSg_PNdU^wO^=`Gcsi~>jXQXWjVg`xrM~)m}F{s?lZxeOQV7+$jg^xu?k_?*w^hcss z%=pD5>(_5u%zS)&D)fDz1S<;pZ2fp_Yem*|fz9a6^iwchQM?d$q<2uw5fVkRCfpWO{P)slUIJgv7PL;o)H-ze~_LIuV=t zp&`BGd%^T#-ga_frtWq}k03!;T*^?Xu0Nh5Z0zi$#Kev^$4N=snwza`Y&KU{=gey7 z=H_UHT()pH+ri@Y620smem=e(9FASD)M=y=1%-4`T8(Y1jSvZv$P$ooth1^n53GaQ zQz8jDZ(RsQKZ{SRz~UuK^G`qhl;E}62rVSsswa#wt!pk$$d#OeLWdENl?CUHT*JbH!ldGM1BV0DU%OyWNCT8Gk6nB1J9%Oc&Cw55@ z_cdO`v%lbhRAMf@nt)G48hs1_!f`t5*l0sTLsOINbOa>q(ox#}l+6G4U?C6TL)jBn&WJb!+|G#83#P7cSVOYisxL_OA13knK`Jd0_Xnwp^Q zPPN7fS)lQe(X;U8pFe+2O--GcnE3edqrboZ>(}Se+Huj*A2UQ8r-E3T`}+Et#+b9q zS5w6H(n?E9A={x>TXkooWoM6|ts?U_(LMUjt*u!fKf*iTxOPpm!o%6na5REdN7wE= zf{t}txzGX9@z zqe~oipQa6#VkkXY|BYVJb{wAyS-Mm zH5LeW4)RDBT8h|#Zp38O{zkTJ5y%~bh)ILJIgO^VgWa}+hP>UCdU`opHYu|6=UKE1 z8U_XidU{;zo|E-t8@OidOtSl2IDPut?-i5tv**LJdwSV}??$|Fi_giJd8k@qY%8zJ zbabU_Xk=(|+K)-FvuB&bcmMR1IOJs%lGst|Jm0_9urpQ{sFA6iJh(sVNBTN@*4fdK z_|z%y?a9dW^mNJB0!?SC8QS{t&3iH+{#v5p@%8IhD6KcWHRcZQnR+@ziYhrVF>!q; zJ*IqSX{plg$0rv8ayY(T>3ZYUgmU|FDH)kYXq-@bM|a)w`>b^et=(~pMOK!Ue73{o zkOk1@oMuSRqrRn-4V&dd7rV~O+hvqnez1=-fU`U%B!1mC*wfw3rdP_t$G5rGCgw`g zdW6zS-+hv7(#k_eTU#+sP)$dt%(^cRTBD+qUSbGJo~r#Q-MMr5kW%$ypg2@-9Co_b zbx)ogsnE|J?4EV9t=cOrE5q&Ku!}CZXkII5#wi*7MYbalDX$0Crdk4@KX)L}G%yhJ z-rZ7&;kzE#({S~JG;$f>kn@<(MHF_%=dDzu`LB$jkf?{Q2>FT zpgwu3B(GF!u7R*6IC^S#t6r?zf+vrKxs8M0X7IFLkHt7!DYC8r%?jGVRi*fa!5It& zQ~Z#Fl1|ji4LV&|SQw-?{oahUY%~!e;ZP+?C%dPJIwv=`-7FtXZMQnn2<c zK|6*8cm**!Fb0-3$Y79vnJ zT7QHR<>lqIG*X2bbii#stY18LRk3`3XTD7Y8=IY-%_zffJM83)GA0O3e`&rnShBsn z9a5KFwO=~a#yY>Tv%9-HHfB_xZzm%oV`H-f;VrmNv{r0C4s{V{aIj$z5^=CMa!}#6 zVk9sBRhjOHzeK{4M;*KXG_H*en{Dm|mD{&(+YFcYegB@svcHG%ajpEc`+rF`UA>Xs zTS%yInJWe)>u{N?E!?1u`5qM&73eoI)2E31YAkp}-Ii}1Z%^1?PZ1Rrefsn%ZMGQm z=0cx}wl-vbH-!G?e0G(7zF9D2K;gpyT{{*^T~x(9+3f6WcsMkytjyF@3mcnC@4X#Q zkY9lYyPqT_#h*Z27Zw&mha80A4r(>bL7^cbE*a1sXF*<7LZgOrL3k7w7OESjB~s!E zud?Wu-@JPGFoy;--;+I3;+UeH>9X&r=3a=JOG}|iSXYY=5vnAR%Qa~XgBE)s_zMVC zkickd6hs-!fS1J1k`z`BZ#@5tAXDe-nRS9uDI+b-e%FX!DmhIhWolv~R?yk9>Gky( zzK8dQFD`0&PBgqEBqpEP*tx)M_BtZM%*5mvi}QKv#HuF#Xz!4mw6yEju35kUfGJ-K znbAfJc}Ay?wU@vbs9bGg*2va>Xk(L=nyOjmvIq(A>eVaB9ztY>0N-t5Wn&{aAV5Y@ z5dzL2$FK%|3^mZaHTHTb8*+<2D4sbN#TCu=69Ga*5&0Gmp+x^)w0Q^NAs1!B7@Ng3 zCxSnU2ZOx3(}4|OZkEUnv^!1(G7rR`?~kzst#-0IVLT*Fn&p~ycv&?U{yNxKGg%-B5n5`au^#3Lieea*Cc6Npc$y{4o>$KomSy?ePHPzd& zwy}XhaT%H!FO|ZrTh%a-is2TxH6l(R)o)MJS3_}us&nO4T2j(yYd#zf2dSV_WaHew zT}vv)6Vn1R(AIXOQcqWRVRrVyxpQkE3|s1WL4(}N8?vF$si8mEs!vKvT3ucJ`R8LY zVbE#t2?(HgbdBsz@r&4aVunRB)yp1qe!vcUW-AGWo30!^g)GL3Fqc05aeu|AhOqbw z!{-FNUzOmES!S8AqN1W2!-kfY#g;;-i8sP6cehr=wJsuvpOP0685#NP=~IECC(oY6 zw1D27TH?>h%2Je(S;1mQAQ_d(kAW~fNB=LVJK!15D&-IL@D@_oXDw1#0DR#oNVHdt zP^XQIjoadc_)WU-5Dv!AM{^WY^0hNtS=H0klJ7l0_uCZ0xE>?mXa>Uj^>q~&%`hJdBVBOdda{{BSu{f{5xZ$G=D5IqsbfFOn(C6|45backY#^kT4$jAir zSwp$$ncskkZLVMq=3;2%Fd|_FOQ1HXXlfQ4);yk?GMg4nPEOv$z=xEKo<uDJoyEBQQy2@7( zgl+se(%RfieDY-Q&p#`ZS5#D-Boc=ROo{94=m45W8^~?;^#x-iObe(e1St-Ip%6F% z%nv0@!oq{rd_`qBgK3>9N^&FhIez-t*yZJ8$By;p+^^*y@!~G-fzH9+-Pri} z_~834%ZGeA#>U22YCayGg~1YTD9{^oU9y4NnZqTH=Jxivbw-U%O*h!s;`wdq*a-*_ zDH@moTFmBilM_K4fLzM0tQ2KtZf0NV!Mrdu&29*=Zp&uYURRCA7;{R-hfk$B)~`_P7*4@r0`_{_Ir6dWW32YWPs&=|z0RHwy-} zb7#-Oos^V(n%4`cPE+&Eix=P24nTXEn3yaK6k&q-hiAMe^78Va`~ev_WmW>YEuwM6 z&dA6JWFO4PYHDiY;^MNh&$TlZ6%^FE;{_b0A|@9WtW8%)eYR>tXoc>nsKA{OJhjnp zm2GNnuA!#J%gYPnM23EaAP0vX=s&ibz`KcFGUNBw)-u54&%?tbC@6UCT54rwB{Y2? zMR6|P*dbRY8CfMI*Zs;yxKk=xWhmSx=uc`AqBzA!805~KGv=Y%=97IpVzPbo04Wao z>)>=N#YAfikCWzai}T+MQh#L`x`&mZlv94#m7AvN^nN#Wb@;E)V$E0&9dJw zoeu8{IX)$2=N;W!=MQ`Af0TLu^DO@d#J%>i@BG|ccc#wt^mIzQ1;luBQ&Z`jmY!Z* zLwAi94pIlhX94iLq$VC>K}oVk09dpr)TW^Nz*C)03LSALy&1 zP)c&LyQilRIbgF(GGTqzbUR$|a``cWzs+>))Th4nVy;~d=^$YyB{8E`49@bN>CZ(?KYKS@hTsjI6C7U`C`ure|x#jN#b>J))O zq!DzQNsiQ?!+I|&?uZ;ikUa*`ecxVnp)SlZ!f~a-m9lW z!wpA+`g>_AAS9%twOdQSp92gJ41|IL9(yKGIm%-M|4Oz+#+7eR#bmKwKztvC)lV_M z%@dX)rK$bam;aubl8>C7T_EbNHwLz-))_~TbRfG^8%=og^V(1 z=^OBo9tPj1XSN1q&R=xx;Lk$r$-}V64;YV`UHJ6&x4NB zJ*Pm{0n92YEc{Ye7bX88EbMH4-vR~$eAjlUwCln2A&dZI%*n|KluPfVrna`_fxe#J z&KGjV+uwIcN?z!Y_kQV+9ZMd0>gnh{>)_yE6s>HgIyCJq4CFdv=9%6Uhm103WrBf?YeVRPI z>*Kw&0_{aa8c5-94X-f#*M>)$a~2xj=RY*OmDN>;n&C1d*ULE&i@g)i|4fE{s+MMB zW=>B_ixP5Os(yx#REO)HsSXGT08ZD~*a$7{gk~%BU6YIM0d81ps;bP zw6A0{{GU8&$Se2ScKGMq52gz5&5YhXQi?!|z^q$5W{(M8J!*V=TJ)Umt24V)a1s9f zrs{wFJxKzQtn_r4*5VQp5~LCXLPOb^ndd(^{`6Cg|4C{u6v|W!0IY-7OQ?XC|50-i z+gtAhnpXe$bJB+orNxSeDq{<2ZEP%Yn3Od$GqbbH0Z;{KABY_oCqj$DKKoviB)x#o z>zwfsj-NjtwS%$`C>PLa-pt}6kR}+9>eLC5>KA9}t0yNXVXkRq1-A&MpOO+SRT(%E z?+TuEu4ccU5}0{>F`2o!cmMiyexHXm9%A^~o4-7SWucO;D_4ip~pEo6)PcPQM=-TmY&vzUx5cc$*NO$C+z&$vzMD!VdmD;;exr4X<;QUc@C|G`aw|7OtsY02MrX8X;Z5;qWqA^$7c-<45SLXi;>{Z$$o z8q<%(Va~FHIm_`E|0ygg>H-bT!t}H&pjSYX>+9=}Tw!Q^;_#;?lj~?4D42Ip&3+%6 zB|dRrJb*O;tOSy%61w`O8`Lmzz&KT?$pTESl@-XNSw1fSZ8RW(e>&Yn#{GRK=yW<{ z2;rb!4r!dCIXEmj5b3hX9hPW<1!2$41)wH?)Vx)hehqj`J?NhG80OYL(goh?R)YJk zT*V9o$TtRq_PBxE$5rpE%_7!DRUxx&v}mK4asj>X|(4B^kd)ufQS0u zeNRIPB0JC~pnsr_@K7lLxz^H(nt6^OGchkI{vMSJ$Rb93MJe6!Vqd*-oNNjQPiJ)0 zP)w`}wlxY13X)P%0{{AoKMn-CxoW`@M72ikOoqjVT-A>nN4Xf-ePP~)O^8^XPqnoz zX22!#Q^Vj8>2QeO`J+;InV{Tiz^}lhAIb^^+z}>#8SdXjE{aMzV)Ca|7bHV&b4~`BjG6AHz zc+qfsbut098D;!1R3#aA)EoQi9d^wwBj0!ns8v8n2%wkvKI^RPY$bX5bu2bJGjp+E ztuBxP$dH-Y6v#(L8LpU?Rx2>glho6JO#%5G0u#&Uz*{B^4aU8evZ(!EG!6(9uYh&xi$&l$4bJ)2D}6r*}yu-qjk|Q=Q#^G;+7B@msU|F?_e1f-Vbh7-gWWH;sX$ z0ZV8YtktEWriO-@E#*V|^3YNGP6{17FmS%5pYCXAaPZ0F#~)Z(sgQ%SIXERBD_}uMV+=NySivjck4km|dWO#!;TEJ8Q<~N$$BX2RwPf3|x z8L!7Vzn%%-7vaA4+8}tK+&w?9Hzv&pGxnEb*3>Y~{J6%>&JO(M^5xrF>zkWk8-gs_ zqii}{e6aLkFDom_Z~~M`t_}FFF3#1 zESqK@*YDLga{TNUYI9`SPW2Cyjo^3KXWQG`=^9SjK#%QKVZ401FPioJXCBStfOhyD%=p_`Z^}Y3Rbz+=p?~vFfo~^@jD83 zX)Z*Nq=WB)8x)27#f6znejDdVd4Gc8OrA+O#=`uTB>{%H7hbW8Bw zd0=h5&=k%Lt8lF3&6Oxzca|QmUTi;?-^#N9g>%X8J2cN>`h_F(uUxgOZ|H@RzFnnqS!h-CubM)(Eq% zt9;mP)+RuZ6K*2cKl(;Nv-??)~ zZ2t-T*Bbl&E>Kt$Y7gq7r|tkXY>aNf!RbXjR5diPZLppJRJ~QHhO!tg&ELQz2Utqr zgWVtSV1-1{?f?&f{WRuzO?{0LU7Xok8HXql!}YcGclBlIRIv}dWhQVpvx7|wVqz<- zVya?_Y=V>E1tP2EyP*hO$k{((#G&s%F7=BT$;rt5C+S?sq zEe)!W*k-Tsp0I-x#|v|RxYDq?DtJ&c)TKIGk#(i^Es5xrpWS|35V3&L|NOZn)*crf zO=X(78u2NFzIb7M@hrXf);mTS@LWq#xWd&TaM>4uOF)d$>~48*<^zQ_x8HY ze7h7byHPf>mnBvo#0KS*5lX_u1T1N;K?ykY2q8&ey$qJj!qFA6H-@T?r>8f5OL4y$ zai+TVJFK4porhikg^HenLPJ}7PP1$2K4eMv3g)9}bA$jkG#~(cKkUkiJG2qlz8n$4 zq~g#+q{H3a5ieh!0Y(F+B^g;={^IG`J(C$XTFq^O^v?SOgmzdVhhxW&YZcqwPayz3 z4_hJ-b&{Ftz#muZh{fMwU)7j!!EUELY>YtVeE04hWQenu-?NI8w2txo=kNb=&_;ll o;|H+PM0u|qu%7R~Wr2HF42f`dy?2Cj5`l+|q@qODZNta^0~1s54FCWD diff --git a/docs/assets/benchmark/fib-recurs.dat b/docs/assets/benchmark/fib-recurs.dat index 0d9504d6..772f9241 100644 --- a/docs/assets/benchmark/fib-recurs.dat +++ b/docs/assets/benchmark/fib-recurs.dat @@ -1,3 +1,4 @@ -gwion 5.4137 0.34 -wren 13.5268 0.22 -lua 7.2720 0.33 +gwion 5.5088 0.55 +wren 13.830 0.81 +lua 7.4549 0.33 + diff --git a/docs/assets/benchmark/fib-recurs.png b/docs/assets/benchmark/fib-recurs.png index 7b7cc503459669a49970f4f9e253f8428482a9b5..3c05462133f741345ef99bbb7ca4c2cbb3f9385a 100644 GIT binary patch literal 9342 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 MR`EvGb%Uq>0d*i_NdN!< literal 9713 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 diff --git a/docs/assets/benchmark/fib.dat b/docs/assets/benchmark/fib.dat index 92e1c1ff..29fb524b 100644 --- a/docs/assets/benchmark/fib.dat +++ b/docs/assets/benchmark/fib.dat @@ -1,3 +1,3 @@ -gwion 0.086401 0.30 -wren 0.220461 0.23 -lua 0.22028 0.93 +gwion 0.08750 1.21 +wren 0.22008 1.21 +lua 0.22026 0.70 diff --git a/docs/assets/benchmark/fib.png b/docs/assets/benchmark/fib.png index 4cafb8af470e55c3d27a4db70678cbe336cb0e57..c9c3ad06651f5a2e427df8db0a8fe99260bc8d0e 100644 GIT binary patch literal 8445 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 literal 8415 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 diff --git a/docs/assets/benchmark/for.dat b/docs/assets/benchmark/for.dat new file mode 100644 index 00000000..d4c00eac --- /dev/null +++ b/docs/assets/benchmark/for.dat @@ -0,0 +1,3 @@ +gwion 0.037861 1.04 +wren 0.085946 0.68 +lua 0.055855 0.75 diff --git a/docs/assets/benchmark/for.png b/docs/assets/benchmark/for.png new file mode 100644 index 0000000000000000000000000000000000000000..88f4190599dd9f157d6aa39570227beefa8a22c8 GIT binary patch literal 11923 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 P5ILi*dot^U)vx~rL)5kv literal 10397 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 Ucb4Ux7XpX=Iis`re{;P3A4|xnr2qf` literal 0 HcmV?d00001 diff --git a/help/struct_check.sh b/help/struct_check.sh index 0b74aec1..1dc9877c 100755 --- a/help/struct_check.sh +++ b/help/struct_check.sh @@ -4,4 +4,4 @@ pahole -s ${PRG} | while read -r name size gap do [ "$size" -gt 64 ] && echo "$name $size" [ "$gap" -gt 0 ] && echo "$name has a gap" -done | grep -v IO_FILE | grep -v __jmp_buf_tag | grep -v yyguts_t +done #| grep -v IO_FILE | grep -v __jmp_buf_tag | grep -v yyguts_t diff --git a/tests/benchmark/string_equals.gw b/tests/benchmark/string_equals.gw deleted file mode 100644 index 6dfa7e62..00000000 --- a/tests/benchmark/string_equals.gw +++ /dev/null @@ -1,21 +0,0 @@ -int count; -for (int i; i < 1000000; ++i) { - if ("abc" == "abc") ++count; - if ("a slightly longer string" == - "a slightly longer string") ++count; - if ("a significantly longer string but still not overwhelmingly long string" == - "a significantly longer string but still not overwhelmingly long string") ++count; - - if ("" == "abc") ++count; - if ("abc" == "abcd") ++count; - if ("changed one character" == "changed !ne character") ++count; -#! if ("123" == 123) ++count - if ("a slightly longer string" == - "a slightly longer string!") ++count; - if ("a slightly longer string" == - "a slightly longer strinh") ++count; - if ("a significantly longer string but still not overwhelmingly long string" == - "another") ++count; -} - -<<< count >>>; diff --git a/tests/benchmark/string_equals.py b/tests/benchmark/string_equals.py deleted file mode 100644 index 8829b5c2..00000000 --- a/tests/benchmark/string_equals.py +++ /dev/null @@ -1,35 +0,0 @@ -from __future__ import print_function - -import time -start = time.clock() - -count = 0 -for i in range(0, 1000000): - if "abc" == "abc": - count = count + 1 - if "a slightly longer string" == \ - "a slightly longer string": - count = count + 1 - if "a significantly longer string but still not overwhelmingly long string" == \ - "a significantly longer string but still not overwhelmingly long string": - count = count + 1 - - if "" == "abc": - count = count + 1 - if "abc" == "abcd": - count = count + 1 - if "changed one character" == "changed !ne character": - count = count + 1 - if "123" == 123: count = count + 1 - if "a slightly longer string" == \ - "a slightly longer string!": - count = count + 1 - if "a slightly longer string" == \ - "a slightly longer strinh": - count = count + 1 - if "a significantly longer string but still not overwhelmingly long string" == \ - "another": - count = count + 1 - -print(count) -print("elapsed: " + str(time.clock() - start)) diff --git a/tests/benchmark/string_equals.wren b/tests/benchmark/string_equals.wren deleted file mode 100644 index 0c87bcc2..00000000 --- a/tests/benchmark/string_equals.wren +++ /dev/null @@ -1,24 +0,0 @@ -var start = System.clock - -var count = 0 -for (i in 1..1000000) { - if ("abc" == "abc") count = count + 1 - if ("a slightly longer string" == - "a slightly longer string") count = count + 1 - if ("a significantly longer string but still not overwhelmingly long string" == - "a significantly longer string but still not overwhelmingly long string") count = count + 1 - - if ("" == "abc") count = count + 1 - if ("abc" == "abcd") count = count + 1 - if ("changed one character" == "changed !ne character") count = count + 1 - if ("123" == 123) count = count + 1 - if ("a slightly longer string" == - "a slightly longer string!") count = count + 1 - if ("a slightly longer string" == - "a slightly longer strinh") count = count + 1 - if ("a significantly longer string but still not overwhelmingly long string" == - "another") count = count + 1 -} - -System.print(count) -System.print("elapsed: %(System.clock - start)") -- 2.43.0