From 140788b8ed5f0172a0fad8c01a31085ce4942e2a Mon Sep 17 00:00:00 2001 From: NunoSempere Date: Sun, 7 May 2023 22:11:49 -0400 Subject: [PATCH] become a bit less confused about cloning and collecting lambdas --- mumble | Bin 125232 -> 125232 bytes src/mumble.c | 31 +++++++++++++++---------------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/mumble b/mumble index 464630499727794e2e5783e44539bb21d9b9a55f..2212ec67a99a7979364bb56c41abe7cbdb15c561 100755 GIT binary patch delta 37405 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 cK&QLHEtm*@>6NG^+Hzd zr#kAXCv4bHwTs?c02}e>E(ZA$o`il`zz+UY%Q+H!rQ1!0F zYmeDC=PIf8WcKa3D(cl_cKBSw(#w;P;bf161XgnZoslG+v%PU3w&tW{=9%uV_Dp8= z(;Jrd7OKUB>bk##>L{UVpU=LB>ZAGW1XS0~r}iG-5m?Q>QuQBIvpRb|^F2RE-TY|( zx95LW)jJui{Vy?Y1(UQUP6Qb7t}Nr1fC6{sYUGW%?2li93v3s)&2w4di@^mZiQ3q? ztl`Dps`Wlwf3aQkYuf4*PH^LVbOk)w>*| z{(PGa0Q_*9Ex6pd!qWzHpT9dZL&a&5v#r?!+?wet-xz7%sTg_dLv8lVoyiJcDX*?* zz-nHJR1f{Z#$5?h$Nj+$0dCc2Z?BY9i~Yg8uXa;YZn3dfYpBz2u^m^F)g|><{cGja zq4ik5YjrI_)4v4lgR-%M&Y6ZSaBpmZ-&3J83NNV83We5_P-uce1~K(f_=5`7P`E;c z3Ml+S1wRy;A>^zQD3qfDzS?I#J_QA{w(IK2yst-4MBT4@d333(<#Yv&P75mIv$g3g z>3WEVdoD?SA*nE(UA*4g5=k{}2YH^FRi&zOOYXJPmRS$27u0r z6-2u2T^;hMefLvu_gXVf?Wj$$97cgllsxcK%k6MpH1Tw(ow`!ouHRhuy;{ z*^)$kE$UaPK0(y!Z2tn)2a7tL?Vp^&2L4f6-F$_8`^QSv`3ft0d$F20nH{>lTJ1A| zb-MGb>O6@B+%2cRoyc0;#TKX<8+Es@y0sd+b~n=TW;MF^^)F#Yp1-TgP9%HPI_YSF zi);vxDQq*NY^nGXkjXfFIsr)%eJ>_E31_YJWR-4^rdKNG9zi8~zG^)7dGHZm98EUt`a_vU5B>S~%5v+J3l)lu)lg+wU)c-nE#J47~ ze~G5Sz?N70U@ohw-EJFLjiua+QHO*whx>u*%c`u>{pD(fP&kmM_E4vq=?L zFedgbIkCe-Swu#VIv|t{&It4PDFixV2I~r^tFWUPW!1l{u#Aj~>ZlM_=s}FSEQED^ zFxi7wHq`Zp(xo9R^Fbx`PzWpWu#rd6|Eb^_!r~v6RqKT?_OOoQo=Ol1? zGc8ax2PCkU4~wg3gQ@RgRFXY92w6Y^tNN(8I_oRh7$I{@V51;w@|CQ*kX;(X_Cn_P zmCQlNmX2XBAv;?!x4$#zwOBfiVO9TvzprFW$UMfdQIIwHO4dQhu8(GWA#<$Ae*SBl z+O+~pe0*OW7sNV0Y3S6k0v6-rY{5JqR{v>1bxROC_asP7uE1VAsqMHCLgxQlan|OE zS)CooqMr^Z^T!DNl=5*PnyOCPI)2_@e-C88JuPn8X%IW1h6!@s^-yGJ10|8Zmb=st zF3K%bHQ^*fI3~ByK@;{fgq?E>^J&87hOn-0ZmE+d4K<`bfo!_Xr|FPEdQaYz&lO^R zP5a+?U3fFMu&^e)VF**pvq!do0tsid0g8%eZke8*Nrrf^Xq!P-a&kEqnHf}|m{9#| zI2)B2P~gdFtzpV=wkFdj;PY_9X*n$-t>LEtt*k8v{|2yonO+5EiDsRKFL~zax!Gtn zAy=!_0W9>Hm!+D}bbt;85&Ram#32f7)2Z_}M(e;_ty>76V$fU?>C51_)8NrM*(2kW z7V_Rwo_-{8xaW#gVVQ!AHYX%H7H!)`yXrQY#pMgMN5 zF7apG|1Mvs-4NY~TN#%8cX_|k264|{3yIFGjOWm8{`hjT2ftWNDO70C2mRB4zx|f{ z6Qj-_%v%04%<+sLE{i?u%CLL?lvA(9G4sC-TktsDOAAPmt{2)ZD=FQ6MSPwxt2F53 zumnS|tkA;~J#KAZ^m>$Li~nt`ZYj+Qz4l`N{@bkbGGEOg&Ox*xoMTkQNyk{dj^Q2R zi*t&SZ0d{rp;3a?Pcv#6Rne-vUPmi$lozpoCIyy_q#M*=iZs_j+XPaT&!w$OFL~+f z{a-09BJBp;FqhP$G|s|3S=*QS)ib47x0gNDv!&RPm($hHJz0ZSzp0~q(5Yqx9`&FZ z6xOaU>+!mk+TMq4e;ue+@L|_pUsi9FWLw@0aPQ+yG0;I8@}qUTwKpsMwuEO?Npel! z1EHORE-dZM8ou)>t57RM+ETH#OnMldbdRRIkJdu$7Bak8^4k&~?@3QsY3_O~aS_RiDM0Tes+ zwgkI#(Ivn5BZ`flbdIF1@nZMil~nyb*~oz&tjPPgd}I1xWQKdOY3~E_wWe|-FSh-C zx6l`O{z5Osk>7_B*Z`JBq?jvoufo2uW=3v>TP0Y{>>ldG1B_)KRQDHWF&~zxKE>IC z4_(!w#aaE2oz$ZqY{|!8)nUb0-%kZ!ht?RtMP)?FsVqF_V=1tFwa)Uzy;O~NanftOdrMY^#Fp9;vucElCAGW2` zQ1EGk>QPub7Z_YnoC|pIP)Fqlb#g&*Fwmu7$~znoC~Cg~bYZ51Iw}1XwN5_1ET2+N zEs~EP%cqo4|90XTgg-lR$NWk)b(s^dlV6$UQ_Kmm(C#F;=7IMV7Cvy;2~4het_8oA zUzwwhGV>k<6i>BO3qH1h(#t2s3^ATl9A~z=OB);8i7~h+sNrfee^Ef`>oU<%v#G7e z@s7N=Gg?=S;S-#dCINGzk$|5`K|6y$OH-B)Hmup2DY7!(kw0)oDikxXR8Xm}x|?}O zVI_bk7gUC*?k)L;g32WI7X(vCsiJmv;9CkQv(+{Zq!gp3$MA`Tl~A>v%6Al2TBz4d z{6k@7dZXLT;kNM#xJ`;$gz>mV_3ENdd*AUCR#{P}z3*_U7ZY{b`woca$6S>99%HE8 z&ZA_9_Mt2A9O%EA7jjirHlMwUvT!as>85QCzNpkZDIM+hlAX*{s?xn=BUR};HqDcM zLX}hX7p;00)p=AsmddMoDgNBeO_`y7_dQ?grZiN4XvS~4Ddn82d~Y(fkG6UQexKr0 zL@A)CaZP!Vq8R3`O?jQ7N`S+N&pEtzQ6<6Q$Im$_H;O7arhoB~hx;l%<{6)IaI6&i z*ggMAPh{Oz{WJG=R~i?O|CmEFAOq`ypIl11f6Q67Q}O1>?uwhb>l6RMUHQJ~;t!f$ zwtm1m{R405p?H^$C4Oeqi~KNxHQhu5yOrhz4QBKQ-Y`J%;C=EdMfna7<$&+dY|RWb z#X8$vuS2^{HlJEtDXoTN^B;;U;q8BFh&VGAYNJM@luGqWqE4d}OZ7BSr%^ITqP|De z=?Udy1nO%={V?h;BY2e(%D^HesGY0!QSTYh&JFqI5=x_@jqyn`Ww*Y>>Pz{@5=w+e zRWdttpFZe6V$kn1-r7@H*`zTu2E7SBR2G9ig4}M|s}FiVs?vwQV$eHLHA$<|phrjW zN?yv3g}P`*c-r&{;C)Ld#rSJ4B|z;N&b_=b@_*xKjbeMeI3?O!nS@W_Uh|(yDmK-j z0pIPTM61_cYQwA!e8qeCDtGezUJq`Z8}abciZ3tWi#f9Jh0ySSscER+*X4Cfqh-v$ zg1`GOUsqb0?3^7cF6ZShc%YwBO1&1!oBAnNi|qTGMs7C7OIs$Y|09~!{3j*aUpcK7 zyH*1peX^j0zcr(>TNW=Bpm-KKh>BQ$dt`0FbZ{tCFOy8s-Jy}&@@k4Z?;EK2SN76a zdhio}I$0NgtbmDxy0*Mj)T@{&zEAn?KxK^@V&iRslt!wvjVqx_alSQ3ajX1LSCn?t zCtull{a99E=jmhqBuH7|-%4<|;M$MoZJ1HlT!%d7KU7eP7n`G7f{HU#GN0t%ww1Es?2^kbpS@r%T-a1qXsQk^n zucK;i)HN6N^eUnXxtH=oD0MUCp0NGxJ<-j9_k_*M6NJqccfYn-->7RgE9q6(^t;P< zR#U1~p?|cnVV9Q4VV@FBriPvI*J=$rHBWlmuw%od&z+)^D?bO_p=E{t@Q)hix3&2r z#kIQ9uE6q0rF#3p@q_&06Nj4`4jVS2f8T`I0l8}=j2%5XmoQh2gkvV;Zb>zhiFb-r zY8OC3G~?!0O4$})%qNbC9bI`q?7+eC@HH?ozJJ2t5%IbQ&1UTQk-1%t$z6v6-xR4N z`*(~RJjQQK+=#?s1L6Y{{00sl9qX4EpD=isUqW20Uu^sUUbUf;VhQon6rnqE^oV|a z`wg4mH#mO4VDxnG*jT9cP4JsABGIoeS|^O2K<*Pp_zj317Ml?3*B5PK#||EmI0mf* zH^6U1zag>x6HF!y!hO7-{+VO{7lZu%evZ8prkD1P?>8bbegGwh7i*-9N}1b8siAm} z|0lQ5a9)mZ>yExWU|Ll~9O_Y!MoubC}9hTUazig!p%109gFRrvvd{f4@R(?}0 z33zB<@qfIVfp3fV9K5ICJrwV6@a~8A|JCOIN8Z7{Fp!^Xr(Cg=YlOQQ-o5aigZDbT zt3=uD?HbzcsVLXMVfkdd{Uh!6;doy_`3TSq`Ax{1HMZN2LBDQOyFFhsyZu|d|HcQN zTVw3@;Ffm#+E$Q5XJiw*eKp!Vz`IlY(D)JK;{BpVkLD#hD5WfGI@;~@?%P2im0#y7 z>+-SS=$*T6MST8t0{5QzdH!02?m3^w^$t1fy4ey7OF_w4}{{Qn{mZ#mx zT=jCf%6V*ew+F)cbQ!<^saQ+a^C%mEMdguqM129;_Lux<;Ni)9c^9Rc<=Irby_Mzv zv$y5{b?2|qp$f7?)g*rYKRbz&RO-DsPX=62ua9>L$@>ADSW;efRlHTpwEa2uNSugY zI+$aR1HJ%G1BM>Xu?GRYj^x-^0K-yq?1zE#kLK8K0q-2kv1bF@p2)F#7BrbQoy@V< z0iI6Fv3CVpPUYCg0~=gGd*D3aVc?Ws&>r~xMYJ!7Z}@ilEywOt$Yfd%YyiypJ;&Y$ zIQJ3)0cHW$0xw?6v8Mr@@CVx&z-M=I?54sd(`(!n{D22=M~DO_Jw$t8N$h&20jvLo z_Q0*cG@uvuSQ)^ZK$DBbWcmjiFh3WQ=^JeEB7yNX7y#aQ1_M9`Y(LimLxE|)p1=&? zJfO+dWE%M#?SbpCmyHCD!NW@*-~l`YO#{ACvG@R+I^gO9t^{TPo8h6?(SpwvobuW2 zLBQGh?e>;HM`x^3z`4Lhz>B~=z|DAAzXUWDvfEz(2LauRm`qAxyFC;*0oWG!9dIP@ z2yhYb58xi)2jC@OV^_2XCcEJqwr)jDrkEly09*`g3p@uL3EWZ?27rO?FaT@?yaX)Z z0RzC;;&!`xF_S3;SOZw8gx%f|xEq)NtmH9dEnE?(Pml z-Y@_>3G4`TDhUI?1;C}i6yO2if52puvEpHPSfR*c8&1?~hc0)~#jfaihv z6Yv2iumLcCIb;GD1l$OW2EGHv0VgElo6Nv9W9{}If!oI8vIWu};RVnK`v$l2SlV&f z*8qO7pwJP8zh)wG;A`M2pgIdF2bKih1%?AZ1Lp&M0x`RR4S+$j(Q{xTa5C^Aa22rM z9JB|{1>OY~pNpOcnM_xbuyq3#ooBbxKe622fMgmRq(H`gpoCd50Tnk(cOaq<=W&mFUO%+Wh-(<804g*F4EqxZi01CI3!T``| z84LhV0@HwZmcsyWD2IVy+*E*mz%whbi2xQ^iJ=2d2hIZa{T@RHyaPN7yu1o4CUD1U zEI5_$b2Dp@dSEoLV~V_y+hr(7iHxx()__4}cwk zbvB|sa3*jmaPk(k2Ob1o1G@i+_P|a+_Yjk52CxQjH?U)f1(OVg1P~v9OMxY}!T_)V z@EWi$@C|SY(7g%**bW0gznw4ui~=SAIdCbkXFajvs&lVAF#z0DO7`sRx>lBK5#YKvPvLAjgn;pcNPi+OUm zYU9FA4keXB`SNS>9iXS|&at=oO5W6vUxa+ep0DH<82F;_913^#=GYUzGBC_AfPa3; z6pBqQ{#Gtm04)tU{b70RfgF3OujKBAye0U4*c2Z}bI}1_ez@WiI1Id<`20Fg9XpU; z@7R3ESDnb=!Lt>wraMr%fSvMd!w8hsXQZoT;UeU#v4i#ne#w%D7K9(D=it9jp79~1Unz^vBaC^?w-HW# z%`Xt{d(EE>K`QIN|mYdFa?IC+zh;@RdW+$o(Tv1v>op z5h+Fooc@9^|0n*Dgl#@??_t27Kk<5m{-1d_i4!HRl$a{TF9C$e4B?sP% zu(~6kO1R9CuOWQz$WIWqH}iXhugyG%(8r1UjsRA0;^Bn-op>+8c}{#P;VUP;hVYXU zKSAi9kKZG#n4jkmUdzvYM*;^I$-V`PF=G+<6qZeQrF2@Tfa)Pq@&Nj~xY%KX`KJ`KqB_ z{1DI~(aX-a$0=U?#VA<(#f#@8;gct~(Wu;&l~AhuEh}xQlHPkgI*JDn|zIpM=^ld^j${*iE0DegT6xU3YfM|i0e??(7j2%k6xZI4vp zYpDLd3O_*@7Rv7tP738YghxWTZvrr|Di0@&tIB&39;wQw685Z4LHVj%s`C?s+pF_? zguhhhIfO-OaNk7ad`TS~n&G-I){ueP5@YfMMUR&2>hONhQ#;q?a}v?6Y<(U+9iMR= zOGKK>qmqC`WhA24gX;4qq_MIAcNz=a*?^ZPOl!cK5O$oO~Xo`Fq39m))IYd^D zDtD84&l|t zd^6#r#=>L2wWG#(!)2WmJzC?lJ{4HLeA%O2v5wEIT#8lW$@R-kt=9TJV)q6kn%V;5=GVxs007 zlAi!Jy42Ec56^uWB#O&`HYCrX{}1F*x#g3;TqcF^bX=?zFEbVPTDIa%ry`?6TJfB@ z2x9V7^vK$Z&mrMY8tLsskJnFH@e5E?p7YBVrNnXz)J(0pvjuAHTk{YLYz%D8TN6%f z&Ep9dwB`#4*SF@oNYAki>3KWRL$;?Z(}Q*;S@yw0bEGUcK)GWZTJF7_dZ0X~4K4NF z$Ije)I_fLGq50*juKtGi znvPEz`}E{p|0IiOvcaC(c^kOdBxc@-)BG)Co7RuSuQJm zsB*R^A2wI@_>&ok#-$H;o{9RlzO>+ZJJs;TMoN}D zqWnyj6Hs>UCv=vgTv3(}pd2I1*H9iJ%WqJgC(G`57~j^9SDXbuYy0sS!WI3fm$=~j z@p**M-9~u5AD>D$foo`!A(yQm}uS z$bFN5O(*hj!VVK@#q(9WPUKSwdrqXa(O2z0k)I&!Gm+mTj759Gv1mUJ_~#@ZPIz_- z??w3Y6h4*k(-gjju=iAcf-up-?-BlO;W>mOrg2{@u>Eu%PPlA3??u>f7N1JEZ5Cf+ zRVu2blQ@3F264}$O_8_L8$9HXna7>ygL^cOCZ@02*vexF8_wrL=A%vH#e6x{oEJ|9o?XFf5x!o*I}=84p__McK0jG0tZd;cla*$Uct|y;yi8Uc z3iG+E@WqMjS}9jnDXkrhpHtO;K2`s@RQ=~s^`AqPKYwb{f9+KNbyNM4RsNU6^0da~|-1G<#;Yn6KnLgF*lDmw9*%E<0Y{%K#qpOpM7$#3p2c#GuCK(b#hR^xG$AO)UMuyLSh zFiU`m{xp>u1Pu~I6Uo<<{4mMimVBh-o5l&Eo8((aey!w1GYi&aDabciXs(nE`bd7A zXD2N7D|D6j1aV!4OUCOi{uj}zeDmDB|lU0$0Xl| z4mR+bA;5G|@|W}QeO(8s2c6s(rBjb=Z+I!XTA1W~^rz%*3yQBwpFF7?Mre&$rcYtM8j z&XW9Mk$95@zlNi|7E8g#X`-%=*;dK-nJ)Op0!)V`A0=}v=c?(76FD zg8sEMyeuaA=O$^EZvR#YvQej(0tMnXSVcWlfQf#Bj`*vR-z)i2lAlF~S9po_#bgSW ze5T~(2$>=@9v|iPP8JPt=%&5sAN3*!i}LV;B!4OoKS}bhB#+-}&|V89|9OF^>lxZ0 z`GE_;(=c3<4faVvy~UydjxV*>Y01Y)zKP_oOMZvs`(eCWrvZ_cFsjr8-aw zBBfxMY;g9BApVs6G|8_!D+ufdwbv@iH@Ph8`ued&^2;SJ=bmZ5#-dcdEisWq{HNs-5EgdwLg2x2}p(nVbdX2~6Y>?t#;R+3@J73prk20t zbAyn}*@0TDKGg~l8>Sz7QD1iQ>ai- zbavft{%jwXA-Cp4;?n{-V182WmM(aG##NO3pZKx`y|j;qfVCvQ@v}yo1`9B?kUV`@ zOD}yH>LU5kVkQ=&Z+&R5zEbexZ+zQ+C8S@(Il=1zERgc6k%HIn_1{arQLx~#@zh>h zCEr#|ZIeC+^|P**DTIU}s;K{S;7t0#hwl+HRx{;i|% zqF(|%Bwy))P}D~uR^w%3npy{yB9@7HlxE1r1%48W`baF6{N|T}r^iZq{UG`6QopRA zO)hjDszprM`kg}ZTcrNc2#w&S4=EMO_?!~bCUVWZB$X<83ciiPhaAF3o~7k{3zo*5 z3X636zZXP?b*K44C?%B$tTJAURegXNb+6A3!sMeO$&bA& z^vg;+gCu|UIFC7k`$3GHO0u7(@1*=to)Ot1`3o2LHnda!N$0nLF4s+UqZ= zS6|+zrb@pbB!4$ghaFu-;;K3E_Nh46X(@JSrf+1s+ERXG6JH5=Oa*bhn3hQSASqvg zZ3VsBNPd*$Cms|;tc-7piylQkvJdk{K+C>7i^^%KH;(>2SG=NR`^%EQdr8>U z_XZCoU+t;jBL$e=N&b|)VULq`?2`8uc@8#aKmj+AkRS6n@Ra=e4DNjl0sr&6@GwU@ zY9Zy1@(kQJk`IxWQU$3$Nb(h<1tI%ynk4ygjRY_EkEXejSF$yprys+g?Im2|&c_ws zMslxbx*(Mf$m_p@baqqnizW)^#g@0;_eGt7v7}zG4xPl)6U+ zAqU%3Q}U&P_(y90+fTgW2_&b7Tx|nn`)N`yRVGazwfT}SDMv^5w^Z^+Y{Gz-w6j|B zgXFB&ud2{#!Vzp%13?RjZR^9 z4XY~J*OTqPk@C&e1Wymo^cp64R!`JV$y|?>d|5>p_#pXNk{_KX*WYWruz~;ce@|gA zJhqu2^eKBxHvUd7urg_;bjk1jRp|GUb}mca?J|!!jZS?hZxmS$Lg9my2T2G0Wjkkg zk*r_031X9@z+#f`*hSRC^9%Hpe4PuTuE$$O@_XNDe6VSxkejMYLBkk9XkV>Cv5Dl% zn0c8qSR?l3$eK) z=8~VcPbl`4`t2n@>9rshNxrY-C+-o%-*O5MmwX8^^@B~JvO%J5NG^eivcWvbTPyRJ zpKxD3<|hRDeKJ+bk7fu%`hs{?^7ka)TKf4_@-eEFq#z1H zq4uhYK|=QeS}dAF#eGjtZvyJ8-}e%t4`zNYRK5dRXu#Z42^CNN3RMraryVNJdk!M* z2%#AIq2g2bLj>BP>Zd`)yC4Br509Y*P>FUih)U=%3d35cxG7qUZik9je1uq_2etSh zRNN2hAT_A?NvJsIR)|0$m;z?rD^Q6LTZqKf=?9N9s!O#zfN)_o5wAETK%WUtXF36_ zLL09w{DctF(^t)E^6lK;8{Vh*f4sesBiJ=%Wg1migwCRL^Blb$l_ valv{%z?r*KPZ`~q=F3bMdIl7S&ENrtf4rVCnsIGNgIEZh!Rva)xQqz^;-CyN delta 36384 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 Xfj4-pR&w){TQq!wH~X==R{MVdY=aWC diff --git a/src/mumble.c b/src/mumble.c index 7c6e0cd..a7a8af6 100644 --- a/src/mumble.c +++ b/src/mumble.c @@ -249,7 +249,7 @@ void delete_lispval(lispval* v) // free(v->func); break; case LISPVAL_USER_FUNC: - printfln("This shouldn't fire until the end"); + if(VERBOSE) printfln("This shouldn't fire until the end, unless we are deleting the operands of a builtin function. E.g,. in def {id} (@ {x} {x}), there is a lambda function in the arguments, which should get collected."); // for now, do nothing /* if (VERBOSE) @@ -628,7 +628,7 @@ lispval* clone_lispval(lispval* old) new = lispval_builtin_func(old->builtin_func, old->builtin_func_name); break; case LISPVAL_USER_FUNC: - printfln("Cloning function. This shouldn't be happening, given that I've decided to just add functions to the environment and just clean them when the environment is cleaned"); + if(VERBOSE) printfln("Cloning function. This generally shouldn't be happening, given that I've decided to just add functions to the environment and just clean them when the environment is cleaned. One situation where it should happen is in def {id} (@ {x} {x}), there is a lambda function in the arguments, which should get collected. "); new = lispval_lambda_func(old->variables, old->manipulation, old->env); // Also, fun to notice how these choices around implementation would determine tricky behaviour details around variable shadowing. break; @@ -1018,18 +1018,18 @@ lispval* evaluate_lispval(lispval* l, lispenv* env) if (l->count >= 2 && ((l->cell[0])->type == LISPVAL_USER_FUNC)) { lispval* f = l->cell[0]; // clone_lispval(l->cell[0]); - if (VERBOSE) { + if (VERBOSE) { printfln("Evaluating user-defined function"); print_lispval_tree(f, 2); - if (VERBOSE) - printfln("Expected %d variables, found %d variables.", f->variables->count, l->count - 1); + printfln("Expected %d variables, found %d variables.", f->variables->count, l->count - 1); } - f->env->parent = env; - LISPVAL_ASSERT(f->variables->count == (l->count - 1), "Error: Incorrect number of variables given to user-defined function"); - if (VERBOSE) - printfln("Number of variables match"); + + lispenv* evaluation_env = new_lispenv(); + evaluation_env->parent = env; + LISPVAL_ASSERT(f->variables->count == (l->count - 1), "Error: Incorrect number of variables given to user-defined function"); if (VERBOSE) { + printfln("Number of variables match"); printfln("Function vars:"); print_lispval_tree(f->variables, 2); printfln("Function manipulation:"); @@ -1037,19 +1037,18 @@ lispval* evaluate_lispval(lispval* l, lispenv* env) } for (int i = 0; i < f->variables->count; i++) { - insert_in_current_lispenv(f->variables->cell[i]->sym, l->cell[i + 1], f->env); + insert_in_current_lispenv(f->variables->cell[i]->sym, l->cell[i + 1], evaluation_env); } if (VERBOSE) { - printfln("User defined function environment: "); - print_env(f->env); + printfln("Evaluation environment: "); + print_env(evaluation_env); } - lispval* temp = clone_lispval(f->manipulation); - temp->type = LISPVAL_SEXPR; - lispval* answer = evaluate_lispval(temp, f->env); + lispval* temp_expression = clone_lispval(f->manipulation); + temp_expression->type = LISPVAL_SEXPR; + lispval* answer = evaluate_lispval(temp_expression, evaluation_env); // lispval* answer = builtin_eval(f->manipulation, f->env); // destroy_lispenv(f->env); return answer; - return lispval_err("Error: User-defined functions not yet implemented"); } return l;