From f0400d410c5ec773ae921e50f2416f3bcc393219 Mon Sep 17 00:00:00 2001 From: lmendo Date: Wed, 22 Nov 2023 00:55:34 +0100 Subject: [PATCH] Addresses issue 11 Found by @digital-carver The issue affects the 'continue' ('X.') statement --- matl_compile.m | 26 ++++++++++++++++++++++---- spec/MATL_spec.pdf | Bin 532926 -> 532988 bytes spec/MATL_spec.tex | 3 ++- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/matl_compile.m b/matl_compile.m index d1ab5ae..47d1d22 100644 --- a/matl_compile.m +++ b/matl_compile.m @@ -19,8 +19,8 @@ % % The multi-level clipboard L (variable 'CB_L') is a cell array of cells. The "outer" cells % refer to clipboard levels. The "inner cells" refer to copied elements within that clipboard -% level. CB_L is a dynamic cell array: outer cells are created on the fly -% when clipboard levels are copied to. +% level. CB_L is a dynamic cell array: outer cells are created on the fly when clipboard levels +% are copied to. global indStepComp C implicitInputBlock @@ -256,7 +256,7 @@ appendLines(implicitInputBlock, S(n).nesting); % code block for implicit input newLines = { sprintf('condDoWhile%i = STACK{end}; if ~isreal(condDoWhile%i), condDoWhile%i = real(condDoWhile%i); end', S(n).nesting, S(n).nesting, S(n).nesting, S(n).nesting) ... 'STACK(end) = [];' ... - sprintf('if condDoWhile%i, else', S(n).nesting) }; % We use 'if condDoWhile%i, else' rather than 'if ~condDoWhile%i' + sprintf('if condDoWhile%i, else', S(n).nesting) }; % we use 'if condDoWhile%i, else' rather than 'if ~condDoWhile%i' % so as to reproduce Matlab's behaviour when the condition is an array ('if ~condDoWhile%i' wouldn't do) appendLines(newLines, S(n).nesting); elseif strcmp(S(S(n).from).type, 'controlFlow.while') @@ -312,7 +312,25 @@ case 'controlFlow.break' appendLines('break', S(n).nesting) case 'controlFlow.continue' - appendLines('continue', S(n).nesting) + if strcmp(S(S(n).from).type, 'controlFlow.for') || strcmp(S(S(n).from).type, 'controlFlow.doTwice') + appendLines('continue', S(n).nesting) + elseif strcmp(S(S(n).from).type, 'controlFlow.doWhile') + % evaluate loop condition before 'continue', as would be done before 'end'. The + % loop condition has nesting corresponding to the "from" statement, not to the + % current statement + newLines = { sprintf('condDoWhile%i = STACK{end}; if ~isreal(condDoWhile%i), condDoWhile%i = real(condDoWhile%i); end', S(S(n).from).nesting, S(S(n).from).nesting, S(S(n).from).nesting, S(S(n).from).nesting) ... + 'STACK(end) = [];' ... + 'continue' }; + appendLines(newLines, S(n).nesting); + elseif strcmp(S(S(n).from).type, 'controlFlow.while') + % same as for 'doWhile' loop, just changing the root of the name of the condition variable + newLines = { sprintf('condWhile%i = STACK{end}; if ~isreal(condWhile%i), condWhile%i = real(condWhile%i); end', S(S(n).from).nesting, S(S(n).from).nesting, S(S(n).from).nesting, S(S(n).from).nesting) ... + 'STACK(end) = [];' ... + 'continue' }; + appendLines(newLines, S(n).nesting); + else + error('MATL:compiler:internal', 'MATL internal error while compiling statement %s%s%s', strongBegin, S(n).source, strongEnd) + end case 'controlFlow.forValue' k = S(S(n).from).nesting; appendLines(sprintf('STACK{end+1} = varFor%i;', k), S(n).nesting) diff --git a/spec/MATL_spec.pdf b/spec/MATL_spec.pdf index 743fe1b424831bfc48e4c332f2d587c571400fde..1a04b9e48e9d89debda2758c55eba435c1e8645a 100644 GIT binary patch delta 21620 zcmai51yohp*QbOh<0v8qCSqdX&3ErrbP&N&u@%L}cE;}ZDcD_jO$=1*L{L=3)=@D) zEU-thW$ga{E|UBBt0m~{;wu~Vc4MUPj)4GV? zuH}34sVfoBXD7Oa?uYfT_>)-GqX;N$6lvAN6wYCFW#`%iFe(6HhsPP zaH>bK)Omaxp-S+Z)S+Q#A4W(0;j}FNXoO$MyRUl8SbKDvU5kIl@2&3G;C}VK2U~1? zq?z|bIeC6fc)vg9`n#hpe@k4K6Lm^f=fD0PW8Rktt)821!-yN{rZT8FDY)_553#!V|ex%6$5tAE^Y7}q&4F7>#(J|Fzn9Bx7HB_ z-_f(Ma}ZN9(}aA@BGJ;<}cn7I@u?@_M+LQn@^X_=o>n{ed`HJS2Uj* zK6dT>ZdWJpEk3!ODi;)1GPHcWe68!uDSVa3g_}r!t^Dgzi|uWTe!Jpb?n-d056QnR z=+xh8=cM`JlWQI7+~(Y~(W`nDHs#fiSnAK+7C6MT^grK+`;$XXdLFLOFm7VI#|zS4 z>Aq=aE~orge|^9LzqtqBi8lPJ-xKTFO118)+FxaCeSeVxJcExF>W1a+t{`dF$lt02x zTWxQ)Dcq6}fAq_&fe~$A-g-SXrqRZZ@!dAoIj=>({kPhb0u!giRGQ~&Z&jl3v0)R2 zNB+6I!1egyYr72^wDY$bJ->y`c1az4`=rf}ORK*o-(B^3O6OKnW}z0pw%cK8f>Tp;XseY2As=vYM1qP=%N`h4h|#DNIUoZXjSy;zP_e5KBdOZa@^#!BR+2Z{h=KeB)ogp zRGDh;;{A*pv)JkR9~(!USbMBhy~kGHHifR}HD>zoHC=WrQX_g#eo)BDfB(y8ORsm0 zxV8I0LXvmgXorVmJQ}%_hT#Hvp;?3 zx@wxYHayi+Tw9@A@AKvM6&ru)d0=M`MTJ2Egc(a!EXWe=EL-U** zFfPim$mU{o4m`08yfe~#uE5sMd5f-k8RUMdr*u9g@j^F`R;4D~@7QK^i`sYly7cnx zRK0wGvCXPhasPhkrLf-8d3xo@fkj%lL^bs)Qm#wIkVj>Uoj$U%U|auQ?&6u|0bQCl zQx*jtbE+J2V*I|BGjE>zZ~wkfebkW}zpW^AVC%H*Ru6(adODW)C&)ueu+(&~-=t0L zK=Uovit{V#&K3WATlMOlTNk6Wh_R*i`c@EA`oK|0+rq>!Q>-bx2)QGa> zc7Ci_b;i=7CDsq<*L~~0ciY-Tjg3qiy6jG|7xM!&kJG>T#qi~C9(h&7XZq{!T}J*f zE;_J^>%k`+S6*&eaovHuZ%0QKTYt~vwPxAVVZHFy{z0z}E~%UM20RJE1n!O_|f-A#UHQ!OWVq$JHN8a*W>Vq9ykUnTFeg8PaP z>xkwyllQJYF}~fkgX5D5Z(Ua{#JN*bwcB63qH~$SpJ%oAUv{axQ`+s(g~vX0`szG%Ox(bzKZ90m>0_C2tV@kDEqohq zOgq8F9?kz{%g6BO8n@Q2yjj+^cTwR`)mzJhS1&B+e{^fFWk($zsr|l8bGS94&ev02 zqc6nt?KG=3pD@EQ-?Wb_I-Y$#|F3OUb*!o<4O@PsW32Ph{l!}G`$u$nH0=8LR*%2k zyy9QKK!Yh;_C1UFXYV8L^~nQ@1W#+%#WLb`K%w26-j5&I;X^5}2A6{?oj)_I^o*N_ zI~85}XOip2VY8j*pV{MeYozC*S(AkW4eG7X?l}BoXJu7tPM?u$YWM{V%hSv6Yx9TZ za{q-d+F3zJ^FJ1K{lz)k%TaqDrm71P$9WEDvAx8KeX4^{Kl)wBmOI<49jjcb>-!;6 z#Ka}1w%S^1pLELGwef=HUxv-Jb+8%q+I7+BHt%n2d0WD%n)iFp0X98nCLOBW`(et} z{tksk1>fDY`9qTh!(C1GrzKwF4P`Ri^AgTPo)7xS6Sca=ytm-zW=-c8atXfd_-0b#y-uOECU-kiaF4UQZNEo$jiHP zxv+I<<2hRx1 zv)p5~cX^9-bf3WeUh#iy-&}sZ*x$KJ>k3`kw%%8J>ek*fw*<~=XKArv&H0HFqi-er ze(zcQl?1K0*R`HWE-OMRb?ZDbJgRR{-WcC4$F`--3L5yj@axo-xA!gyYcgl|=fT^; zo6o&5XVHr72XE$y;QyHTso&m7zI^SPry`HU3-#VUUU!k-wBpp5$IEx8{pI2KW=u-> zr+J&NzVRv=aOvH@lPkq;t(xTPykND(F5ITj^v2_==bPD2UL4rIV&ij5^S`U+wzWl`5%@t$!CC_hOd!kLRnWHQ%3QP?QyLv1#vdrRj z6*qhfkk_p(JT$EW;~qcR@VR=;jY~Y7XP14guIyBxa=lZ>{In~l zHlh>~1+Y>NjW#32jzByiSD(M|rulLl1X8)ADvq*!7E z6sKD5Cmz(;(y-6*$l~Ec@168|((j8^b+-k+*ZPfVI>oXf*~$0(?#H3mqPE|zwrh7? zH7vN-n_9yoOt-gqpUAgsPRIj)uhClyTQ$yal~8Fze=^k$DW98l)7t6tu7Ppm-tk>{**l>lU@A-PezogvfN)Q<)3mVo*?H`iY0!_Z?EypdM{i%MO z>zrfn^X==M=l6jPt*=aJ{Aa;L?$o{bUY^_H<_pps$7U-g^P`3~bac2erhlg|P9Gg# zO(}k&QPWG>x02QB`4t$_V|MPf&=~aub zORH2fvB%d1e0bXN(?>sc4OYJUeySRBbW~4nMBAy2O7FkF1&%B$rhev##>)54|$$6z)(6iqU$3#|sce(ZJ4X-b5^L1F$ zrE~td8+|6l2Ax=N&x`k$cUanl-AIjSpZ~|iHLJhu?*4gJ{b38=ma3Ar$*+K0p3$pY zmveW&JNv3hk1ehpD;8X(&xN>8r_Y^v+U&=3QR&iPRNlL_jvj5Dr~RwbcSg-WuBb&@ z{pIWxv#gerN4J~p`nw)-=v(@G@5)mrdlX()X5`sgCoRtx>|OF==(o<5zqDFXT=m!{ z&1+}Vu2AzWua_r}NQwRS{rw1s!p_NU&d&V&d`8&2X~pIS+4bRjHoU*KNBQ1f-X(rG ze0zK=E!zH|ZK$=2qIk-(=q6~YCoijRf~t5bi+H8TqSrz8`uRh)?epU!r+Ny48_)5c zoZe!Rt)y2Awk@JhIBeS^k05y}vYvX_R<$>Co-!}#6=H2`Tl3Sp$J*kr9scIQU;F6p zu?{u`O@hF2k|xMHSIVZ?Zz9iU5$0cXSXP*Gq|I3`DXlA|6C5KwS`Xre3 zxtAPj77;aOnpqO`+rOSBn>F3@GFDWXS&}N~6O2y^^GVbsJ>K|aW~?cO*b05+f2( z5oP^5R%InAn$5i4G!dV8WZ{w2-JB#P^w5vF`cM{Ica>f?3rkT>~qZuKkJ?L6$i^|Mg$)Cn>z%+4#g9T@V#j-(h@W#4HFZ?(I76RA%lJ z#$(o--oP|QBm&QidYJKv5hkyxy#5lOTo_&EH5m9!9Ip9I9FG003Zg#u<}VjDYrKB@ z|MsJTD=n z8G$4#qJSm{qJrfUBeT zF319~PHqN89EI6Lg)x$Gf(E5wXc84aXAx9YVkXO?#++Ca8AXE8QSBEcg_Fr#n6@gC zd*^Tv4SJL=|4bhMqQKsrCNri3RurnNqFKltPWnKAK5lQed+WF{cjm@6^yO_LOwV{n>=vP;g5jeRwqw@_E0!T1<) zX$arBCquWH*u!&zY9Ip*jD54x1Y|xPO`~Z7Cc|6h;tAh@kQ`0$4B* zzLRb&!Ff^|@>1f1poAjz#Jq?coNg?l2tejyoEf1aJxpf#B@k8WEI~ z?O>Tft$<2U6qIaQMw)=h62%ef`-BcVNf(PSv&%SNK*{V z<=J}|0mHM_`Ezd8W$4%K}HE zCuqQT*$k%NKhm*WxdV9OP@w=k$sU+aQ(v8i>L#HfHV^<3wsy0$5Rrp}{$T#oQ7!au0$AEF2~S;n9J}Q-~A}G5C>px z?t!2&AssZ#r{hGGVi@D~hMK2=YG^WVF&3opLqM&V#x2kkS_cCSFA|g)6-bGpAsL}G z1Ylao1v5Qvc%DR%aKhcvQAO=$ojTPzXFpwtXAj!<> z^t8KhuJ{DcO?Wci+?cH-_67wRNS@BcgEmV;fMv!3))M%O^Z~CAbRaSuYJ37NpEyob zv;|tcGK#(w@(8&5?0RAb{56P-ehMhlGEzV#hhYWo~P?skm0bRhL2># z1y4+`Nkmzj*%-Mb!=M=$n@SZXj&bSmCo^Cpr$g%k83-DMH;}W;NJa!`p{GM~#2ikP zz;@OiKjAO@1t5ABF&$SK&&7;UiAKSQjssk!r-Kurr4%r2W(-ZVs6e93f=uaFkbo}e zCK3J(XH8M7+td%il9uLg8a#VR9(p!xxDFAKWOHwSkg=#Ro^JsxBkiO7n~D5)$1 zPU^kBfmt{KW(oo;I|Z&?)uX$q*S@h*lhza*%Jh9t<#|$V4y=0^Yj9TM?NmBJT z-@%rGf*;j-1=(+odrZGZSiV`&H)4~j$T2Bf3i5s`L#(Xn@34m9_3te0F>^Y!2{GePePE;o(8Y{HKL9h%ETxxTb7D$>UPKXkI{0Yj?x59F;m}`4 zqY@foWt!F+O|pEBx#{`${pR>=fLBb8vssf=HM-DJdw?1C*|sg$eQoGuwCI&)%$X=Y51SL`@5<1uBF zQgcZQ@<$M3dQCuM-snO5g=7#97zH*u2B@e}Cdjq1v9Bic7UqtTT~KFX1{h>%a2I3~ zq(8Jn1O5_EBXk^|WHRPv6>N<@Hwv*qLmMTXjIskg9l|?(WWW<3(*_KhO3c`TUNt;O z(z^qeVFD3)W^&&hM2MPvE^{(;2A-8cm*_ZUpch~tp48~+egTfL`D4_*Jk*4dQp=*qC zjg&K!>x^eIv>EdB0TDEjWd>asjItVaYl{D1+RTa3O3FAN1-;(nB!GlWFFI(j_;C$q2nVfO+F_Cq4dWML^W#nZSWEJ)%RM;cc1=Q{tg+ogSBWcwF*H7;b4?awCjXZ}IC(t~|B3=lK zR$wuXbzEqEOMm<`X4g6vw=j3!xh{_Ce$4H!*L>fsPEoq@|+`?33K!owo(;+RS7NMG1WQ-T^U(98? zQ8)DGLYd~L1KU8hKNs#j7Z9%ndEfF69I8%&@Fhg+~ZJ< zN$&$qkN=qw&?wPRcmdk5`j3uF%G0~&(^fN@|GR0>EM7zqLr8Z<-x z+2TiSnGu%()R_el11Svvgc%2AAdU+~vs^!nOuv5+@eax?i0UDw<-+dibs!n(26afF zWjBpyC^cwIp$aq$Q?-P8FkKd);TeE1gFbf(C=J!3U1y-7K2PUjlk^ac^Jj@4V3~qP zqn=373up{Z1dTN@S@9EjAEAz$*Z(`DlUtoSjzfoa9WrdxkeW`)R1HpyoXLb{?OXJv%Q$hgZ)HeZ={bY$csdy|n}cJ?^?aNJp? zoRLm`ch1iL`6*Jbx5wk}@$fkJ`n>1s{Tk2L_`W~kapZ)@j!0)?mzRCr1EjN7P z0$jHC4{H(s`?5rD+t`O84}N*I<#>46Qf(Kf+kEu@->R)cvWqO79<}Jz-yiNav}{b8 zGH*eReH)97`eFIF$3IPw`Z|^EYH_*rkL$L^i)Xl6qlCMB2`}fEHL*W7y)dBD_Wylj z-Tv3CR<*Jg)pkq%J>f+9rI>AhFCWr@^ZV=E=%UX`yt*FPWyZM`hi9)CIBvk>eYJlJ zo6)=Jic0;*hkL|L*T-#e?vi5vvgeN%=g;j}b$H*65c0{sNYZTU-aXI2x|#B zGi>X@0YUHg_Aj31f6Cq=we>&UUN|1<;9)&?HSG2Mz18mQ82`gv_t9>`<Z)3*Nc1M?JP5AWkseOY=5%frjGYIdiy0GpHbTq zJEQB9gxU7TLw+hBJ29uj%A@uE7`pmiiTQhr9-9$r-P&Vcq@#G)cc^5ptp~lgb_oeSH}&+(uo=q8!RL1z5bPioi9_9z55-X)isgdzcXyKee#MO z7ykS4`JxXEFL;fx`c}HW*yik-nPXk+{*siHPE4(RH+4kB4KmY7)WzN;#>-4->_9KT`Q_3#6n&jMJWyx9-JHDJd#&t)z-&ai- z-uFdtwPPzTKEBk|CEFNRa+H1Zo{L5|Y*_kj<8-Zi(q~_Xlt7i^r)Or1( zB@43B!9=}vnqAoHzt2^lXLGd0 zbZ&XC%31UNvP+5#-BiBPoy_B{LsDv2cNn*9^v$8{{^^qFR#7( zt5@CYTwuSqsYezE&$%~n%!8yMuV2x9oBi-`LwuD!l^+|KH7-4IPkU{D)HU&4 zqgtbGJsB18_a3?3l`Nb6J!f@rTsi!Yz2mJLv`NQQ7vHsAyWE?-x8&LC`+JmW-0M+% zx2i`feQ5cjUWC*3`PC222;CIib>(Tdaldt$w$9a<^q^wu!EM#uD*aCn4qR66#m5H? zR!299O{?ixrI}FmPi|1)w3o>_4i3{F{WomI;4v?r%(bih&u*`>wL$_yAFcgRrPaP; zFI1)E@xG7iG<+L0@aJ3Z{{%K@QB}&x7JM&mzBjRKv)Dz0&va}*pvcB{4=3al@Abb4 zw^H6%W@dH?nwsM_Gsn#ae{GX<-0X4|+o_sl3}0+t*IFTT!R@3McT=XcmF3dMUV8?f zZg^x*oBoZSoc!ha>TSy{fz!TU)^43&ha(H#Jvunsp>Bso&&MUb9X9opYgaF~ciYmh zhMruzvS;@07c*~{+de5MpoabV1^z9Pmj>3kG^SSd1@#xzce(3!_1){K3(q}BzMb+* z#opysW=&~RZ+hEFZb(J=F#XHL3bjh*B72hQL3&$FFno(S%HM_+aNI4(N0LHu_Yj(!_z zZIp61rtdc%VUBZ3y*$ux>Cy8ae!mf&{^3Zy(B_YixF_07Tf2UtUa8L7^;d#2r#bDl zCLM{47$taleCJ)$E8|UvNOC%N6O8<>K1&_n+c@ihbWW zIrcl}2|w2Nb9?Bxv*OJIrA-w>$G==$#6ML#E(`#BT- zIWcRXe4@F8`N)M??Ls}zWjUoM~{#tkFv+iBdh7c});pzq(k{>E_pOQ8lQQDw;HB?c&YeE{(S$NwrP{t{ zg=)*~CNHROb26aIgOsgH@80|G;pVNs<^(PcJ96*0F2Tp^H!*(I77VK5Ue|q7Ms|-G z?jK5QpB`K~-lo$De>a~?Y3&mp20gy|vwh~FSxrX_n-s67q^guZc;8O1855~S|b3@K}zc8q4$Y-n!$_4y5H`V8M3Zb{H5T2+UxtzTKzE7zoWwwyVMSClHXiQZ|hmUT;Dp5*O~@9gpRte zoa&u5u+N~$?KU+^9`f{fQcJ(GLv}m+B+cABbNdo&Z1~}3|88IMZ7I8Nx@E_>$6s#J zK6!MeYx>zg`vkUZXcK+GZPfjDf!@Nb49~gCUnZ4W{GDx)F~Mu@&O5R&>JOuQ*%#l2 zXssWQzuc?kz%|CH(EYc&v^+j|z_F_xJrmz7ySuAr@}*Jx96ej4l<=K+Yg?ra?He6? z{BU^BB9)JAss2l!>}l2_3u<4lw#+kiK@t0=eYoTs#}YRWE3)1p@ZP&NM}v0nJ^HJ| zq|t3|p0Hifd&G6+UDBSz)lX))eE9cY=VC6FC$=m0*?Ii5a^=ans!Mm$JUfAw+!nT9stv5&Q zvCd6)d$Gzl{8rFqhoiTX_WzhQL{D$fHD}Im?#s^%Ew!>~r^P{afAU%QzQ})<+oUst-as-4+$?LZ7ccXhRtJ|kNNM4T4%o8 z;MET;!b-h~u#9eKclF7+%00G>IDhVGw(sImQPZr0jz>kbUzj$r)8_Qbx1#nRI$3nx z?aZ{{7gk*@B6&PnbhLSw?8HqC>o#jp{f030fgLyIcJzY}N&mL8ggxwat;V_<{kf(^ zemHorPMv>)6Gt@e^6LD%-)=`t`LAQUU%#0uPcu$zo=d5#t!wQ>{#r8El zRL|8T(Z;u}Z*=ooeNeH76w-tmD8b1c$T-@nACxBRYqmizrEJI{jK>fCtgQK*O;6#BQ|#Do$^_B2g5u& z&Ff#!-uc|hv)!eL9xHxdc{AAcc)Su)XY;P@^*0}|JFul;nNA6AyVta89&ckUIW&1= zx#LeRU42}l#ObK;+an^22gYPpdHU8ZY1MZb^^ykPvL7&Y+vI?9QgY>A22VZmcGA|h zv2*{Jy&!(uyVH#~@=YhdjmVnpxpKv_34dmW^b2g-@U2huhQXm+qIaIggJCzPz`99_0D*sFKgI1hR>pr{0swD{`e`tJg(HVi?uXmns%fHgKf6G0pc5z>; z_G|d(hYt98gbcb=_CZ?08vo_0airLdXfCYA4@0~TU#`8h+LAS5iyvzZd{o+gT4L8V zzt))PDmz@h5O0m`l3B;&4}Z^)dRsTGz2XycEd0%$RwafERp>w0G*9;YR2?tGTF zbi2LeQm9_xW^CH(Fz2MpnV|!QZI4)Z_Gvr6aXr?y>v<%)`(Zzq!_&f+hRuJoZt*n7 zk84^y@93yp{&VlKvfm6_cusCSw&Pzb&so*QvvhgHtkY31&pUL^?DtPbwcGa-9{TA^ zXZioSE^xw}{U?|9_1kg1(yk4un})XQ`)a%;F3Zm4K!}&aBcGhvQ`aq-Rb=G0jU|g* zDEeqi+WZl#i+$tSa(2J?vzN!+j_ebf-EZ5{c~QIP)SP>++fM1@2)`1GerbI%e*c1% zzI=^yA=NXiZVQx}BYUV5vzKet54POiuG3V#Z|H{Cd$Rm~OlT3X>S<_qySR?Ommm19 zX+X;|6Zc!ru5Qm)x0w^}{-;uIafynqWsTl@df$=kR#xtO(ze)N2kIBwYI!og$R?-V z2b&~m&cjb#_p5tCyE#uhKDIN#@THQ|2`2c zZ-AYmyPc7}^jTx|RAdMO|HChE_M-A>(o z7Wg!0SL>I5H8|(HzO;4b?&VEfCr5YNT)a}&=Jij@bvGO)dZ|)}^|SqFIBso~aJ2K2 z1RHCy;3a8GAJtjrGi=zVE+u|{b!z>jRrllPtv%uL?eVFj6HdLlRkii@&2K&9j=c2L zH{Xkss{Z`L*+n(abog7p$O)7BT-fwBdw9EvU7drQ zbxb=}q^O{Q)OeH=tW^Ce@^xBYAyfW zIr`SX_1#LQBxE*x`FvxWw;5g;@0Qib@ERA`KK8#5-qW?!(w%N;!gbG$HDUFm7Jcnhu5Z1|YsROHwD{Bv8ozDZn$fE+ zp7?ldopVEe&zhX!&)-MB9}qXT;{RGV33AvHG9-2Lj%MNR_H6=J5c6Q+NXCULmPT$8$4rwo&ZueBva7m@5k+uNcqFPYiNz->H}069n2Yf`PVe<6J~0x^YZ7Nn`1&VR;f)LCCw4(a(2YvBzxqj*IU~aS z#9WM*RNgrB^;x2-8O85>^@IYnrHA>6QCe6K)!1r&V))B*s${%3KQV8~=^AeY-35Pj zhQFK+i@5AArZMl#X?VthRber6m<9SIYTm?-KBx_-I;dZ=6 ztOW*&BH0A&mqoIm2zMmY1M;{YOM`p;yzeJ(#_^)2(;M@={AFOC*W-9RCuJ+tS0abu zcwOYkp+PgQ{$?p-#VtQ?pTDZa(?{iXNg*nVYYX&>pou!=w;+KVWDh}-^P~>@f0jBh zhkblO(j!bi5c?t#r_;8$Uqkbhg_INs<(X#(m|+I%7+55ugla6P~eXkOb+|Gv(V{PLco}naR*7N|O|!pah%3D(Q;A zY^<~Fmn4m-Ecg#mP$>Il2^vZ^mf=4rt8qMq9#EEejTJ&or*maZP#K#GJWg#XCrfxe zdKkDtx}d_VjOIX$3hBGaEm@QDwa)t4<|;4&l>LeQt>T_Q9< zGhiz{jLHiP7%&xr+!%AkFREzGJ2m7;W6Z58ON?n%WtDkPRR%C6hgNxoqZd(Sz>vb@ zB&!ZK5F$Vq!l%LmL6c~_#Hq5z7#|hd#LiWiCxNJ%<~x`F`5sW!Rp~2-VcfAM04R|I zYLI@a5vr~;Dy#8&0q<$ejh{IU2!^stlVvKc7^g9wQj-OlnJeIt=>efR49yCKr`Ak^ zHc=Mhm6-R`@>po9bUp{+jX#^#d>Zb{GaKuoYI4xzfBryC0rVoL)`67h?ST6kcnr;E z=Sm8JxF%wj3Oc(y{R2p);RUDbfCuz2I>0NX$(+n^ONTEnJWkSeo_a-|6Res-^bRC-aT;~UJf}l43(w^_yc01#nEMGe;r^f5kI789gX;nmk_CB5`wET0|COfe!^H=gmd*MQJ+EtS5+wzQ{O16s+`}ctJ#X z%M6r7BA6Hl07%CHc~Tm{Kh1k#uJTFVzTiJtZ;je&UeI{z4=@f!m~Jc~2S;fdm+xjj zd07Y{KzYG&;6E?&I8H%gE=?ARHN!aNi{r@i8=z^_R)7YhPS-P&Aq-97tVGgzpkN9% zK!ZnMCQB56AT-1y({ac<&^-h#-yr4VKWw72n_wJsYPffz+u#8cGk~W6@ANQ8OBCj` zFW9eYjKBf;kbxYoAyQn2O^o(`TS{Aj8yE&DOxTXCL>gjX2|O4*rzlbQiMfzkI!?`d zEK`f~%?N~vIlHDH2}~wy2+^5Ct1899*jS=yz+`yA2+!O>(qnrR&L@RiQ2b=$N&{GOyCmftLl2I!w?2pU44a1Zk9mvW`5LIS%*F zXFv3j5qNN)rVn^U0UO9B3IHwDTt($+41`P`Li+-9P5y%@(w{(t%k=Pg@h8ZUkm4*DlE>QM^CVXXM=8Z9q$=V43l^QWLuoSpT;lp4qgpg!T zF&Wi6IuJn%5keHia6dW@hLD(LR2n%N2?}P?{__DpNAVy+uE~PP?NV!oaZD-+n*d-i zbAf0X8c!{u6^xOnngDTdRNz2kJUVDhj=~I|D25S`d#37%xgsL_T>q1=?;s*$LQl>aYY}Ly3ZpL)IdH?x!do3yReEn73ozlSh2buo@_YzB>=|!ETJo204rs zOr^+Nz^hZQ2pSW!pn}HJ=o}>YPqGQ(W*UfNu4xwwNAV_+rT|b~VBb@aMJh-Fa@!QA zf+jOs0^3*sFtyIklibmM9IiHOgwUkVw^2kacRz%p5UIH41`Nf!@(gkb0vm zL_|w19N;#S903g}Cb}NtEM`5O&*ijIz&l|w0sv;RL~~OJ$PE51u&aimHyy5s)L~*- zCdr2-1jgKeMzM|nq{;9?ln`QKUsHEK`y(uf_>>$5#-4g=m>Zcw31sD=rgSa>7b+1z z@daNx*LGlXZaNBQDR3A`VKhxd-j%*I(s>lG2q+;H+{9cLG^h|cpd_)_RRBJt$P1I< zkmzKj7O2bua5H`jxeLlctoO-LI~TYy^5dLh#JsoE@PbVyPzX~L#;hU;x`Bkyf;lUanG6lJEza=zfbDpdR%T%_pt|J7$aJEZKH-DK(+|ZrjgbM< zDo_@q#!ekCBlUx&dIMRNX`%xL2X>Nfttt|4a5*?E%o|lO)N&c;2^WhQlg$|t zYlKXbK}B7Wpm)ZV92^Uw0Ar&7+-b>6P*gZs!{ei+Mt#@}`ecA|^zKMfqg!d{M@w}- zK^56^VZDN(U9RM+D9sQ-0}CPc#&vA$g%T8fS`-OP$6)@+S8l|^A{SS~sd@ugG8$5% z)kI{#m5LOP6gSezv$>$bTQCdiG7Xb4PN6}gS)|e8ZaUTULKT2=NJBD$u8S zoT_`FYQ|VNq)GFU*Qdk|4712%B02}8z+biQ|7|T z3e6;<*8q=bc-cC6dZPr1LN{SL^0G7+hn#`gC^W$qyO@m{bcO~TQ8RKl{&r3^?KE_%MVSA92R0UB zU3&#>8pa{>U%0tuWY{^?vK2HV(B8?@4>LvTYOw<&Ll_68D||XgE{B$sqxMcU4cWn| zv=?dvMEWreMYO`x08Tly*bFnLJ+yaf>x=k^@D}MTroe$|GPT%n;GC!#BORO~jb4sU zWxYgXBI$0rOk+V*rU9>wI*v}7am&%EbOUsgP=sYxuW4+8{2p+$vC7d&HAY*o9eN3f zC&dtnIf97HrEHY9IJLDAj8qFm5S|qbB_{=uvKS;(?~Q#HC&dbO^E3g6@5p=5b&z|Y zJV!o)CN3}+VJ)4D`X&`>Q85LsaO{9AI+KV3je+J!QX_<-o4`)eX9BRGsM$<#f4T6d z*a0&U8_@+dxP69(^aw*^qGV)51qxn4V`au_whJ&DvxPHc(E-lM#=sSfq(BR3z=OHS z!qd5cL*P~}|3CW($S+Dk%s`cq1?0aNwn}K4q_T&^4-I5QWF!l4IxluGK_;V4@WvF% zVw}w07_!XVPD0pCFCyh)0qjy}3rm)lFDt|#=nqYfiAeTP=MEYQDdf;Hy2x3YN@H8h z)eD-IhPe!q5xO&{#=}tV%7XEtIG83NtfTuQj$)P&nKTznGn4QK4S<^GF;4X7$`AY-KCjbUZj?%@Kxw%#aPK0MXfeaYWY=UGw^D^k& zV8*EoZiNFvfbnJHyvI_lD#d`JS?Oms0c@nQjVwOP8K?)t1%yA;+rabX9R~N$H!(6= zHyBwkI~B>Pkwu`11C*U}I!(~b# zW?i?C&f6jF)asrL3IHm={!X zXgm(&&tz^uW5KMMd!%}Wv=d{l(BhVxd^C-4z864L&)gkYhNfGQ%tX4K-U+=i)OI3m z!dM8@zVjsjj@jHF+%QokT@WD^yP#fha^75twHk;`X?77DXFAtFvoeVo5FyO;FsR5< z`9|)M!Aiib>|EF|=1G7gVh<2vWE z9|n~fh}spyg|DP5P@QMIg{B+PbEr8E}A`UbSt!n(P{*8e@u@#Xux1} z4`g^v$tfh;P-{kCfrJ?4Gg}JjBcNKsh$4bjS~y0xS)u;YJlO`%7z~CC9)t7DsyM?f zB*dA+$ZQh8Omed0&~n5q2w*^MH!v*i6$F-HTDMGm!@M-&DaQN)Hs;y=g0hYLDg!2w zks~e{Bi{&g8#{o(m=>HcLYc7ciS}3qO89>s4Xl0*&De zXpD1_kbAJwhH?;@AEbbW4lTL~YNjj=Mv@r^k)t$N)4Yp(0hq|aup6TRgt{5z9$>8K zg0OSUCg^4(Ud_yG7FO8?;1v=*)CS-;5=_DzG-Gu|m<-gOnf;MpCnA9s7sj-K#{5PG zIVHrEu7Jq^5w&_|GD09q!|&h7VbJdlHKpU&CVY%5+!AE+A4JCI zf(BH^EQk~+rLo4;OcGHK02;zOX0BqT{s;pZXOCzWpps5T45{{8OQu`0OJr2 zd*nOwthv zBiiL__G1Yu{jD2_NYjy11Depp9mXLLVa74-5U>=mh;*FUNuNjS`56piAOi+XGsCDD ze)LLx6vnZdgBm=i7+tG5`G*ND_yAqh19Uau+ZLz*fN2`<=O;Ip6~BOQ{gtL3KL78K hP>-ffi$;#@J!0gT5#jxdVoOvEi`J|e(6&X<{{t(Id5-`9 diff --git a/spec/MATL_spec.tex b/spec/MATL_spec.tex index a1ed5a3..33d6865 100644 --- a/spec/MATL_spec.tex +++ b/spec/MATL_spec.tex @@ -1597,11 +1597,12 @@ \section{Acknowledgments} % http://chat.stackoverflow.com/transcript/message/30154628#30154628 % http://codegolf.stackexchange.com/questions/82981/leyland-numbers#comment202388_82995 \item -\user{@sundar} for prompting me to clarify that strings are understood as row vectors of chars in MATL; for several corrections in the documentation, for a correction in \matl{Z\{}; for a correction in \matl{S}; and for suggesting the \matl{Zx} function, two-input char mode for \matl{Yo} and a modification in \matl{Yb}. +\user{@sundar} for prompting me to clarify that strings are understood as row vectors of chars in MATL; for several corrections in the documentation, for a correction in \matl{Z\{}; for a correction in \matl{S}; for finding a bug in \matl{X.}; and for suggesting the \matl{Zx} function, two-input char mode for \matl{Yo} and a modification in \matl{Yb}. % https://chat.stackexchange.com/transcript/message/46222193#46222193 % https://codegolf.stackexchange.com/questions/166527/decoding-the-kaadi-system/168021#comment405995_168021 % https://chat.stackexchange.com/transcript/message/45568841#45568841 % https://chat.stackexchange.com/transcript/39466?m=45568698#45568698 +% https://github.com/lmendo/MATL/issues/11 \item{@TasosPapastylianou} for pointing out that a shadowed function \matlab+disp(x)+ for symbolic \matlab+x+ can be called as \matlab+builtin('@sym/disp', x)+ in Octave (\matlab+builtin('disp', x)+ doesn't work). % https://stackoverflow.com/questions/58727452/how-to-call-a-shadowed-function-in-octave?noredirect=1#comment103801920_58727452 \end{itemize}