From d04eb83cf3925e5d60ad11b4b476ff0c36cc42c7 Mon Sep 17 00:00:00 2001 From: Abdulaziz Ghuloum Date: Fri, 1 Dec 2006 11:18:01 -0500 Subject: [PATCH] Added PATH search. * If argv[0] contains a '/', then we look for argv[0]++".boot" * Otherwise, search the path[i] for where argv[0] came from and append ".boot" to that. --- bin/ikarus | Bin 54124 -> 54228 bytes bin/ikarus-main.c | 70 +++++++++++++++++++++++++++++++++++++++++++--- lib/ikarus.boot | Bin 1864712 -> 1864712 bytes 3 files changed, 66 insertions(+), 4 deletions(-) diff --git a/bin/ikarus b/bin/ikarus index 3b1e10f974c65113c70ca2e9a26ec7bae72e938e..75b328da832c5a53f428254419ef89b99ca567d9 100755 GIT binary patch delta 9953 zcmZ`<30zd=`u@&wG(dDvK?T`l69E+nL=YF0!4<^-F%fYW6%l19Tn9ajIvz*CSJ2#- z7A-4t)N5%4W}>NSWo0+(T6u4Sc+-}vRx1DJJLe2c|DXB$J;QUp@7=!l{kA#d?U!3! zeWg|9>#lx`ZCK41Ygcu=zw3U+irX?)NmYL&xw1DIb3qTY4G>z1!X-*+HB`7t=2oxt zd<(6o&NJ54jWNix3@(O$-8D?ZUkT_<-|4!w)>>F0YO|A6|ZyknK*>KZb zYjm;bLhJ+g(YGFfZYKoB_@moCa_JB#Uah2v4*vSRjI}-td5htim9Cg6r$e~--d zyU3;P`s1A|J~alF|B+<$i#Z=tyVf&Nsue7C`s1E$(9s$lrHzyG^FD~F<)6@$vrR7g z<6=dv(I>f&v7_aR{&sh5dD43LiNh#=4 zGlV3x!GnEcCs;EV!isEgk?exST&7ywpo2v@-QDWB(o$W4wtBM>pJN#^XD$Z=VU|xC z+sIblE4x~(%kcN%+dQfAyPU_={_@8CPpk`@q&ibu>AMG((I|l8i`O6()5TI>_aD&` zEmw1KWq5;iyl?4lctN@N1eL8kI*WUVy(2WNIc+Q+^1D0~OPP-6T?tE4LK39cc`R_k z158wgqBl=MKqlGBRpe^L*2qBlU7k40vJjocGsM0w1a6uGJJW%&nA(+Rcm;BK1zSem zctT$8F6;Hj1=MnoQp8C=DO41SyNT7#+NpSCt%dF`i@jUEZ!g{!|6Jx3JwaQ$9 z5=H=luONWc*G;bG=F5{~nK8k-EJ?5^aW%}~<*rtQt9i&)`9tgt79|$TAe!b^?Is2kKWVFQ?;=)6=B!}3u zw^8>lR?~B95nQPYpPp~MpcJ>AU|Vg$26DzDcXHkb_M>Q3qdy0xM&EmdBl=ZnYmPn# z502<#!I3|^54XQE3vfiZ05hA zs<^{4Bw!WC93zBik0{)y zd+JiCNDrEfu5~v=b)s3N-1%%pC!Ts<$fE)6u5RQ zTBW{A89nOe;~9-ctVP#%2JzK#<@^WsiPaS8YxFQc|w_*#BE(Zwv?U-W#SO9z{ZU7&)REI@h5B$Bs?bjbTib@`G><*2s83+1_^6V`2O7lVm9#UkARxe`%n6J|nbtEa zx$sSX;X-1HD=DOVglP)4O& zjr{VWERH5HRlV(#)i*$(VG18m2YwUdxz!5u)kgZZdy;r)Bl!eH21G!PFNM}hx=-|h zJ0EH4kI-26`&Ehq!zL zMF)F@epT{Bq5oN1ro$C0%?%FoeuO5+3{Z{_3CmrUHd^Umu%DZa+d+n{xReG@7k;L= zkgd-O*qjPw!*vU0rh0-k)Z>70R5Z$-fOUXM6=IC`h3LUV;+KOLwXVQ92yk?DTuTGyqE)Bx_#+OVRCAFz{~Kh;<4hN}6VF%C}Lxsyrj zAa$DicpH!02L<+!O>4NaQt_dPqB&I?vAx$z+!pSMtf3c*XMY`SYNqSJ)J)$gexiB? zSJw{yNN~rveeJH8+^D}Ctz16aQ$)B=1mBL#=k*ou{J)Ufb2m!JUn?PdFQ%gKmkOU< z;PB}Mf##5V;9RPgxGf&C`JUeFiKrWf^3VtHGfSz`I50Kzy7^Bua|1iJBlMGN$kg*4 zp^=gzs>F9!)1`>e#44N*s;QU2R8#rQrtYJyIiff`I85nRQ)J|^uvE-U?Ay4SVlTWp z&k;cew)1ASbThSyO7MR8@Nmu(BTnLGv~qiaJIWnp|8*gZ z7+k1d@5OFCxEaGuyN^UCdnb!ct0-fLU*~#m63b`6summVS5Z`-s3BiAduu{xbAG{^f`*$6Yqukaeqg2>)x> zVz_lV#mCf$2TgP-W~-<-*=EP42%?~;SD)T0CNHPdxZeF+tfhvy^W_?Vl=J1vlWCQ{ zEKo;w8mrk6FDX06mX-8+oL^^~CSY+An7E8?#GQ4$JX_U0M{mY2O}ftol||a(67hPd zdkBivWN%yokT_)MCF+@qi?*hfVTAw96?XcLOB#2(dB}x*;{%0BF13v3mtqX zYTklyg(zA=tr8-|JxeG$VXD|>2~k2+z(>>I-8=z-$kGrPQFCn0(i-U71QOdVrjmZs zyZ#d!04A<^D3TKE5})l_xZF%WVDg@d$TqQB`=?gEmJFj*a4AA{RH z`HrG=g@YkY?&|7V!4;IGwL}Dco0I+qu74FDs=ghpMZX66jqllysomXpkbmiagZJ;| z?%~y^!x1=?{=Jq@$TV}Q4tUeg(8B=-S+Zk@Ep2qQf`AV{2Rq#XQ7 zGt$xly}Y|Xt?@l>3V96T)37x+RQZ@X4CtEPMN?gZW4B=re@mhYhI7I5Xq3k{SsvJ5 zd4#$6Tr2gy`ZU*3rovJTxj8|-N+@h#q}w3PqF6$?1AWEeCA4^8Oh~ZSdJqR>!&X>( zkAE@KoCR`czb>MW2gbT}(*!dYk=r2uxQ9~^Lbi)6xj<2>onS9|$XA8-#G}Bdl+W6o)olKi6d`V%$9tx9aPlivYNqB8oArHbIWtw1a zPNR(BS>k~LdU<#jg#H}fTgae@5qW`-k*nh{&D&OxLqWFkU4g&wasMZc8}3cDBf_E7 zFk%uu(?<4oZ+!{*YA=s>u~d(yx5jiL8aXJa*^+GK@Aca1s+1tjd=2rb`TjM8CA*3OUUk?|eo=K)D(|_n{->*=uQBPAJ7a6XN^COr=-w zGz}!CcaUVnKFKXvy~yaMXogJmqTsMNhe)C^x=Q&~B_% zHzoa(EoD!jFD8Tq^+0dKA}Bjfh-CYJ(_r_kCHtD3;bN8dlK->$!d_bOYrF}7j$^5s7;z2y;q~k#_##HK%=jHXq5M0*`d-#rm z6k%&;_SIR`KQBo9J(KeDUJ%mg_q=}ijGbK5^_>)iWj=sS-JW8H^)yd;e5zGGO*bZY z7Cxf;laqX3KY=&B_l%jA`*MOjOlL7agmmKBl51A^3rf!q5Wb-K`Dwn9&SE(_OEtqO zllTP}`<5<4>|45%pC%lnzEi^CJb%h8;XibC$~qyUk1*bIhq4aCOV-2!{KovVGN1 zRna)?hCdX2ip73>!AxYxw>V1JNh6BWgz;2a>?iIXOm7xv2#+=`oGFysW-Sy2aq1wN zyXdG;PXQ%WV)#HhQZiQ<%-<|`PVWsj*x!CmZgG7&*_L696~rOQR8iVf=tpmqri#D5 zW&5o(S`_Liv}}SWmmM?xjuAgHZ+SR=as@`&Sr!duxcS4JsTYV{f z$zH*iK3cL}*g~_G_7>lWr<$cf;^ugIXK8owK|Fo4v_F1p^In!BhQ!mPWr0FGEnnt0 zZV)CFkGd+Z#oRP-+$L}t?8bYQ+sXcTM^q4==p-Bu?pU#f_D;dnxNMUe$0ond7Jt>kp{N!M%cH2eB1imvpY5lL?*yS2U0I!m(so(1M98vjT2n3v zpHU~v5g|gc;N`7a7~Z4Bf_D%4-I6K1U`t<@Eeba@a{fyM=ag$t%nHO>sg&mzXaS#t_!y4hM) zd$pyzy6bHO2&TSB{(FK`>M0t$d)pbV%0)&rY?9l(pg zA>b%*3OEB?1g-+tft$c>;5XnQpnH`u_g9&Td4l)?fj|fl4nzUbKpfByNCpN2slaex zG>`#g0TX~pz!YExPyiGH#efkg1C{~hKn1WCSPxVJn_tBhVk^iFU=Q#jZ~!<290ra8 zCxBBxEpP@n2V4ZM09S!)z;)mTa1*ctw}HFBZ&bHuzisfo9qlRlaBJK3!vXqDwXP;q z@oAL6A9aZE!>}~&j`ndP+FO+~{^Rym7slG_@GCZ6bG)Q+U+}j$hi+#qst>jHK(v3% zc^gE3gt6dOsvRBde51+F9>~~#z)jrfU?}{mbx0!_`$OZNV^JJe)q%%2{N)@*55uUB z#*c!BYy1Rwg2qpQ8#G=Eo~iLO;IlP;?g)xrsy$pphr~G#2z;Z)v%q(1ya4<)jV}W~ zs_{zjvz#NiE8y2SM^?^Y`?hPmD~{&hG#)euzbd(L88~ZQK;6vy%_sZYxgchzBOKh zH>U-yHP;CDYt^QS378fJP5E;i1GyS6fT1FdAH;4Gs~PGxg0Wj#KyMouTjvM@gtnsnP)-a6+Lq0>}>9861lxqK=nX#c7zpw^d3Al+n{smc>p>-_X z!B~mL|An7ZS84piYQ{Ecd=ljMYCLxxV-q!JFGe#qPvZ+B8C$OLYY~hc(d4UFGxmYT zH}1r`_{?E+J7eE#d|V}CKWqHk6?lt@g~|i%Tfvxz#>>&(L6dO@5763Ez&C1+TO&ie z9Xy7yV;YYI@2$vVB(tG#QR}#f5qzofoqaHSHU1fRh~{iJX0oW2V zLnw~kkT$gIY>?@M;#rL%*GW`z5}oGM9_iFx=cIeyiMK)89d5Qe>Gn`$(1m|5tL;Sf z9lVz~**xwf{~mo_KP;v-7NNshTPNPhiFb42x2WoDm$1i9cG@`EcX#5RZK&h9>4Hp) z&Q0e3CxKM~>j5kxRsn1RuvnNCcm+5B5P)CJ*;e3H;2^LQcoEnIyaDV1Bw!zaS;DYR z*k0fe@ETA9yb0_FHUO_>+ zOtZ2RxvOJ&EKmb2N-Q($WCzpJS%{^l{FBV&ytCG9*!_?7Jn!aR-+Z_E=9`(dw_SLp z#f?KPO5X4YW^7XtW6Y=Y-8hez85`e*v68K&cZYg>`zB-V82Q#QjJHtu85-3hfiIxq z7O(Vt1LC5yjOiYXL7$}n;=d4y>G)d+^r0(mU0c?i5v+oDXzK@=4-jBTwz zO}kR73Mpb~mP^9S1DXiii2w9!FEEy2`*-G~v^6*4-4OA4J0h-f*DPMJaJQ`tceAS> zt~KLT+;42O6<7b>*jQZdT{Hz*s5cc&JqI5eQyYTwLWGT7Jtg!-JoOU{wJfuWtPr>q zPx|Qgcqp!c6ZIyyowy{tHF|HlXUx>g9)HYs;u>UC#TW4T7^GFjwO}C3)==L{D;A>~ zTzrea_udn;uvPUh|M_os&fAwXsugY2D-E{s2yVm>VeeagVOv%4gJO%;wh1#^I;J(! zO$^@Ng9yk~bVIXAH7x9zt!zHpHj#!c#Z4{eHX|j~NQbL$h& z?F4&UrP|P#7m2lX7c)01h)P_29z(a((@{n?!u~#5w_elFVE_e(iY`=)C7!*;U|3>L zcr^PC3M--DY^_XiLFo&Yu^pfw`fGB9$-G*x!wdj^VDTM5%mK}3~%65q=*YJj( zx3uJHEj7uOhYf?y5|t|2MbvSelC+Dy>*%j^+eN>1v|D>^fJMH$SjXi%#Z>d!a>q0X z)zdyxre&Yf*FtK}^La3Hp5L!>&NBZv^PCkY}e}%H16_s8h(yuXY#(Z)ab}(2eTp0AuO(;}Dx^TmUoE$ZbkP7&WCa z7Z1)f62P4c-nb4f)P6fCD<#l+btSx@DD$8omRhVh#$4R|7-6bAMbLm(Pb`U^X+{vM zqo3U_7Zgnuud9fm9Swv21q@l)&Qna-oe<;W~k5yYknx7hP}!D5^-^Pn-08MThvG+|vg9($+C;@%Ir z)xYkX`deH4L#z|vMC>w;idw~NXS@2w3Nw+x7{ly-g|WVGTl0(p^v8=)1{}WmUYcsd zh*{<_;a=FM?zoSPlM2T!v#Z(C*$Jp&)?&Vz#YapYv#y~1{;h`EF%(;w-}cxDSU4Bg zuFjK|Z(`V)MkjFOKM8g9(LXPuTK{3nFIy?7%U~>;~4;K8OzF3Mrx^765(*O#-tto}1(rrua)x9l{+THM7fv7o)7 zisQoLeK9{<&Dm3WxQ#51IB@K$ z*D`a324c{e{R^c=Y1A8?n_afTI2QKoDP)F?C7N-#>0MhkUQ0^RMyA^=*J3NY)jDIb zekx$BwaxOarYSYZO!b%i4T5s3{bz>7fB!tEd@I}7Cu#;Or z*30MDoRkm1U9JFN_f8ax;8EZA)MpX&wU?Zrs61k8+N&vPbv5VEF3!|n91kRI_V zkQwb=HwjUjI?tZ_K%-ALHaEuMjWjy6yZjvW-(bPE`X-#OL=N#b&HGOd- z9S(hxA0)4^osWNwZLmPId}~9Gn%8aJZd``WHH^~hmm6Ugh_xAt5iF#5a(orlMEJFjut9iI zxO@+`!X-6CXx2EPYwYZ<2-;MsIk=&!)Z@4S#L-jN2X)d{h^x$qx)sbU^nt|>G>;VK z@^!NXxO18T`U!NeIJcv zjmBupI?&URukd};zGtbT71P0<5wX+7iEVga24;Hi(B%CbWKBtW;lb(sKSk7{*E`)C z&>cAM#haL2-7w#oRAiBhSwsxeXO2$ zA;W2+|G0*zPrUNg8am%6&~JrshAvITsMGp~LUQXHHCk(m^A!f03if_sv*tE%+#$x7 z61(~)4C+61#$Bn8a4hXRi~C=l>&!O?>P>z+Sm{>3uFB=r)HZs%vUD{ajNYkSTICqg ze-u}~Zbxee>{L8gQozG~m7GEv|8U@Ans9_%FJh}XbDa;asm+e%tsKmtf<43W*RIZy zhA+4n4p>3Q9Ci36$&4o4hr}4;*L>69w38 zyXE~sjW*V;cWYJWSTY}@LdH!ywyC7e8Dm0|UHm@`ZkBM(jcR1CUq={im3Y@MkCgau zeXz*E_*#Q^A@8Cr1(Ph!YouEP{gm8i$$iih%7tY#e^6A=>X|}wvN%K4F0eAIUz{!l z^zI;1{#ihe4t`R3qkzf=`zm`1sB&#@+IBWgQGvqU*n{}P=iL4)T89Ib} zP5&MrX0!e-t~o4)xrGJ@1LFW|P675Bl$@?-3;UOv?2rG+{t?*Mf1s=8a95b_`P2AJ zF}_bskj@MVoVHiymjxyGH(uy&;$G8xn+{+<#ams;`F;VFnT@|EoKTsjdK*zT0n zp9RIbkyH`q?^z{9!*i)ke5f)km-^w4e=eoP_er^q`>Fl|5gwBXWhnF|Na{+&&k}Mw zDv&mB$4{iUO+sy+P%~{Kh3%fDR1@FP|35;<=$SMWp{Zmom(up(m6|z#AukK0mQAB;gwyd z-7_AI_l7d)VKFte7Wb%HK3QLc!KNpXB4%xTB^tSeqJ|&YG9rSfIJ%DrRoqLmVXBrd zG!ELuS>~eL#Wmzy^vw%N9rZ51Kto3l;m=d<=)-&_1tbJ29Trer!g#)pHY9{7Tj$g3 z31Qrm&Lx~x4n9r0$At52`fyAtFQtbp@!%6I{(LCSwZwK25m(i;DLTF#%&4FF@)&%X zj$5AQ4(gtGk58ffk9FxV1wW(}X(RAQ=!q77j#9>^E4${V~NJ+D+6beXYy*8*^&eJJvx;9R};yTX2&idRu>vJAz5+Epp6rT@z?3& z317kk>eWSrw3|ivQ`K630jsWb^Re!hNbK{f*6`M7D{!;jsnhO&83+I0Gvsop;x=q* z=d07ueAC2_NUiD=bgzbC@!j0-fY3)hZb8A>EydHwo-(yN@`yd@oqW<}DbfZAyYNevHpV5O3a#KO&{ywpibZZ=h?CSj5tCr0o&6gM$F@WD1m zgiXI1V?D}~Jm|BDyLl|lOY6rc)2_6=@GvAjl#it;>3`*6kMQ9Anc?Bz>5I(5`u|m7 z(`bFhXeIA)`XnP0s$r8t`BX}r^jFT`7S6+~4d*qJ#`}Nq;FABENdq&7Kbbb^feW%P zv$@{O!LcslbyeFYzU~?Kxbafh1J?EB<`?h!2gk|Cq>Gu|Lt8+zZYhkN_e;EfHW7X+ zZ5fxe6nDF}in>jn&R5au$szdMKe;X=S=a5luxh}`V2Rd3A7x48WL!CRyWS*y{sVaPG4sQ1o^5wcH(c?Gl`5ej?7C>!Q)k5pVTb6vcIPoXhCaGj&;wjdXcRyY72nUbje8-}sL3 zws@S5M=j$_^P6WdJv6mr$D^b19%R`sP85^~JA&zJ(kO0fsB&{6O`p1pTj;l`L-08u zdwb{YqmWkdVI1cAC>`DteYHtr?Al(c&GzGm=uY;~fG>~XNAO?s(rkCM!FZpu72kt) zY-R2xyLOb4rv>q&v~XHtK$@#srW<}C!fg_JQK-F7=b-jJ-JF)l&(omkkqAD0`fPrZ zDyKikEsoR~&nmob}y6gF!z-$E;AEmPXRMZeDKqwE;xh?t$sVVXN< z6n~uFnR7t7pGaAAqv1iDJBjlw$M^HnIG^YkH2(Xu(Pcf4L+tD+Q5N&a`UwoLx5n|clu8$-@;h{O;pf=w?=G6ff2M$(DE<+R%Sq&` zsU#;*DH%a;=A`hiw=AB;4?AWrR=6^CI6b}OZGMx2mX<1E!|3SJr}+p9%nkJG*%x7O zzV(T34t+Atk&-)rE5qWbD6c1=hE!ueU*JNw0(J~QXE6? zFAq_EiJ{BOu4pQe^`{RvyPF9vUIp#yoiH%tmE}N; zGb<=(xhM|=ckb8)`prh&CF#ni%N{uI4dc#wbKNLiE4`8+zf_8+`2^(YPWo7K(qp!aU}u&Ot0 zQ!|y21CF26E1Y{!O>rWYw$r-he5GT{xrw$vA@}7o=|8_P#6rqyN9`Wx^zimk4 z6^>+EhQjC50WC_o6-MW^pZEkS-x#BO8A`uyJbl}QAZlA;;m0Yh*fI0A;}2z%k$-Ksj(4I0IAzHNXYn z67Vfh3tR(q;0ACDxD7M__W*W;F*m>+@B(}Q-y>`a>kJYA1OwqfBoGBe12Mo5ARZVA zi~*8>@jwcY4on870yBW8fVsc|VDS;h@R#-jIn&l1Hjh^4%^`ojBS(hV956h-U?GZ%Gkf9pIZ2N zL+WqFkIC-?J{Nq2LBf zP$y4i><_6EgVXo#QtprMBc~+azM8QCElt~r$mM|4?}_uQbqiDeM?b~_O>Si+a1<>E z&POt)NJj~eFm_ZLUrA&vOUl_qbe|0H&|^qW+Iqs)N9q(qr(D`zMc@RfbFc?v6C}SK z##m+xtC>;1p^VLv1D9eM%az;~$JkoQdmz9z$=5*VCCM+NnctH9L^$@T=w@&Z)L11l(&=Fy&vwU;~}wr;IW z`K#*~>md0j8?c`x|G5x*S@IPxpeo>2;pkr*8Jj2vKHARMOv$IhV2R{YG#n5zSapB= zuMv{(h+=GnkYADI z@&dmp<)gq;W#B%j&=XERfUyF}v%v35{W;LzB;~g;fn5fN@S|wP-jM^pgWs0H_Mwwc zOZhIW@t2Y>03RxwD>@WS=WdpLB+5Qg$Xoj`9|vPU2z|h}47)~hAMp9ozt~yJtj-5) zt@TchX4xTmA1L8#xVaUB8EcFF;Eaon$?_2l1fOUqBmud>qh0t&7e3yFXGu9MRRt5Hd+eI$^?Zr8PFJ1U$7ydrktH#p!Gmq1& zXQo(pqTrhV8?XUb18fG?1J416fR}+1;2^LI*bnRm4gjwK*aoZ+z}66#GTQ-QPqM?n zHsBS20C8#W1F-$rt3WA^SN0Ofi@;U@dzaaP=YcH%_Ae_2)&fO<3aoRycXpxTIcHYh r^qj?c^Kur^=jBo8x%J8ud5(kU`nmlN(J^yi diff --git a/bin/ikarus-main.c b/bin/ikarus-main.c index 8aecbae..3993790 100644 --- a/bin/ikarus-main.c +++ b/bin/ikarus-main.c @@ -42,19 +42,81 @@ get_option(char* opt, int argc, char** argv){ return 0; } +int +file_exists(char* filename){ + struct stat sb; + int s = stat(filename, &sb); + return (s == 0); +} + +int +copy_fst_path(char* buff, char* x){ + int i = 0; + while(1){ + char c = x[i]; + if ((c == 0) || (c == ':')){ + return i; + } + buff[i] = c; + i++; + } +} + +int global_exe(char* x){ + while(1){ + char c = *x; + if(c == 0){ + return 1; + } + if(c == '/'){ + return 0; + } + x++; + } +} int main(int argc, char** argv){ - char ikarus_boot[FILENAME_MAX]; + char buff[FILENAME_MAX]; char* boot_file = get_option("-b", argc, argv); if(boot_file){ argc -= 2; - } else { - boot_file = ikarus_boot; - char* x = ikarus_boot; + } + else if(global_exe(argv[0])){ + /* search path name */ + char* path = getenv("PATH"); + if(path == NULL){ + fprintf(stderr, "unable to locate boot file\n"); + exit(-1); + } + while(*path){ + int len = copy_fst_path(buff, path); + char* x = buff + len; + x = stpcpy(x, "/"); + x = stpcpy(x, argv[0]); + if(file_exists(buff)){ + x = stpcpy(x, ".boot"); + boot_file = buff; + path = ""; + } + else { + if(path[len]){ + path += (len+1); + } else { + fprintf(stderr, "unable to locate %s\n", argv[0]); + exit(-1); + } + } + } + } + else { + char* x = buff; x = stpcpy(x, argv[0]); x = stpcpy(x, ".boot"); + boot_file = buff; } + + if(sizeof(mp_limb_t) != sizeof(int)){ fprintf(stderr, "ERROR: limb size\n"); } diff --git a/lib/ikarus.boot b/lib/ikarus.boot index 7975cd7103ea9b598e4803542a4417b20f774bdb..58af175d4da6446f4ef0cbe136e52fddfb90cbf8 100644 GIT binary patch delta 1634 zcmYL|U5pyn8HNpOubo+&JzlRJ4^G=1l_81Tm<48Lp&Gz5zzhS!0K?C~s#U`R1H-}s z%kVc=F03e7J5}1Gz8JMl8oO7Gl8ZJg`NWCTizaFl<)?pl=}mHBB~qk~94T@XD^{na zQZJs1b6$P#`M&d>bLF$amCpvhzrJAm&HjyrZ*BJb@9bYc@)Nu5XRjTT?T5LS9=4gE zTwOl1-$8z4x9#k|d;ITqoBP_Ymmjk)4z9hh`~%yc_wO#>wl9RkkD6;)`$PNpR-kR+ z%!~8YwRnj)4ax{ zm@g1haoW`2+9l-P4*}6ChPgP$*P{7Y!r$td=Wil1pe30Ka>J13-6HVJFl|126WIY1 zie}2`0!OyxO$`r9 zL#$-+|y$B?- zHYLXS{upOd-j;}&2PcrXippv454Wa}!Ht;ceWT*v(0(+&}I zNqJf-CotR-btj5M6JC1S@wE-mytm<}wuB53%y1EdF`vBRcnbt+#T`^PciPDS9ov$H zz0y?&EL~l`{!@@34XI3ds=IuLkfwqR7f*v5kAtMgn3h8YG160LHXLX|I0Em!2a;@W zQ>Qm4!A!(m>5Z7Z=a`cgD;B3LRxM6joUwQiKF6HB{3`JGd@0|s+Sn?Gy6Qv-KVeJhvD^O=-MKP z`;?+bndL=-A}dsbpKEs==)wwUMAXi9XT)_RBUE)wyZ_Nh7{Smm0;21q4LZQa87bo3 z4Q7*b?N8^?OAi1ct4qy6gX-0!LA+c`%{_Gzjh_I$WIPon z-n*L>R7nV&GM_(>q7Z!seW?XxKRJ#EjWWN>%{qAwH~;WsCkem(5?!?~6KpuH6jV90 z88>=keJ&NhLce1Nc$VeF8Ll;xN|#9l0`m!8zKed{0G`<(N6}51FRIa@9Fm}ADcC{E z6(R$Z@tE{7UVl7G&g~+PJ5l?xEa)Q%3rvKpG0SFy=Gwv8N8r!5oNfoe6+g!ILX?Lt z@5t38J|FIzzVm}sF!ZH0d4Okwq)fV6Vs75W{imF-oCH)p-W?^3l0NDg^;++LnSN|K ze|rk3VX+)5w0GRPMhA3ke*dPGw*&s=73Z^y%N0ds`&`;Jis*c7JTfoeMIV{#zkJR4 z#3G>l7^Nn>Uaiq0S+Y&c4^H25evW|>wV@jZ%Ql5l-xx`)|7!E%C;sJJO@fJ`>=f$d zh!P>vO{LR?)=Sinfg$G}o zpDy2BIsNqQ)!o~x4jZS4Oxe z1P!jjbA?eV5D6335=6E^zbA5nDwi{5jUlx5uebso+tSd^7IYw{Kqrx2pJ30G_>$R8~O2B($6`>5MCFH5S@dEbAlWbC8^b zcRI0b#vc#Yw|8g(KJ^#mekW-3lT~rL?N?KZNtI;*{{CZxaR8|A#f>gTLR?W6S2OE+$gLGnTKDDfcvuRK zXF(s?X+!cRGV}nyAFmi~D&ZRhNeS~3@Y>?i1q8^1flYgf@|dH9bqZ@)iK9!efdms^ z^)@L>g^EtmnN91~(WO^`U0gmbsA4J_kG8yd4}5uLDRmZ*X-OA-!6+6e_KLEu?0$1@ z$>y-l5%|qH*Y$Ov^8tos3iDU~SWfe>RKYSr^@~O9gX>M)d#uQ&)lQDWy+<=~2CqF+7 ze08z+K--sbE=OC# zLN}A>kx>~_hPd_iVNzz2o@-xN?%y6; z)<=<%(O)weg{&zt`*S%@h2WpxbU(ics9-i$P=#!-8BKB1$oQVkvRA{h#^Cf4EmUpoXMUBpVA9nAoPg zH48v{35|nbJ;{vfq(HHSCMJdC{CwuxW2e}Ipyy#Kx*B7Rt&mnTjrjjEcW;uX;7#&@ HpT_?UW`P{m