From 4a28c1e0d43c6db8b91240d0ca53080c35c826ca Mon Sep 17 00:00:00 2001 From: paladin-t Date: Wed, 27 Jan 2016 19:25:28 +0800 Subject: [PATCH] -removed the MB_ENABLE_GC macro. --- HISTORY | 1 + MY-BASIC Quick Reference.pdf | Bin 227117 -> 226973 bytes core/my_basic.c | 37 ----------------------------------- core/my_basic.h | 4 ---- output/my_basic.exe | Bin 357888 -> 357376 bytes 5 files changed, 1 insertion(+), 41 deletions(-) diff --git a/HISTORY b/HISTORY index 32d2ab3..e818025 100755 --- a/HISTORY +++ b/HISTORY @@ -1,4 +1,5 @@ Jan. 27 2016 +Removed the MB_ENABLE_GC macro Refactored initial reference count Polished code diff --git a/MY-BASIC Quick Reference.pdf b/MY-BASIC Quick Reference.pdf index 51dafa8ffb831cfd5438df3e86b9d19fce2bc637..bcfb4192ebb64f8f7a7d288b03f7b7912f5385f5 100644 GIT binary patch delta 13417 zcmZv?1yEf}(>97j@ZjzqbhFuLaCdhL!QCA;8VK(0?iM7tyF>8c?(TMT-uvJ0|K6NC zRjXFjGrhW>p6;3InKhMXD4C}ye)W)qiQpAwLMe<_?9X){iyF_8eK3W;{^&MANn6aM z6_!M~(Y9n$w!%AKI3Mm%qSgk;8e+PpoGGiR?+wS(su*=$Ix${E#|CKiHviH_HXZFg zhgNFGf;LGRK$^%THXn{aeW2uE;)z~_paFe0kXWP?P*IfU-kx=2dWX_My9=m2{X zy?7}icbu{HFzodhfP`Vkxz08+ky_PH+RDedQjy=@M(w%y@Z%CqS)1)D%3f$-RIaJVo4%IpGI5R>C%Xk>wt5#_jNU%1Dl$`<4ZJ3hj$pZJ@sPHS)QG230jcY7GVn zRo1{VeIxJoOrW!k+I9?PG;_fZJzk%IGO!!$aVt>Jm$v2U=;h>kS$%zZdI5g&e9);5 z#?hyQhQ0G~3mxpgv5gh`sD#Ro15q#)>2}sJNNyzmVW$Fje8t06V3m1f!~@3jSfobp z<%lV@@gldj&Vz@stR05WFFxW|YxyM>2&C{MZ)^cuw&2SE-2^naL4dzI(I!iN;n>2Y zK0%hQANKxk1HLhxpbrKwzZRSo-V5L6-p5XC&t0kQ)FkGcO-rICOW>}X?mBz*tdgM- zn%!HOakBCA?T+5_TvJi7z3KFFGWzl4(xkiA*$-Ge1{n|)dsPHQoyW@E@48eUs#5Pg zX6Z%%Gdo+1eCkDD5+aP8dDMoF?^Vx$lW3J_`Yo`({=T+6YGhxn{t2w3KXyMI=pd_T zDP^|x^L5)qEO>jmq?e5^H>eyT@2xN0(OjkKdMkH@Wh6X|$Evre-}}AUj>j}p4!3D{ z?d#JLbqSBUe(U}InMFtLj$8~JrA6y}{_aN)0!EE=^)M_794)K&Q>{0nD>JpfRfxqQd+??tB6ma z9YdE32V7SYhc^E7nRtQEdnn90bCSYM>Ci=2vd|Sn1qKd7aDcv{^{d~9w)QU4*?tf+ zct>E{P|7Q?E!5U8G%g{wvB6xsezHOADJ{r3%EW#Q&i*6bl?zzijc6ewf`>HtE+Hz5 zsqq@_@%87o#yE^-lAqoZ{JUZv5c}D8r0|gB*cZovK7$SdL*>x>xy~XXo1W_J+kC$Q zT*3oiQ+2Zu-~(R#Ypd!rjnloeY$(dHu6l$6=~t_`iCR2H;#!k2LQ~=4rLRe7JA$E0 zCm^!dT%W4;P)ETL5PZQa^er^w&2p(MI1WlzaUL_x!t)oE&Ls)C-|TAhcoGg!&EaRX zav@pgqJ|cfPm{Vw)$o&*A{~Y2#u{xI)gA80IT8zv7VtAzvN7(k7X9kS-?+ZVlnlGv zJ%j9SSVY_NEcX&*SNoW*)JNwJP9_~c%Yk;&ZaU35^-RH|b38oiA91_w%U7^JFbQuW zFnrj;W^&zvsG`+x;A@*gz$S8ZWDsLGtgY4+IhNJ~*P$wcBGrbJ8i$gmEMJ4=@t$X~ zt{xoSXBc)?jxSkW;kcA2r^2EYhy8~UU#i4Z^5Rh36Kkw>ObE+&qHuD&=`d_K@G6rO z9x0e<31YzF?-+_WZanG92^(Azyes5aBwJM}{fz|Od~?K@^ew$lnt=%3ed*s3$=tX{ zMAldURBKMsaaA7I>0H521DQLezn9U#!$RNG2vMtFEBJom zz3t!KoEUj~IJvrb@U}eNI?mW37Z4=&`(^FE=KVmGfHDp|gNHnKXTJl~0vd{o#KNms zKhz}vpFZ;bysqVUPgEUzNzmCj-OO^8G=^mU=WabkZayan|8cIp3j7_;;)o+KW*MDdNkg^f#Ho?xCNk@$^`=1!wMD znmAwC4Q!J?GVXJmd&F0Vea1wM@g!w`Lk=U+%gm0Jzzo=bT$1YKm{*0y{dI*#ZVB(E z+@{Af(WM_Jj?G+15qydfI~B+_3Y;#r6LSKSI>^{l-A%9NY}r_5=!j`}MAz{Ow5GlY zE;tk&X&G~Nl%%hA{@QCaLd=7eVp@LA%!;Jp)d-J>1)}uNIrFNPRp{)v9Ut=8-Nc(} z=ixgkpTPC?MQZAXJ*oUu&JvzQmig8JBc;8T|B!D}yA)5?eRsJRLNl^IeY(GSJA47Y zesI0o_4K~pJ$k8Mz=Q3+hupCtCzZ#<= znA9zk9-_%;t&f2#LN`)PX7f!;G;wW<%;!e%1>29@JjeZ(Ag1e|N<7-*rYpCe1{ide zo{x{kbWhjU<zUqTJ1abK3>|2lH`p=XbzU{%?S#?R@qu7MMC|i| zi|SfapSflDpAzxT2pa4#gju`V>vEVko(BOyAXHj1Bs3%rDkmEmE18{BU9fQSx(xi+nK4mW}kW4$Y_n;L~f45CU5)_ICC=b zyZJuDiFAkZTW2-b+iZZDI6F@_t81qn zsS3yNk}Bs(IyDPAHyE!croh{9GQ*>XGp`2*`Ev)Wl;U`)TJJ`b1seFh#2F25Q(=J( z^AQX2(*|o9Sy@?`v5B6*=Hm*>mjMqN;?(?I^E#qUNV^ml#3JLK52e8i4?}4R_NRN> z2gW*Y%BpUp@*`^PRh+X=y>9DrZ?hy_6ELnFG*Ru-tcL#IpzEhaw+}e+-Pv@;K^)n@PbBKbY_DZk@edo}L`}UJsvM$CuoB znz=s{x+S&ASjX~VRyg@sjc%J|M`%2r=B1pklG*Gv3)YCb-L9}ai#bO0?DZ_!y6FGj zZ53O62)Z!LxECK@v;hNV)d5A3$G*>Z>(%<%Z_W;l>l%k+(jw}YXQ^5pVNour^NT5^ zzTqvJjCn5U4yA@km#a^`J|73w>&5_Gv8`)$b!*j66=>IkWnzNQUgVqQ#w!3&nAu1# z-KLj=S_ z1aq?VF8n%9aN_T}iQ_tLj;iUJM5nwc@J!wD9L2I49V_aKTSv%wTbLh|4LWMj%u$yB z)&@@E%L8yQ5M{0mn#d!PZ~|U%yPNgrE&?!wglh?>+(s)o+vre-6N; ze#x%NHh%U8n2+2x<1r$h2`e18G+im`S7q^zf1AZISkQfa`&jD=?xOdxG1`{VZs_E< za@?YajY=4Yp&WOt-w6xkHD^aqlkB>{yXbA`;wH$rk{Gj!Yn%6ZB=+jtfo2TXqU zf(u=KpJ+!8os+%YqpzZ*^0zSd=nrkHt7pjufgN?-8c(ium zYuZ*S!KR|)4~bXIPvqEX@h1E$qJ8-Xn_Z8rCEWFbaUN3vcF0Hf8n|W)`_T~Eopds- zvWR6|Fr+zE)q~pfmN5Y%gn-0tyR`&TFhefq_{-0_0P*g5Oxm| zT*eB5P7B(FT&~5g(x}`#3(@cpoZ62Ne}<9`ZBl*Gy;uKDbXJT~%+O-CV%gNj1cHYm zsTe*#qBuezn~+z|H-8q1PeKy=?BdCwI?}&?TeN74xj9cKg{@iEOYXoAm&=U~1J-p1 zDW>9NU-dIrx4!(gIRI>@tSfqTN*h(nF3T)#0?d>caLB$|t=_A) zTaEDy#<*@7&4Dh&w;Y-a)y!lY&k!aE5;@Jj`17%Ft!7!Sjoc!s&Dg<-5OI7g8rg4a z_Xkl@or%g&Fu>mf6wZAguzCn~3%@SYW;}>c!&|}CgPA4dSy)I5C2_W4^a=%^*PD&Z~!+z;n4LW13nlX7!sdv?@-{ynK z&b3`B;<;~9giFYw^Y(=fV;(Q~(nhPFe%H~oUQuFv9^D^Zv5>g7(32Zg`^Qp*t)(1MN*Mo%=i!%6|S-TrxKs~ zL1_d@njeE9?f|LX`IfU~++Qh%0zRB%E$+@X{J$KXlAC4)oR2oBXF?TX8qO8Jg)4sm z+(d42o?Wc#XLojb8-t0WDP(W#!Aiw;OmirX_C~=IF_-SBtc!xFZ?W6bz;|}W5&f`etdpLoNW}hMXGb+q?>c!Dls*Qjj5COGv*m6p0n8oj>w(V7M zSg1;r^2+!gn&wi@>3km_<$p<0K6c?TWa3Y2AgMysB~3$n`hiodjQBLX&_YU;LzOrq z4zoQvSCOVkPbZ#w5?l<3Ty^x@UiWXusT{(nJHNAzyu7dTgWq0OX6uteAtg9W9&_4a z8!5*affTz}WLN<+*pVVVC8nJRTdFv$S3XB{?gYC%9s8j*^2zi3%q7?EjEK{a=;o|t z4-Sp|OTJob>Js6`>Ug8_KG_oYTs`Of3a$d{;^DgfMK;yHMzP|IUx3qv%X7mX<8U~U zwa1>*nyqjTlqTD${2S&?XCsqd7G9iB#2XaUga4<(0{%~h#SUUiz9@zaj2B#?O74J$ zR7zehf#d~OYOdIBi~l)t;GzO4`L&9k1nb=az$VjpAW!D@=ixE!foQ}s{64w5o)vGd3UEAypR$G=mx5$}BeCHsX;j{Q%8 zU+?&UAQsQuQw!9hRhCXN;+kFF3|D)BRY?8ut%wkeEEc|UZJNqkzhzj#zU`Ry^1AKL_qLB_Tqs|J)~;5$&Sf?e$E{5>>k{x`q99d`HTc7) z0v!46_4-$|Dx0L?gV|l{tJ#MuQ^51Ctt0R2>HhGE>(yoN&HAu0!EgM|v<7~u!oqY< z8Rly6x{*{sJdK)fCj(CXEnRNs467BBtLjeLAqDPf}+}vn6fdR3t%26EWFr=f-MF?bk0cdxa0~EbKk=pZ9Vu0!CnD%+# z0-$|{^!O&hVaBg3zBaD9+c^&Si?|3K|9a3{!6U=Eb-;%(DStZ4WAaOvn_s_H(z@fy|Gq{mhHXxTwR1!1&lE11isUn!5UhHlf!)~W^tK_~@WMrJ+=-^$^ZaA~Q zIeUEOZ>Cfjetp2RU*?5G$oV6%o9B5PHGBOFTjr zpdVOS-cbU_SD)j0I7g}~ZEh?<omWD$=O;JdO9o3%N8xNzQR#WJ<3(Ff7oJ8lQ4CUC`zBadvVWTz+^m zyMH`0JV9pS+_0Y0uyfGCOmWmrUTYQ`|M*B0WQ`-#0T=wna_&Q=uvwRu4|cSqT$Gx)X}b_l~>80O`kDW zBHSE%FV2yMfx-k~JpPNP;ZH5PV1Br@k3+ArZbwDMyL>H7GzG+~&uuHej`Pf%A=%(R zVkG-B7V?(o-r1$MX~XdfzajUxq+h8f&o!Da3$O;~!geHt8W_2y>*rPpcS1&G*3 ziv4bDIq+?YK$175{y<@Oq|^^!n|@693LC;YZiwM23iTMYmy>mvKjA(}1LKux!nH&N zu6%c}*~@joC8h^p(F9=z*ORi$-}f6i_x@@r)vw!CKiQbWdWes?T5c@1iT+Adhk zJBa8gKY<%DAeMYv8Bs==5S-;X-`}X9&x|l3F3O#%(XAK7R{qf@unlV%UOZVx@ zp~v0v!`)!^8yn&JI89Siww=N`-Q0a_w~K~&K>98@5qr^)qLp`5pIzF=jO`J|u#G`9^;AgcG~$cJzdQJ;4bipi{(iQph;Ep}JG^U6gF!jmO(2tk+5lKH5u9;o(#!v)k^0ty^akOU#X(Qz5 zub@poH(rwN%X<-A1Lny)?a1uqE;e_0)(jH#X4WWI^o1$GPaG|?rMR){a-4I$b%bjI z*`#;g?QXXE$ylS9e@h5CC`?-RKwDLN^rE9t)Q5H14MfyV04Ic_zrdu=GjxjNOh^eV zg%0O%Pf-Z2d2T(c16}ZtB7K2nmXmVC1hUvEB`WT$(It>NVA1KZ0x?%B1A!~kW}V(z zCUGonFNpmd_ZY1hbilP$*3^rb9D+L^h!539hadxzj-%um4@a(9*A=6OGGF5MP*Wzf z>0Mz$K-O$~W#!WDM=R+&N2;Cze-yYmHET`5_`KUASET04Z`Q#K7tOxr_*01A3U;A0 z#6tji?A0u9u!HdauH;am?@eDg<`K=fgGijgXObZvBH3#8vy#dp%}4ll4cQ|+&{ugp z<@DG$UgO_^4dk&J#1ky&9_cgRw%X$nGjcJ(@?t#m% z9UrLaVp~ZNkv203s!(USBpQ6>D5209RlWh^HDZpv!3~J)A`CU3im%(l--k3>FQ8)d zY7uWs5ekek?lf~zqk~>R@+iz&CwqGF8!3%l7N(C@;sYbvc;XFaXpt_pRU)hWzx?Ybz4;HY zN?b$Z!L0l>Y6=kNtpR4noxN47; zF0vcAGIkCd49Cz(8syzh11g04yPtO>&l?m;Q0L)jG0$FyO>mWTMJdy#ctSPySzP5* zIa^p|rehPj%$Q}=A%MIZ`94wo_eSPX3vm=2G6)Y}+{Z6{MZkBa?)VVqOWu&0? z)agC@;yJe#0wYYTELcM1M|qjk-s$>=q=;qbPN_M`k!j{Vt=lZ}PkPKR$qiMUUw9Sl zFi&TL?p&989X*M>x(b(#+j!HCfO$X%<|1)VzD{jQ>dJ&%(d=uJhpEjH0_fL z=y_e#wZx44`%h#Q6ecB60WTRcFLlz0W ze6!`*w^}mfp3)9S9$j1ZLkhnM7!w^LUOfZXB=BW0kHdGOs0X^Ov-VhQ_P*N$p^6)G ziJbW?HW}Gfa%?+tJ*-UP;^HPx4omamP4JWxbV|`X%kOD^#$$HaoZUFt*1B|2{=G2y z?HxY@C2c+4rD17`)(X~k5^#uROCsM&m@uUuve9-{WlJ;X(+#34?k{6DGpRMj#Z?2} zdU(BGrsmi!i0rYvH052I6**lg^Yshp`%cmap)g-J`-=pRBsMZ=dXJ?kKnxKS6SaeH z_xg{Ir=QU{lkE(mZJFOVJbhmG`Y%k(##;M`n1V-mIGgsopKr}3|Lj*7icSi)$Irqq zd%85bWSo;!xm)kgVtrC^eq6dLA-RGNO490&_pUmrO zrb24~oZXnis&|ds44dpolHKNniEh6;e2AG9D-I$DOFabjpI;e~jqBfFHAk~nXy5Oy zTC{HCj9QNCUAY35)}sHMsSr0XXo_b4wtAV3^=#P6!fg2hZ$%MWPTgDM*n`}V$sC`ndDxbr6tbMd_%l{$lnQ0=vOuLpe%s=(r zY`N7MPX8A|U<4=;Ib7(0F{C`k_~R#+?ks+dH3ZxX942Dj#YYg{&vOqb8ocd8-6A$z zt8}9V`r|94>zvpw7?7a2YjrEQ{D=U7nI=0uC0*Bi*Iy6w)FQiA=wtmsXgb<{GVZy7 z9*2yyBz#UVV}|>dubvMi^d;4p=ou9(FOS_hqr0}(dTU3P249#ygnrQ3P=HInUqLrE z;+I2c_R_{r;>8TO6VMkt;cye>A$^B6g4=Lpr4F9GLDInkwWFs&yRBDX2-O^uS?)JH z`HEs-w0^b|Ph1w?bW+s>CJIETDT=;z;%-*q52Xx~2*u{I@Y~mx67B|Qm$VrJ`1MwZ zdmo#OoJ7Uka^(=-=eFn}BPF>3Nz!TmLEej^quKKZmCnjohwoq@@nq{m-MF#d)mBj` z>-C1y?sLWK?-R1fp+X68rPE8~K7;!XjJNIPG(T;q-O#IBe*iqY5S%b%-{u-<-QG=) zk!zKPYcc#r$Z+!sr05?S&hE=d#S!wdRBzcyF*=h%gO7bI>io7IT~|@>!SDm!-Y(Xy zP5LdW95R7EFdiL8i_)&^UV2B)0)mD>Z&AjbLv%4<6q4Lnkn zzT>Pv^lhgeu0^{8DN;E;EJ~y{X5+Jb&>OC^_M9>za_j-WXGYCt%z%7!X?Az^TBGzym_sV<%w)Y#f^(NtjN@6-+tZ+0;&#yNbxpQ~ z6RI5>0kvVKe&Q(1BJF&GqmY=zAqVXY@F~DHL9!1SH_RT)NkA~;>d=5k>mq?vna+d0 zz&jxMD};?A$Lhnf7^Tb|Dr+f*;koOp;Gdm_D82UAYdJmnhyI-?BaRLo=iM#8S}fL_ z^m_oAkpUN=7YHa@W{CwmX68~_kLTmlxm$C0F9#PN z0$62OvXvX~ZFU}?coR;ce*<5aUO#eOZmxTRqstbRpMNfd=^ng%oj1{HB*g$H6qpWG#?BGGmd1!V#y z?(PiC#m;U7)><5LVhpkqoK$f%~!PcG6!JpN28j-~Wg^L&R=^-i5>GW}efBR9O!5ro- zUxdXO4`|iuYgkMw5Y;~QF^`8iwC|23)Q_5>#YnD8TI{xQj{^GVBAdj!1XVK^$9ev}(2Y`zm*dBQWBdm_hvgORA0rN-i&9y(e`pebS}MyQIr%QK;22@-N{LlhQt-ngGH^yx;VH6 zzoL?szp}$#_y)ZrOLkXoW81Y)rqm7SnVGc3T2d<#)K0}5-eC`_;tdwNxMeNI^RUB&bHmUv$(aK# z_a#2tBctK5sSSw(!q5hU#So8FI*lo?j(Ej7S~=}%UvIt0%W6r^r|B5!Q-}(gVy33F zFsM4cv`A5&(X7hBY{_0u=~AhW5-LKOrDKP$O*DCDb&FFq7qlc) z#fsyC3WnPvSMhdF1**sS_ZBg)6$SUK&<)>%Z>zB4#2RPvF45 zCplA^seID`Dz-k|*>>a zw`C8Iz-t<2>V2g}z`+yTFfYL$z$jHzZTr#5UriTxRD?PThe1f9vo$@Zb{l0G9NI3$K~cKxmKC3lnKb=?!xBE`ML)x< zusu#&;R+KoH5#}$S-%c!s&;oMi>}Uw+rf)~4cuM~bYqsyPtjcoxjf^4K3=!Avs+(P zN}y>qxKncRzzm>Q*u+a*t-kDc0<~7I{eJ(HZn8S*-B5<>p~E@trl!OvM!LfDbfGCq zI`SYl+M*>vdc3Ri^xW%{K=Z;@Aw#K=6~_+q{`Shz%?`$7bknDdmh~)+K!$tYS?!#{ zMFA~z*oGAw;ltLs52p)AWRsd+7T<1r>s1`@xvZJxrLefo8LjcRd8C|{**xm@4-3At z6@L_XLjJfWVDjU%H=Xn;(^vYg3?{yfW!1NO|NdKEAN^!LHq-UmmU!+HY_gmZ&`yE5 z)Mm!(JsN!TR?OTw6lu((==6cX3ez6a22M>fn<~!3g)c;!69xhng3 zsYUo)S!-TOZGe-_ZU2JL%jw?gX|+IyK$}W>6eBo*lrrM-`)Y7Z{l2XZ6(o1HaLoW3 zS|`>=%fc@MDqXg8Ti0d2FaUkDd%xI#Byu`7`A1>%lDHwovZ*e!lr)L0?UfTKn* zJQ-LWH=xB*&+=HMoFa0@^OyFG7FQ6Pm-lCs^PIcqqUCpmjn~W7Qx*XlnDrvvW~ODx z>f^SN?C`x!zTknNyX2BLhg)AB5lFi?;L!+o3Xp^cF z=0y)tF>KB>{Qd8$a-_rCRjWUE*h5LagvpSv4Q-?p`tVS9;=Y-c!+^=B?wCQFvF&_Ylz_=qwAJr{@gp}*2uATbyk+ibe<`;gxHh2pt2z(fSW7VCOs2O+&y2xW`G%IJBitw`W zmAW(M8P5ly&;~>)Xu)6(v^5C~r>t+_V3;Y!Tsm(VcmrDmSIu)cJ2P=IT;Z_%v-HN-=i|@zVCesLf<$-H9ZDuM1Fy#bQl^bHheGamSNmY-H+pP80{_b-NMtT-E%h zi_Nl_4EbU7hy#R6TrsQ zNvDTgICLwHY+|u4DJtW@3}3NkKCe0}*m?P1VsNty%XP&!f+>*WbZO+A&mv;d54SC_ zOD#$`Us7mx?DW*R)viK@;GmX9W;}*I2n0NlJJ#=O3OcGteX@W&aNw+w=2Ia_?(>2x z>@wn?u_nl+Ie8C}v#j zM=xhIHYgJ14CG}l3@o$aBX4+=ch}R9b~fAzIg7g5uN8E3uN#U#jrZ_I;~wb{t*FtG26Y$;ScKtzDp?D?UF+n$4s6jxgp*Jxw51O#k8By4wlpZv2+OK$mc zB8Dc*;YB;AX;)#=qR7UPQ6tY`M$;oZFV=#sQ!TZ;FXHY^7@su{uM83?a$#^~6Q ziGB!}?VrR|*J%W?jMvOH`PJ>8qC+um(o@h^@$X~XXpZ-;9o4|xzoBR%qF7AJTi%E! zoyq|ujpR}85B8|f^v^6ZCw+$hDP4%T*#GB@3c$)nhJt8fYy6+PN^D%fWTh!c<|fo3 zNIL>BEBec)=f!x#$z!`~92m)*?cCx6_o!vTKuLxfzlX;rS41wgaJt9@)AqZGu`?=| zfNGVk^w^+z1o8$N&H4-EggBUyoV_6QiGUvH} zlyj~w>s1vS+b$s3ldj6WgYX5PTD=LMEOjOCkI#Hpo93n}TJa2$Ql%lK^RRS46-4(mCyRUyK0UQqVJ+N4MEm!w}XJu#P{3(9=+|0+1n$5q9s2PfdYvgS--se|!esl_1 z2joA#Sm3xcl{yLcmQCcX90S6$22Q;;mm+AQ2CdxqqRWfccf?DQ#}!$&^Y2Pv9JE}W z=2MpH2*j6_^IfTe=D*Z!HXhCL6^at7{q%DL4nM~q)>~9F7+qnREE)PvtubhbK|VV5 zYrQh>suVe&l*O!#RS&%9KKWVb)nR~fu)I`9-TG<2vJrNp3`>!s5@Z$#k!Dtj#_{hT z3k;@yKKf4zpm1~ie<=XuWN-Si0|^BS%gM&Z#t~wE2-#$Q2qogf2;^o5kg@*L$ZSy% z|9P_kIM_g}|H1&Q+{p{3(A;274$$A7TwH8_O#RdTuaZA{|He1~Z2w%D`)@fA5cn@+ zAnt$3akKrS{m+w(YX*%Xz{>jP2=>1fae)9_e`D-ipnqXNR!+9$6*Fi#0RZT4*FoGI zz<+(f$p-qD$DCZOfMhdsXgO#OHtwb-b7*2{Tp-uK#DJWv>`lj3&`eODxPbramM#0|7Hl{{8!-E z{&@U%y0LL_{#p3`+haB^u7765KkfgfDjR_9Z_)rZ0GR!6?*ME-;Qwa$M+qB%ot5KX zsmRXy&+7Z%M%V$|f0OwWIN-nJxVZrTF9!Z!47oYEx&Kng&cOxvoAsXw_Ai2eFt)!5 z{z-Gd-(*1CK<@u??$7xD2|73D-wgj?f2T5ljhz$l7r}op*1zT#;Lkl-uD=ZbgK_+? ikT^Sjv9LCAL_thGbA@I{=49nUL8PV@QxHc%{C@yKjr;-t delta 13555 zcmZX)bx<5}(=Cj7?5J+t{Hpo)w=B6kY!+YCmqCMPjK1ac>*(7Rms(}QpZf^HQOe~oP1YUZ7H4VLu^ zfvUP!NemLWs9ek-!NhFlgLUdO{{1)pvdLO>p)>@>rB~a(L{&=X=2&FPlkP2uwUWWZk#!{T zc%%M^*ttog9_?k7H$A&O40~6m*ykpR)(M)rv7LGM$CNy(rxjY^?kadslOWs%AA8ed z{|qIn#t)6vjWxmlIarfKlu*;b~ zy*or97U_7s|DD^8yTc38h6_b$F=Rd^c#_M?3&H~}++4q$UOx2b?A^^lp$CxKLfrQw zWJn{XYlVvb#wFO&M4D10BLH|Y;Ih@;hP^JGIRgBo{z8|Lb;3dO67Q(wwEa=`>CvK! zd{HqJNCTth~TIFc#D(2fhQa2QEPsb1UY5fY;zZZSe}e0K)5h`Qb9x%NQX!npQJK+HwWVW$8_PO7oUi`iO-++dB}qJYi-@l6NuW zgbODTtC2|G8ubz^MnX+Xa3gQ=&o-xhHTHHiL``~QWCWqTvu82+EC>eql&~NEQt`)QLRM@Gf;Wi&@P?Amw~XM#SRK z4E}zXGy|*W9y9KNo!0=YypsOJ>ChDp#U>iWD?mPZc9QRLFf$Y2}d;nx<15X{kB|)j$kLAN(*l#Hb`P&CxbVG2K#K82#K?lGQNkJzd ze`l#&(hJUX7KR#01wl%JbX@zJZkLX|DPvy@Bl_E&nARy;|4et&2L@tCMJ`;-g2B#l9BKjmb zDld?ma8vnwgh5AXl1j)(m5L}B?zoSA-pt-Do>!iUHdnId4wqHd*2xp}sHl*}59!$> z5Pefvo)pSWYulj9^r~RnD2LCf5sWC&q=2AUT=#n*)NfzdkbYEfBfAt~TwfsuTl)ez zrD%cquC*WX?%J*MI_c@{@|(P0t`ZlTP;8;TYB|(N)23!gE+qSEa^lAAsXWHyQB_ev zE-RqlY3F;FLf)O>HhLeR0h4zxYe8HP8w*dYqBTPx!-R8C^FwC#s`2+yujH7l1AjMn zcZk3%Fzb6@`ZG_)WC;FNo)Wnf3ivd;i<(%c^mih}H1B}XPk%?z=7HT+v`r;$wvHJy zH=QH7vGmtn<&OK z4p9Uq9h}&=Rk{J{x)~0c1KT(>o1w||fff9I9Rm4@wjafZJO3d5;mv3&Kd^POZ@F1KqC4;H}t-64wd>zGwwT)WaOah}#D)UU{6 zcDdtF;3G4)m1($4gjTtWF3()v{w?($aWaH!G3{WjsE8#d%2Q_n)1F2G0hczDnnXJN zQ_pHCRIoC}(TF{y5H<=7q!I0HBwDJ0vHY2*0gwob2?PM3NfE2aQrnwW7% z6Td=us=-9^Ji=epMqf}GmWR}N-3gcpIQk?U^#tAg<#YdpE~nPBFyHyI6S39if&_6x zByBB4Mud`wO)GgO9vj>KPWME+7MP_Odbc55@+npOQh&-t;x1|J5H>ZUdWh=7ap~* zd>t}ZeU#$XJJzYv*|lvp%`Xpf6|jN$PDT6npkbbfJnPG3Oa<#$dNNa}3647?{Aga$ zigD3F$wF8gZuC>>WyLzAw;0v%7)A!@r()GhJDJ}(bCfH zdmSG#*KzzNFCV2`4wa)d5|JvbG(Ykt$X=BuIKU2i_|z5Jj*7s1WabLOYOOaNf9Lsd0j_|0PR4Wwl5cJUHYUgl~*^Rb6s~9-^s$PM_g=%tO zMk;uI9N36f1xy4M^s}~M*fXcZkXmLC!228iFsPUvSjD&zX#y(PeI(OLiRVUTFnkv{ zQbY@91NCp@INUT~{!m+4703yxyzwi7by!(OaCnVLnqW+W2+>(;R-BbuDv*>~20UOE zDZT%=-Tc;3B?)-?lTON9YHWI315qlURQ8t-8{G-8%*GpCU>~)cx$>NXpM4B8V{CKi zaA7aTn;{`LJ)e{tIi=O?6c)RzDF7;c`YjMWVgA*CD63XnTMaC(yWa(I#`9D)+p?HO zQgDi+IPj}*(;?1MQ~ILPmodq=9OO9FG0|^j_*((@njHR_-@qn@b%crdtwXDSM5PQi z;^~_Pku@WeHIq2}RNT**)|oWa1QU|O1?1*6UoKAU2X#>t3Nb9Je)~@1-(g&Ay6V-K z#As37d90&L?8N*wP>;xgkSlT!JGCEO?YiEMO8MK%jCWDgG%8=T8({hhh0)oR9Vz&2 zOyovusUyou7%|o;{O+TPZFTe$+KGtWf?Jl)rPGYW9f~;!>6}JVMy(GxTDaI#b!FOi zF!dxQ4`F7{Crnz4A?6ll4VI%>6xFc!=1Nd*ogaFsJlb4SKp+(b0XsFF6JC5}HMwG~ z0#axtkE|z(v)fhh%5WXV{E*8PZw=kCEe|N{S>-U7a4D$X=+d`@@`>z=s`yr2=k2fIWjL>iXmhpB5`AGThn9!_rNS(?96 zmOzZThOO|G6Q}wh8k$#^FQ{;QJ$)?7Lx zjk4s&zK8Y9;L_9X_jxSpd_s;l6`9oqi>)8WA1->PxHX;F+OgQ=U^Fe5$Te?`g)vU# zy-H~{^OUnzA6ROU;7+d|DZTQ!-z!Q5Yp!-@_7vgusy($BK~ zLT^?+RDNWGi0H`D>7z~d57@|Z@y9OXZ%ew}tI$oJot~APp$(eA!6atOv>g>SH_>KW z#rZr`qd3#KvPWh90*(QeL$uzU>vW7(= z`d6zAXE5XkB?syv=Y&!fW4gE)QZ1uc#bk7|{{S)0)M`v!;TijtbbY*AuY`KxFdced zgbWKWRp{f!^?K~gHbE%@o|-yk^t8B2{!FSZHReHWwdm}-PrKu(XIb>gSy^5hZ!mpA z?p+|o5R6nZMQ*9v0L(T`Si&QqU8X0J*sV)WAelyAwl zHfrS5+eTSAWtK>DbQb2{gV%kEnri*Mjn!{W0E+>mRE#t7>9u*gMwwGbZpIFWJ{Q6e zjuvSz*XtKTc4@Zia<}T%{d218EAL)R^Yvs>$Rhb7oIxX#Wfmr zgU7OM@+E-p?@l)7Kp1S$&N>@;uoL;gvg&rJ`QD+ENNoZ=gEZ@^RT{4`AH0s5p_%~5 zed~*eri2=>9pI0ChHunyqwlqa>MLj2^JrZAid9Iy^yTxs`-1Tl>gFY$)u7DxpQeLnc$brfA%G*QC=&FY0G-~m(*$BPmG3m!NI)qthljqW*0-DSs#evi$@tZ zvXco0{)F{Fjbz3Ae$BNaYbM2G45S|9FOd!Wpf{Lr6upOwbzmVz4dK^WlC$_3Qjc(qpQt^ zLq_Z=RYIXAPR={sUR$B|@1iyl9?~I{yupb};v=4uLrzy}Raegt*Z6fQKsMdGg~|JO zns?t^hs{`(S-!4CPdNGL?#-~kz+lKL3vGEeP4L~n&>C#FIIj?}MB-vlDLgYyEK9kB zuanLMwu=f2ACIyAgcebF$@vHs|2A}%BiLDRVI6p$OrMw1LrPOeR8^!q`h@O%4G42^Y^x$dvd|_(*_uV6N;{bFgTvW4*ebxAuKWo7|AIEgztGaCS)Cjf#T%PMCSqwkeyyz+o07Sm*S%x&lNrL5byZ=&TQ+2 zs^AS|y!vPe^I6@c_Nu~0&8QoiO2$vsr1$2@ZDnFR>Ua1M4sam+wQslJU)11iP3+T^ zt%GxmqtqaY(LSm7k5gRg8EInY5B?(eR{nvY3`l#1l1)!Q`uEc0mTCrSdIJLbe(7NI z$KlVVQ&ehT#4{3h;x(bf_C7Cy?IPiIW0Tcv6qpYRN3b4SpVhL$dEak;Po%Qn#(ysx zRmXo9X&Fk#b#+45WTZ#IuZ|&XYKCjuBjo=`qjz$Ao6zO2X$F93FOg-p{m zTU28RmI&_A?IN@WRpLl+IeCK>y28=8PgV|bk!GK#tZ6uLdTd>$3~?`V6|R@@Z1xv% zAl9mfhA#=kQ_&;9Pn^PURwt>IxQ()uIkEWC>!5D(0#wT&~mcUid(X(@XNK~SU<>3Q=!JEd*j zp8-viRO)G%g+X5)5(xK5@22RUzDT)DW5ukRdr*6ah~qZdW3}bgjTB^=N&MVKni_s~ zN^ZHFnszEEigFKES$&q$k=L|pHVR{a6bY8RG>5JbLRq z05rq*F}z8ip%ANF4;e}^Eol6GtPaIfeW*^pYl$=FZAw0-x;;4}mrJ*q>40^5lT*)OTCVfhuvKz69JM8_3&{1EedRze zgRd=DXvTt$^_0FVVf*=qOr>#+LtGSWJWD-`yLN^+cd(LeFK$E)vv2@UJ+HZe_nu0Q zt*-Su_@pBh^nr!0ybRMGPi4x7M(f)c^A4ZvUsjLi;zX*96-bGZHAq4bB^`zvV>$M? z5&cx3tGZqndo#6@bh#FRqEXzEn4Pq$m5@$awCMze!7P2!dvxOsv{>Nfhk^BZHm-3a z(#{6%6dSdS_T%@~$77yCWhgvAysKubK>0+M|h^&8)vM;|3)5VkF0;TnPj6*-k`{UoL~ECdhoGax#sLAN@Stp8&^ z;yJ#V^!%^nZ)erBqEowD2OplGPrIvU$@e?kC%@qD!gJxpwnT&%>I2(L zKQF>ZCi`{lH0$)Lr#()rE2i|?fR#pF>c>O1u*dMS*h=C}&Du%W_b33PX)w#b?xW1voc zg+nAzK}fsEfhA58X@Et8=LQS3C^o=?U?KMI&{o1{wuiElAIxhs4->V@v!fPUwjIh$ zJY@O>77I!HNtzUAJ+=^6Y_SkHX1#bJ@+ohMO%GS?+6o&>~ z)t9$sfuEE^>G0rF$lm^W0c3ZPpa?#ALsgi3BZVT)93J*Vor`qewG(S(z(!k=#Pc zQiXznu@NNVpQGe_wR>B-+`~8*^*A9=|2@Z4Alznrv}vMNM_Tg9G<#vwUnxhXt( z_rj1{$GMQ3q9$Yhmsm>thVq4am`pV^R30dHZH$MOsEp2t3nJnKV1BBMDCQ(!?eqNZ zREJ%3a_km~{D5-S<=uWZel8#h5KgM!<^oMuB(R+M5gRD94EZh%RC8R0@fCE6LK| z^#v)o^UD)X$N(8JWfT%YCt?ABMMm&+s*xW%KJ9|r*vZMXSh-Z&Eb7N(_(D8*h%lCF zrMR7qZ|BSykZ26-2gZAkhV)%d0NXL>WBXssT|PZ_I*m=}K!D`6aVo|T#$^5z0bpaJC=nR*4{WcaKvkwjRvUy(!3EoQ#~!Q zlPTNa+#P80n3vjgm*n?y;+N9i988i6H>>$jH|v=AJ9{T%!n1HkFbYBh-=mJCt>;BI zn`^)lG#8H9HI~iiHzESxd(J2A&viWcRkfR6eT`F#0Vo3z<50)3TE}@4O01;-p_OKR z7dk_CZi%v=K#o+4i}TSGnqh=OUcoA};xZg&P6YW>&iiOZ#(x zY?S$f*$6uFkhv*?N{{x^p7M<~eq}t0s*Pq)Ul##mvAYj0Z%5jIi%paoALDTy>!KBT zN5~cxRjiVlZ~eXY!n}1{t1X@GTr~GbcD9J?s~>hLn4eX6=L&&{iTEhgM3$`dHc|=_ z`XfanNH%scwh$0ZzdCw0UHY18sZS?957nqv0cyEgNZik%}~46j^f*q=*RX4r0uA}Pf6dubZd$G z6n2?U6)j0E+Vh;Z=fUz>8_dkt)8Y>FGACEGZ{w1N1g+#**SW3 zYHfBg58a$UNoF@Z`um#etkqz51MU=XvR$BahtD})O?Yow^tVx{XN3}GP#idyX0&?d zBU`0J`yobC`!2eTW#jzit`X@OAX2d8k2S&ow~2J|__>QHrWLY5gby|OGhJ0aMpfn( zjJdEHy0UJKoNL@29OlvK4}BxEe&JzPRO*|RddC&vdbcXLMUx|s`T_u3vXA4fD4~hTG|YysPb;Y(&Z?=T zrV>vkMtD>x1ZCq&jN}ZL-i-PkUL}rz1TyXTJ_Zd7(~tQ*6SU!_OY+a(vOX69>&#_^f68awB_TC)-HAQoG?x&ETQVRh@9uA4uSVC*O2do z^wfb}f<4(&H7ZkF2_3LoL^T}9aO>Z*3zg7U#LAcY1I9jd(e;r|Y{7eiq+ zaY??}dJ=RVLu`A?+2v-8RPhG6g0OTPKR1{~9yMze{-vHhYdZ0OYdC7xt*n(2wYu5E z&;fl~DTz>z=?p<;iMQ3+ zdHUnvpTvv5eO%60yJgr>lrVkqiSF({m7NCTTe98`?TQuZS<{`;$CFKTn}#}7Uo}5}GD^#G>oSrp zQR}!>nTo6wVPMO)u$@h!Fpz=t&+1OzD5`y?YzbzIG8)i&!4Y($Yi|inD| #w|0 zFR7PTbY{xxsD)3X9G4$gImj%Rcy^iUhH~*pQXKcn22qv;lQXfI$9b7*dU9Yb4j{W( z8)g;SZxRu|uTqE5ISveb!3nHk`J~>3{dRRrKJ-_>=2u$y!3FZe?AAQU?cI;yZ$vNj zhG_36z^JO)%B_(LaCY`eM&|MhSG;e@&@_K>2f*QjZm`X}I|GR*lF5SFx}}r~ zu(#<7l~>jkvg9TB(<#WZ9#^^E?B}{up>Q%!j=b?AIyy3Mi}m`1HBV8DJ0LV?F-LSH zhXI>^&85uieLCQnp{BDAq3}2t{ZLLEFfQpi72jbjo>w5A+K#m}{g6=PxeU9JiTREx z6^p|2M>izYmEQHOx&B(q!>xhC1rJtZ6q6zUXp8dCll4;;8(T7&K&xJ*73iiIQr4z{ zdg%({{VL+&xm-HfC^1amEL6D5y2_7X&BI5AF!amm+t@P=@(9ix5q5uwC?B(LoANIp ze?QfV2lIgWwIoBLXQT7sQ{~oqF3Y{{ObrJ!bE$r;s?|A>)> zg@@zN-~%U>rIr<)*8bulke?`~Qip3oHBIl{?i$Dtu$jcLVmyD9*^JNvdTFCr#eTOQ zKZayD5L=ZvI@QsHdS$4$fpA|_zGON5&K&uiu^>pSd%Ga>WS00M9xaR{+akoy0KqO* zoLYu7Xx(na;;QV41UBLdW*V+jhTOS24B0w54L$x3O% zvW%Z!Ud4lWk1=Xpt=`VBLK@{|M2p9Zr?0J%#=R1ji?XLG^|Wfp^oQ@03=g}GKSN8; zRaUrPcUJ}POIrUSyKgl*@SV;dzQ`Br=m;N zo^qC}uWa8~N%lD2mm5+pIH!2Y5v6mc$ly3QK^?eJdZ7;Q8VwjG@#BpfAggGV&@@L4 zPQ4FJ_oV7>sBuU zoX8V%x#tX?Un7Qk^r1uJRNpA~Q&a}Be;mj{Yrr?9hxOaWk!_w-NCz7n8elrA>z=8i z_wy-PJ^(gogk()hL~_a&g{Vc&$Xm^ zg+?2#EKF}sIY(Egk2_`;&0@}ZU+-KSngV?tQBU+OnEMXtdako-9P-U=QYqstaaK?L z(IaY)zKGIY6yJ%zy2@V1yu;6xp7y+BZRnxh&}uMR@G)UZXua(Gb0xJ(H=B!>G;eDy zX*)qaDN5Hnuf6YJt2Tj?`La7+oY>dO&WG|E{c#RBvhw$XYmAQYKB&3TM6&G9w-d9<4%Q&dP5Cdp5YnUjR_y{NcJ zAy$&EIB1FPTO#u20e)xalsFU^Z%R~NPA{F}(}tm&Ixs%4+He`lp~kSDTlV;dQ=2%p z{m^jiNTakrZtM&DLw5<)_jKXT?BNz(I;JZ+)*pExXLq&EkbA%vPvcK83y#azK}JNC zo8>Djd8I0own`A_o0-Q04CKxSr!r<6*VCQuOu>7r^w&x!5-d$tS*XHyGdKnsIqV~< z2up%7dJS}xFpw0=N3?Ps3PuI`?hk`OgXSV!Hs4vMr6+N}B7=f(+mqSwGSIX3=Sl_D zOIT^BP0Q4g)f>Vp4(ixZkNOc*09&!JIV7?vb0;p8>Bf)}?4jn&ojuqgIIL%f02-CA zISkkx)>DUV48aslotB&Rkq=1MI+f_do)s14x5q0+9|iTeX9)!Q^pZW)9WRs1(ezMm z3qtW0Q;U={wxjaJB*eT%^)DtB#5y#rC_`=PmxAJCV^1P)22k(gHSdzB&e~e_C3+hp z2#ZOmh@K$>5lA*-A<;>9x<~ESfe3iKr~!@-JU{6_@8d<6{A^+6gc+OG5M;~CG`4NPj^-~ z4GFO+aHZz5iJ74W%~wGMSn!ibnAwpiy!d|ZJ{dd3Nj4H< zu-wcLx{vRCtD0qpn{@V{Lzc10-vt{<$k$e!Tw(w+yaO;PFYqdoQ3v0DSsas23VTyh z=85_I+__edg#QkT%jUBfQP0sp6S~m0Km2xLb6VqySR%&$6PI=cer%9$2vTmdC1Gk9 zTCbX8GF^n5&!E(*+CYfU?N(|o&4dwwC|7nL@SO4-cMO`c9b{8<07wy*%*hG&mQ( z>m`E0lkbY?B4ryUj(@9)^gg()g(dwo@*@| z^1%*Aq0DIpOQJmIxC+b=*gT6*BRuMRI6F)fC2%QyK<{(?%v5aJ{pHv%*YBHhuFwfn>Lsw0r}wi`FQpqDtP zDPd@6823jcQ653gV`g;6nqyuqHzGqSBcaS){cHA!{(Gk~z6$ZT=XO+vMNxAT+{~*f zs)P@Zn6Nu*;{atm+EVN6vGzvX0hGm2B(@?L=F z8or#9V0E#>$wLdL~BBcBpfEhe~5F@@6;iE*6tk-4e)@CYKN~xdU!i4b+ za1G0#&cRDH*lqp0XnHxU?u0=vIyZm==u=iP5T2h2Pi<}`8zF@U$vb^Xk=EH3~f zws|_tsvYvffez(jjUdNK8Y*v*i|cMXH+CfwKot`Xje(zeE7?Y|ndv`I5Be@En%t0n z;Q@nCjBj3_@EFzP+|xVOsOq9sDA7ZWLs!s=hhs+PwG(s*MTkrqB)=K^Mwl%krpegJZKP=Dw@ta{-@YSxeCRBs65D8QEv&_z5*S? z#bk}mu;;j#TV8{3mHCIya-;)w@7J-tDRL#qTO)`*=S8}Z1^jMCp~Oh?9_fT&N3demsSoSHigH~Ei;f3l z5@7o&OU@H~ncTE1{$gvnflFk*BYS~>9<XN2QoNwi;C z{=)dV2{<8dMs(CbZN>I+m?sfn*051>93IFT#wjNScj6Ob!!+k~RmDbhLE+eD+M~V( z^caHOIa5%(vfddexddvN{k966fALz(!>AVG28s4pv0J-_gD^`zyS>6QTYw(^r@fd0 zp#R%mUJzf)%oZ#hA|f9*KQCXz(mrg<(mtGI06T~q%tyohpNqx`6YW3003e8moA+M~ z#FHj#4KDx@_(S~<@4o{01waCSV*j9fR~F^v{@VgR0X~6$0>C_ge<}z6DKl;H&rRU@ z_;^~FY~d;43Hf;bq4Dyk1>3{pw>a3tQ^2ta2>e3;@$>xS0v`_;(9-A#Uylgk2mk#q zH|XC!aPt9xf2-!^2Lb+^^8e-eAB^Yk-f;7S`Tn*Nz%2myA0FhtJpTjo{@p|X0KorG zFb_Z9-?jpH`2VpLzzg_ipa6V);Q!9?CqFj;zz633C&`~S{aqb^pP%QS#Qgkxe>(#Z z;0FE80|Ned{+C;SFo*#7ACQmxzZL#RAdm+L;QyP)1N=W@`(F+Md3Zs8ivjWo@c)xT zK!ET6V37YhYXSnie^<-{65#uLK0rVq|KDQ%VE^>^&!qGHUC1Ad=YPfi@gMN#00RD2 zDDY<({u<>!Zt;Wv68ImC_b;n~fAj(WO8f@{3;fq$esD9hbFgyz^Hs62Cp-@ZKM074 N#=s!0Duapk{{gS9!#@B3 diff --git a/core/my_basic.c b/core/my_basic.c index 8560ca2..0911719 100755 --- a/core/my_basic.c +++ b/core/my_basic.c @@ -343,14 +343,12 @@ typedef struct _ref_t { typedef short _lock_t; -#ifdef MB_ENABLE_GC typedef struct _gc_t { _ht_node_t* table; _ht_node_t* recursive_table; _ht_node_t* collected_table; int_t collecting; } _gc_t; -#endif /* MB_ENABLE_GC */ typedef struct _usertype_ref_t { _ref_t ref; @@ -712,9 +710,7 @@ typedef struct mb_interpreter_t { int schedule_suspend_tag; _ls_node_t* temp_values; _ls_node_t* lazy_destroy_objects; -#ifdef MB_ENABLE_GC _gc_t gc; -#endif /* MB_ENABLE_GC */ int_t no_eat_comma_mark; _ls_node_t* skip_to_eoi; _ls_node_t* in_neg_expr; @@ -1046,16 +1042,12 @@ static int _ls_free_extra(void* data, void* extra); static unsigned int _ht_hash_object(void* ht, void* d); static unsigned int _ht_hash_string(void* ht, void* d); static unsigned int _ht_hash_intptr(void* ht, void* d); -#ifdef MB_ENABLE_GC static unsigned int _ht_hash_ref(void* ht, void* d); -#endif /* MB_ENABLE_GC */ static int _ht_cmp_object(void* d1, void* d2); static int _ht_cmp_string(void* d1, void* d2); static int _ht_cmp_intptr(void* d1, void* d2); -#ifdef MB_ENABLE_GC static int _ht_cmp_ref(void* d1, void* d2); -#endif /* MB_ENABLE_GC */ static _ht_node_t* _ht_create(unsigned int size, _ht_compare cmp, _ht_hash hs, _ls_operation freeextra); static _ls_node_t* _ht_find(_ht_node_t* ht, void* key); @@ -1398,7 +1390,6 @@ static unsigned _unref(_ref_t* ref, void* data); static void _create_ref(_ref_t* ref, _unref_func_t dtor, _data_e t, mb_interpreter_t* s); static void _destroy_ref(_ref_t* ref); -#ifdef MB_ENABLE_GC static void _gc_add(_ref_t* ref, void* data, _gc_t* gc); static void _gc_remove(_ref_t* ref, void* data); static int _gc_add_reachable(void* data, void* extra, void* ht); @@ -1416,7 +1407,6 @@ static int _gc_destroy_garbage(void* data, void* extra); static void _gc_swap_tables(mb_interpreter_t* s); static void _gc_try_trigger(mb_interpreter_t* s); static void _gc_collect_garbage(mb_interpreter_t* s, int depth); -#endif /* MB_ENABLE_GC */ #ifdef MB_ENABLE_USERTYPE_REF static _usertype_ref_t* _create_usertype_ref(mb_interpreter_t* s, void* val, mb_dtor_func_t un, mb_clone_func_t cl, mb_hash_func_t hs, mb_cmp_func_t cp, mb_fmt_func_t ft); @@ -2330,7 +2320,6 @@ unsigned int _ht_hash_intptr(void* ht, void* d) { return result; } -#ifdef MB_ENABLE_GC unsigned int _ht_hash_ref(void* ht, void* d) { unsigned int result = 0; _ht_node_t* self = (_ht_node_t*)ht; @@ -2343,7 +2332,6 @@ unsigned int _ht_hash_ref(void* ht, void* d) { return result; } -#endif /* MB_ENABLE_GC */ int _ht_cmp_object(void* d1, void* d2) { _object_t* o1 = (_object_t*)d1; @@ -2436,7 +2424,6 @@ int _ht_cmp_intptr(void* d1, void* d2) { return result; } -#ifdef MB_ENABLE_GC int _ht_cmp_ref(void* d1, void* d2) { _ref_t* r1 = *(_ref_t**)d1; _ref_t* r2 = *(_ref_t**)d2; @@ -2450,7 +2437,6 @@ int _ht_cmp_ref(void* d1, void* d2) { return result; } -#endif /* MB_ENABLE_GC */ _ht_node_t* _ht_create(unsigned int size, _ht_compare cmp, _ht_hash hs, _ls_operation freeextra) { const unsigned int array_size = size ? size : _HT_ARRAY_SIZE_DEFAULT; @@ -5023,18 +5009,12 @@ unsigned _unref(_ref_t* ref, void* data) { unsigned result = 0; result = --(*ref->count) == _NONE_REF; -#ifdef MB_ENABLE_GC _gc_add(ref, data, 0); if(ref->count && *ref->count == _NONE_REF) _tidy_intermediate_value(ref, data); ref->on_unref(ref, data); if(!ref->count) _gc_remove(ref, data); -#else /* MB_ENABLE_GC */ - if(ref->count && *ref->count == _NONE_REF) - _tidy_intermediate_value(ref, data); - ref->on_unref(ref, data); -#endif /* MB_ENABLE_GC */ return result; } @@ -5060,7 +5040,6 @@ void _destroy_ref(_ref_t* ref) { ref->on_unref = 0; } -#ifdef MB_ENABLE_GC void _gc_add(_ref_t* ref, void* data, _gc_t* gc) { /* Add a referenced object to GC table for later garbage detection */ _ht_node_t* table = 0; @@ -5439,7 +5418,6 @@ void _gc_collect_garbage(mb_interpreter_t* s, int depth) { s->gc.collecting--; mb_assert(!s->gc.collecting); } -#endif /* MB_ENABLE_GC */ #ifdef MB_ENABLE_USERTYPE_REF _usertype_ref_t* _create_usertype_ref(mb_interpreter_t* s, void* val, mb_dtor_func_t un, mb_clone_func_t cl, mb_hash_func_t hs, mb_cmp_func_t cp, mb_fmt_func_t ft) { @@ -9539,11 +9517,9 @@ int mb_open(struct mb_interpreter_t** s) { (*s)->temp_values = _ls_create(); (*s)->lazy_destroy_objects = _ls_create(); -#ifdef MB_ENABLE_GC (*s)->gc.table = _ht_create(0, _ht_cmp_ref, _ht_hash_ref, _do_nothing_on_object); (*s)->gc.recursive_table = _ht_create(0, _ht_cmp_ref, _ht_hash_ref, _do_nothing_on_object); (*s)->gc.collected_table = _ht_create(0, _ht_cmp_ref, _ht_hash_ref, _do_nothing_on_object); -#endif /* MB_ENABLE_GC */ running = _create_running_context(true); running->meta = _SCOPE_META_ROOT; @@ -9599,7 +9575,6 @@ int mb_close(struct mb_interpreter_t** s) { _tidy_scope_chain(*s); _dispose_scope_chain(*s); -#ifdef MB_ENABLE_GC _gc_collect_garbage(*s, 1); _ht_destroy((*s)->gc.table); _ht_destroy((*s)->gc.recursive_table); @@ -9607,7 +9582,6 @@ int mb_close(struct mb_interpreter_t** s) { (*s)->gc.table = 0; (*s)->gc.recursive_table = 0; (*s)->gc.collected_table = 0; -#endif /* MB_ENABLE_GC */ _ls_foreach((*s)->temp_values, _destroy_object); _ls_destroy((*s)->temp_values); @@ -10092,9 +10066,7 @@ int mb_push_value(struct mb_interpreter_t* s, void** l, mb_value_t val) { _public_value_to_internal_object(&running->intermediate_value, &obj); _REF(&obj) -#ifdef MB_ENABLE_GC _gc_try_trigger(s); -#endif /* MB_ENABLE_GC */ return result; } @@ -11292,7 +11264,6 @@ int mb_set_inputer(struct mb_interpreter_t* s, mb_input_func_t p) { int mb_gc(struct mb_interpreter_t* s, int_t* collected) { /* Trigger GC */ -#ifdef MB_ENABLE_GC int_t diff = _mb_allocated; _gc_collect_garbage(s, 1); @@ -11301,10 +11272,6 @@ int mb_gc(struct mb_interpreter_t* s, int_t* collected) { if(collected) *collected = diff; -#else /* MB_ENABLE_GC */ - mb_unrefvar(s); - mb_unrefvar(collected); -#endif /* MB_ENABLE_GC */ return MB_FUNC_OK; } @@ -11874,11 +11841,7 @@ int _core_let(mb_interpreter_t* s, void** l) { _running_context_t* running = 0; _var_t* var = 0; _var_t* evar = 0; -#ifdef MB_ENABLE_GC int refc = 1; -#else /* MB_ENABLE_GC */ - int refc = 0; -#endif /* MB_ENABLE_GC */ _array_t* arr = 0; _object_t* arr_obj = 0; unsigned int arr_idx = 0; diff --git a/core/my_basic.h b/core/my_basic.h index e4ec8cd..14e6075 100755 --- a/core/my_basic.h +++ b/core/my_basic.h @@ -50,10 +50,6 @@ extern "C" { # define MB_ENABLE_COLLECTION_LIB #endif /* MB_ENABLE_COLLECTION_LIB */ -#ifndef MB_ENABLE_GC -# define MB_ENABLE_GC -#endif /* MB_ENABLE_GC */ - #ifndef MB_GC_GARBAGE_THRESHOLD # define MB_GC_GARBAGE_THRESHOLD 16 #endif /* MB_GC_GARBAGE_THRESHOLD */ diff --git a/output/my_basic.exe b/output/my_basic.exe index 16e10d34e8bfd55a9649612ae5ad398b17596a01..b8d0838464d0e1e97401644bba314cdeb81111b0 100755 GIT binary patch delta 16682 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 delta 16804 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%0AJ|CelHl&4*eOEyN=pu_s0Y{RKf63Qk} zQxY@;3mupQdcJf9UCXk)Bj8PViOoCv@pkw=i9*XJq ze*aq>rk=3Oe^vFI&gzd-jx*EXfgq;I$rx;I(G|&%_`jrJPiv;Tq+m2mrxOP-DW*|T zDn6bt5Zb_9N(Z70W%TkuXa_xM@F0vX!L;Wf_=b7GAY3M8Huu4>1>Y_H#~2g8HpVb! zj0rAdOsHrK>#VPgQ9uq&U629^|7Bh;y#jMozzAfn9!JH=$bDQz?)|gB;vP>Ik3{aX$9~2A@t6wSQH7(B zyVn@DLRvK~O{>V>k@*$-r}V@($i8RVSM2wXuE0Kv{yiGmU;D5q% zk^7`nm+-Nv71?J^{)+uKw0j1!FCP9C`>^2^*yCaukL=@8oQtJNN=5EHCVs^|n&wVG zmt0EACO~_a*R3 zbilO#wc^A0^a0L?L2J`b$DIZ(@`@Zj(#+Q4~(GI zGC{!tb|z&0FOgFExkPH!&n42}EZFGNF#i+V5(C1ISxW5d^6BWQ5I~hPAcPO>OLt6# zpI{{Q&W7%v*B%Rlr~CXzE39Gx{XH9pPNso5(3sz9rcpV_V5XU-c|E^rW5VL4Eq?Oz?*>)MFOJLkR6Q z3#NURgoVQ1J^q!X5vyp}!!;J(>kV+KsZX}xnURQ_D{kC{G<`O-g@g3qY{>9wlUT0J z_z;o(&)L+JhkF90O_-9A{(+J-z_iu{1-p5W>nogNbssI6s3?{o6mn zS&NCVPfkNdx;}&PW27mPj#~(3+<9Lv1Tp`v$kv1ah1v(&xztc;WhA#{MI`sjsz|Po zURVT#uhouaWMX&cx%wtuxfpEzlcu1*;7cEqTan3mrr*b5j$_9o$r1>x_M#gyo0*5H z%D#km^v)7I4Q*S3qqz#Z;WxUNg6?bQZ0hdMtl8GN$w?XAux+_@&e^Np!0eT!+vxT_ zIhib_;w+vlZxXreikit;ic>43Zp)xAI?cdkXqm=z`7&tB-?&46TLvjLo?ml1dWhwi z%l!gq(sGDHYi?K$?fIF}bbc3TO6#tG8r3?m_m%8Zg!A^R*Qja*ysjf2_lbQS;7G?@ z_E$?%NU)`SP5UonXzP_QsYaTMwcPm)1IoUIo?Qv}RT0a!68OiFF3;X+JGlyt%-_6D z@2$qLgbuU@!_ViOYz@oFjIOSjj}^dL*h>owpeIDrx@)0lwWOaS+3NAdHx>o^==8PV zU+1pgC20245PvRXXnAWI-L@9$vR!{I1jY*cJ~?C;F@KJ>f2`raO9*Fr9gSj6Du3Gk z;Q5y>*Z*&q#Lr!hwx*`_;7d*4VZwV!NB6CVma=s^*YNqTx1nf1x*!Pg=kjOF+E{(Z zAF2EIc*-c(%u%gtx^w8C-{W*Kom&ShAf8672MZc=?|MAz=2QE6JWZ9+z8i4Sou)r- zK+`U?J=_4JfPZ(9cHab3U?aV-3Ho5C7MrotdpdnHb~;M;Y=$=&l(zkV0evd{@B?IG zmuXwjCO^pNPa81WjJ3Jr2^IL4mudZNc;eo5foisag!h)xQQKfXcK^5yyN5|=D+_ji zL1+F5ulN@i=+vLkg4=2FPjD2XY?kfpm{@Mf$2-uHV_Uce&``rpu!5Gp*on!JoJLz= zCV#Y;p0UESa(VgGFlye6+@-Y5Zg^F9=UF_;`QaH;ghrFwYyIu?TVK0|cHILKcu8~j zz_8B~(S$n3;rUS81RL}Mri#5V0-N>wnC~?y_dR-YANzWeHYD%@V-6@dsW3@E%6sFAa#gG+ZGaBY|?4mDcldLQ}Zdf8&s#Z>-iq8Q9G#r zeZIdPo$xf?Ih+;f^V4tv6M$pCfYN+S#lnauE;%&0U*#WQLsqf!`^ zgcQp7<Z&75PtNJvoHzv&|&9bVIx^hJpQ|07nQDE zDMM~YmVR(naSnl1-!H5{yn4 z=++YK?nbYb;F)n8t#SdAkQKDc1&mcc(C;t6NPd-s*0_k9fr3uFh?hmR>C%gk%-WMlb^ki8}uTs1%%A!+CLB@adqB~0Q`fDcb zaSc>~^J<~e-dfJ}NEO+myq&Kiam=dtvhtjL2HkQEl5hmi>#zRnWseI)km41Tm+IUlLCvs88qrkJb0 z`Q)&ldWY=UE5-fE$N;agxZkj!X`1L!BUG@3DWBsvz>vLSyX?CpMN;}_%c+r|qC}}$s z*BKvWZ)pB67>SB*L(OWHaEiDnx?7$mraYq$Z-X*8KLl4#k}s-bCZh@%HI-5K88tS< zrn>_t+=47cpB$->=WcKC$@%?IznsGKK{xK%|8nQJlp@;TK7_Ul-iw!Ny*)Utmp$yQ z!(ng2{v}`sdpJIwV9#b_=~F%I9r1W@#@-owVcEV0vrGHOlePu-VU-)4 zqOBf57kvi|73FjO5&~%)Wv5M9e;r_hz_OBqu`5K9ToD%)XfSXBa<{5AcjKbL^w{ zV60%@$%i0jAIgU!W+*DS9ci=g!1OBjJHez;@osXFPuwW@- z_RVbptB;N3HX#mGZ$?2_|1EfmL7b0Cb1~wyosnD#Yu}B6uzFi0*P;vwZhs_qA92Z{NbV`( zXN4#LV$m@a0CDmOv?+dvP+)ug2|Oy9OHdGR)_)+{mh~TuwnZE~3~h>7JRD7l*fau7 z$;zY9gsgounhtS7S|q1K{A?_mkkw~Ia?z}Q0-6$W<|H&F;_Xw=l!(iwp$QR-GSP%y zQGGbm41CFe6=^wWOT^D|Be^uh$+IH4iL9K5CPmE6MUx^fn2#n!Y+4Y>eT!JM2u+K) zY)K@y2yrl;`BoxMTWh<*^XI&JeEyLUU#{x(K>WVhhn4WxJ>@?@@r=3MF}4-|+eZKK<}>P!cmrIQuF+jL4cXbV#^77+_TG)M{B`u8JJ7spd|Q6%Q`^OA z{0zSG!M`H8^R$x9zP@Pn#(RI=-)#>yp`ce9+`bGL>`Yrmd28$uzu*Pt}fV0}panZnW>%~8bPlz36 zaScfuNl(cR$q`ABq^2}T8YXQc?I3kXQ)EkI&EyLCMEO*CraVVJTmG#)U%p7bRK8MP zAYUgxA-^EMC4VjdAm@~BN>8P?vZC;#mFdbk%EQXz%3qbQmG6}zRivtoDoK^Cnyp%; zI;JXCT~(R?RJ~Mr3emz=VY{$P*ee_q3WeiBv2aEx5iSXp)Sl`9wV+<4UaDTHE>N#i zZ&GhnZ&&Y9?^PdE7pjk|i`8e;CF)D+QuP~k56xN4B~79BxVBh(Mq8r2q%GCn)Rt-Q zYwg;n+GpBV+PB&dT2AMt^VE6kL^@wxL(tQ~V=9N3#~5ZA<{JJsoG{)r-ZOqMqM`~p z4u7ME8Q&fmUof&mJh@sE-N1?|57$k zg{Z<+VwFOrSH-J(tCCd*ROeKeR5gW0LZ~oS$QJU1E5Z%ovB0S-tLvjid#IDtBh=YA z{3>-zjoGAWqxn|5KwF^grt784( zB;ll$rGC-|(n$2PMCowpbZNGfn5FBbd!>h@XQj8Ciu91xkhPM@Wzn)8vXQbevMd>q zZIEq|9l%v`Q+8MOT;?XPA@`TJl(&<2Lp`L+=b$dWlW&z<<$L8vl4Zydpr+ zRMA4AQ0NrVif)Q;6yp_B6-yKaij9h&6nhjuE6yn%D%_Q35iYsb%6MgOb^-%Sv z>XXV(Pzqgy-a@J{SD?a1bm()!ZQ-Nfp{|MUtWZa(PPCQ z>1XH{>No0-=zr0huj+r(|E2$+_cnwYlm@M#wV}5m#W2<|!7$A*&#=UB%Fx^RfH~tc zjys6RL%duZCP|TaOGQ#&slPNp8Y~TwhDsx(VyRp@L3&2Y$=qa~GH;nk<}34;1;~PB zA-Fb{%iqZbgM7t3A0e4i-e`ZN?b(igiZg68a>rRQK6I7^VC<>kJNvuV>DAW{`x?Dgua(P zOMgIrR(}Jpfq)A};VY|js*S2!sw%<`wTGsLezd_%aqVM^$kpMoWGn{dzhxJcy>QU0 z!VaxkKR|EObHT3mAH-5=Z>ddsMA1OiR@GZONWWdbkv%U4ZZM)~ahZ6h?El8gP3WB4 z<-5=|)rxV7X~JS*h0tGpS$$jGK$C3N9MD|WT-StXn`>>_TDqyaxw_Rli9SQWRsUKa zVaPCSHM}-N7+*0Hn1D+{G(@~o{6HKa86sIJsUlq?#owsO(qtL32eJTM6*uI~FzkF# ztVah9Q|DrI{73Djxvlw46QF&rtEL}}y93b=HVj7-pEj6PMxC)gW1avUUVn0P#Qh{T z$z93c$hxU)x9q8`p8UP?iV&vmpzf+(sE*cj)AZJy(cIJ6H4*4|CE9%5M%_-`A#}5W zhB<~Kh8*K^;|AkS<3%Hv3|s{Aye{^Y%$8o4){woIOB7+M0V<7pjJlmRORF*K$LQ}G zni;zpxisL!*jX;l6>pOiW6;RQ0Q+7lk%cJ+D0-_FsOG4TsP}81Yaifn7mBDJ z2BUV;Ea_zV7WsQcb7iXPd)0fjN>fGOTK|Lbu93?Jt|#`}kEUsd8e1WIh*Rn;e<^>g zOj6-bDGIb3wG(w~a0Z*vn)mdN^eqemu7i1o{e}~U62lF{L&I}}hcVpP!#KmZ-DorZ zVSK?fR^T#6E!-#K#RJ46#6glKU-pN|l3KF9vW2o!vX8Pb9FA9HE8Z)csMZOoxPhJ4 z`s$wRlZ?q`<6vWoailTLm~NbCoNCN8GWFdza@&Cmz%eFEZ%R`YTNTSyA5>M)v#;yr z2CfjC`@(y%PErq}WUAtz;s@0$Rd-E)O{yjxd(G7>(j3J7SoE@N-B#UU-6fs*w(hm=A6;d=uRcuQPM?5|H$|VPUxk`DqA$`vKqvf1-x~LV z4Tjwq3mO`m8KaGf#s$VTsEK37cSf!RxRJOo_@Wlnr~@n7S|yn*$(GEOtddwI7cur% zm)6DTpqEBVyGr{?M@Yv?XG+&et%9QSKAnub31J>?NIGR?R@PL^s!>?Elfh(bwRpl-5A|+-7Q@e zeGPqAvpy5Ui$kw6m@w?78z$irT4-2q*og9(a7d|rHA{FnH(xRRt9W(r*-UQ&rvEggazES3I>i+G3Zr0go{vaS4gc^5^p zB2%$haX@iIQCXR)G*jg+m0pMw96~hCGy~^m!`U6d`Q1_fseX+!tglgPVsTsQrs<q63tr82Hd3fY7S|Rqq|+w+|WG7txAORSK<8oYBRLo;p*Cjgfl>9Q(MXlGq%Ee%oIBqxh=0r6fr*N-|b5 zL9!G*_Xo)y>2c{D>0{|6*$mkn*#%jd>~~q9ys2C!H=rsLG4W7fV$n}AS}_gNiQ@`y zWesIZ%=I#rtCV}4x$jL((fn1xn4D=<12OkqprWcZs&%TW#m-HcvYQ}7pp zgb*Q25M%nF6QYDzp`*|Z(}-kYs4x<O)yAa!eWNupk% z?yni9S+3cPhIplsXh-AO;Jo&s_D^kXbhj|f2b4OUE=m{sU&Uh-n5g48+q$&M-75V* D=2Q@}