digitalmars.D.announce - DMD front end starter kit
- Ben Hinkle (13/13) Apr 01 2005 I started a few project that needed the dmd front end code so I got the
- Charlie (8/21) Apr 01 2005 Coolness :) , do you have a script or some automation for this ?
- Ben Hinkle (7/8) Apr 01 2005 no but it's a good idea. I emailed Walter some changes to get the #inclu...
- Charlie (8/18) Apr 01 2005 Yea it will help alot I think. Thanks for doing this!
- Ben Hinkle (7/10) Apr 01 2005 no problem. I'm working on getting a basic dlint going and hooking it up...
- Charlie (10/25) Apr 01 2005 Now this sounds fun :). Have you started getting some ideas down on it ...
- Ben Hinkle (24/32) Apr 01 2005 I was going to read in class source and write out D code for class(es) t...
- Charlie (118/156) Apr 01 2005 Ahh cool didnt know Java did it like this.
- Ben Hinkle (10/19) Apr 01 2005 For more info about the Java API for the curious check out
- Ben Hinkle (375/378) Apr 01 2005 Attached is a sneak-peak at dlint minor-mode in emacs (using the D
- Charlie (6/23) Apr 02 2005 No not at all
- Charlie (6/22) Apr 03 2005 Do you mind if I use this for elephant ?
- Ben Hinkle (4/6) Apr 03 2005 Please do. That's what it's there for. I'll post a real announcement now...
- Lynn Allan (3/5) Apr 01 2005 Just curious why you are using gpl ... was that necessary based on
- Ben Hinkle (7/12) Apr 01 2005 The dmd source allows either GPL or the artistic license and I just chos...
- Walter (6/19) Apr 02 2005 one -
- Lynn Allan (22/35) Apr 04 2005 chose
- Ben Hinkle (2/8) Apr 04 2005 It's funny you say that because I totally agree. Most of my stuff is pub...
I started a few project that needed the dmd front end code so I got the source for the DMD front-end into a standalone form and have put it on my website as a "starter kit" for others to build D parsers and analyzers. Get it at http://home.comcast.net/~benhinkle/dmdfe There is a pre-built program that just prints debugging parsing and semantic information but that program by itself is not very useful. Hopefully it will be easy for people to customize for different tools but if there's something I can do to improve the starter kit let me know. Currently only Windows is supported (but that's probably just becuase I haven't made a Makefile for Linux yet). The project is GPL. Happy Tooling! -Ben
Apr 01 2005
Coolness :) , do you have a script or some automation for this ? Charlie "Ben Hinkle" <ben.hinkle gmail.com> wrote in message news:d2jie3$nl1$1 digitaldaemon.com...I started a few project that needed the dmd front end code so I got the source for the DMD front-end into a standalone form and have put it on my website as a "starter kit" for others to build D parsers and analyzers.Getit at http://home.comcast.net/~benhinkle/dmdfe There is a pre-built program that just prints debugging parsing andsemanticinformation but that program by itself is not very useful. Hopefully itwillbe easy for people to customize for different tools but if there'ssomethingI can do to improve the starter kit let me know. Currently only Windows is supported (but that's probably just becuase I haven't made a Makefile for Linux yet). The project is GPL. Happy Tooling! -Ben
Apr 01 2005
"Charlie" <charles jwavro.com> wrote in message news:d2jsas$12eo$1 digitaldaemon.com...Coolness :) , do you have a script or some automation for this ?no but it's a good idea. I emailed Walter some changes to get the #includes working so that I didn't have to worry about including total.h or something. Other than that I uncommented some printf's to get some debugging output and the rest is right out of the dmd.zip. Hopefully with new versions of dmd it shouldn't be much work to plop it in.
Apr 01 2005
Hopefully with new versions of dmd it shouldn't be much work to plop it in.Yea it will help alot I think. Thanks for doing this! Charlie "Ben Hinkle" <bhinkle mathworks.com> wrote in message news:d2jue1$146c$1 digitaldaemon.com..."Charlie" <charles jwavro.com> wrote in message news:d2jsas$12eo$1 digitaldaemon.com...#includesCoolness :) , do you have a script or some automation for this ?no but it's a good idea. I emailed Walter some changes to get theworking so that I didn't have to worry about including total.h orsomething.Other than that I uncommented some printf's to get some debugging outputandthe rest is right out of the dmd.zip. Hopefully with new versions of dmditshouldn't be much work to plop it in.
Apr 01 2005
"Charlie" <charles jwavro.com> wrote in message news:d2k1bk$1798$1 digitaldaemon.com...no problem. I'm working on getting a basic dlint going and hooking it up to the emacs mode for error and warning highlighting. That and I want to write a reflection API generator. It's also fun to see just how much of phobos gets sucked in when you import std.string :-)Hopefully with new versions of dmd it shouldn't be much work to plop it in.Yea it will help alot I think. Thanks for doing this!
Apr 01 2005
I'm working on getting a basic dlint going and hooking it up to the emacs mode for error and warning highlightingCoolness.That and I want to write a reflection API generator.Now this sounds fun :). Have you started getting some ideas down on it ? I'd like to hear 'em ( are you going to add meta-data to the executable ? If so where you going to put it so D doesnt require a new exe format ? ) C "Ben Hinkle" <bhinkle mathworks.com> wrote in message news:d2k6r0$1cpr$1 digitaldaemon.com..."Charlie" <charles jwavro.com> wrote in message news:d2k1bk$1798$1 digitaldaemon.com...tono problem. I'm working on getting a basic dlint going and hooking it upHopefully with new versions of dmd it shouldn't be much work to plop it in.Yea it will help alot I think. Thanks for doing this!the emacs mode for error and warning highlighting. That and I want towritea reflection API generator. It's also fun to see just how much of phobos gets sucked in when youimportstd.string :-)
Apr 01 2005
"Charlie" <charles jwavro.com> wrote in message news:d2kbrj$1hu4$1 digitaldaemon.com...I was going to read in class source and write out D code for class(es) that implement a reflection API that resembles Java's reflection API. In other words if the input source code looks like class Foo { int x; void bar() {} } then the output class looks something like class FooClass : Class { this() { fields ~= new Field("x",typeid(int),Access.Public); methods ~= new Method("bar",<signature>, Access.Public); } Object newInstance(){ return new Foo(); } ... } static this() { registerClass("Foo",...); } You have to compile the reflection class and link it in with any class that you want reflected. I haven't thought about how exactly the registration happens or all the signature stuff will work etc etc but I figure something along these lines should work out. The front end should have all the info about members and constructors that one would need.I'm working on getting a basic dlint going and hooking it up to the emacs mode for error and warning highlightingCoolness.That and I want to write a reflection API generator.Now this sounds fun :). Have you started getting some ideas down on it ? I'd like to hear 'em ( are you going to add meta-data to the executable ? If so where you going to put it so D doesnt require a new exe format ? )
Apr 01 2005
I was going to read in class source and write out D code for class(es)thatimplement a reflection API that resembles Java's reflection API. In other words if the input source code looks likeAhh cool didnt know Java did it like this. Attached is a simple php script to convert the front-end to be compilable by MSVC. It doesnt catch everything ( sys/time.h ) but it should catch most things. Charlie "Ben Hinkle" <bhinkle mathworks.com> wrote in message news:d2kd45$1j2b$1 digitaldaemon.com..."Charlie" <charles jwavro.com> wrote in message news:d2kbrj$1hu4$1 digitaldaemon.com...?I'm working on getting a basic dlint going and hooking it up to the emacs mode for error and warning highlightingCoolness.That and I want to write a reflection API generator.Now this sounds fun :). Have you started getting some ideas down on it?I'd like to hear 'em ( are you going to add meta-data to the executablethatIf so where you going to put it so D doesnt require a new exe format ? )I was going to read in class source and write out D code for class(es)implement a reflection API that resembles Java's reflection API. In other words if the input source code looks like class Foo { int x; void bar() {} } then the output class looks something like class FooClass : Class { this() { fields ~= new Field("x",typeid(int),Access.Public); methods ~= new Method("bar",<signature>, Access.Public); } Object newInstance(){ return new Foo(); } ... } static this() { registerClass("Foo",...); } You have to compile the reflection class and link it in with any classthatyou want reflected. I haven't thought about how exactly the registration happens or all the signature stuff will work etc etc but I figuresomethingalong these lines should work out. The front end should have all the info about members and constructors that one would need.begin 666 convert_for_msvc.php M"GT-" T*9G5N8W1I;VX 9FEL95]W<FET92 D9FEL92P )&-O;G1E;G1S("D- M<V5R=%]D969I;F4H)&9I;&4L)&QI;F4 *0T*>PT*"21L:6YE<R ](&9I;&4H M)&9I;&4I.PT*"21N97=,:6YE<R ](&%R<F%Y*"1L:6YE*3L-" DD86QL3&EN M("1I;F-L=61E1FEL97, /2!A<G)A>2 I.PT*"79A<B D<V]U<F-E1FEL97, M"0EI9B H)&AA;F1L92 ](&]P96YD:7(H)'1H:7,M/F-A8VAE9&ER*2D >PT* M*"1F:6QE(#T <F5A9&1I<B D:&%N9&QE*2D (3T](&9A;'-E("D-" D)"7L- M" D)"0EI9B H<W1R<W1R*"1F:6QE+"(N8W!P(BD (3T 9F%L<V4 *0T*"0D) M"7L-" D-" D)"0D)87)R87E?<'5S:" D=&AI<RT^<V]U<F-E1FEL97,L)&9I M;&4I.PT*+R\)"0D)"7!R:6YT(")F:6QE<R Z("1F:6QE7&XB.PT*"0D)"7T- M" D)"0EE;'-E(&EF(" ('-T<G-T<B D9FEL92PB+F B*2 A/2!F86QS92 I M( T*"0D)"7L-" D)"0D)87)R87E?<'5S:" D=&AI<RT^:6YC;'5D949I;&5S M*0T*"7L-" T*"0EI9B H)&AA;F1L92 ](&]P96YD:7(H)'1H:7,M/F-A8VAE M:&EL92 H(" D9FEL92 ](')E861D:7(H)&AA;F1L92DI("$]/2!F86QS92 I M.PT*"0D)"0ER96YA;64H)&9I;&4L)&-P<$9I;&4 *3L-" T*"0D)"7T-" D) M*'5N<VEG;F5D*3]<<RIL;VYG(&QO;F<O(CL-" D))&-O;7!L97A0871T97)N M(#T (B]I;F-L=61E(#QC M+W5G;'D ;F5S=&EN9RP 9&ED;G0 =V%N="!T;R!S<&5N9"!T;V\ ;75C:"!T M:6UE(&]N('1H:7,-" D)9F]R96%C:" H)&%L;$9I;&5S(&%S("1F:6QE("D M("1L:6YE("D-" D)"7L-" D)"0EP<F5G7VUA=&-H*"1P871T97)N+"1L:6YE M+"1M871C:&5S*3L-" D)"0D-" D)"0EI9B H8V]U;G0H)&UA=&-H97,I("D M;BPD<F5P;&%C96UE;G0L)&QI;F4I.PT*"0D)"7T-" D)"0EE;'-E('L-" T* M"0D)"0EP<F5G7VUA=&-H*"1C;VUP;&5X4&%T=&5R;BPD;&EN92PD;6%T8VAE M>PT*"0D)"0D))&YE=TQI;F4 /2 B(VEN8VQU9&4 /&-O;7!L97 ^7&XB.PT* M;F4 /2!P<F5G7W)E<&QA8V4H)'-U9F9I>$Q,+"(D,4PB+"1L:6YE*3L-" T* M9U]M871C:" D;F%N+"1L:6YE+"1M871C:&5S*3L-" D)"0D)"0T*"0D)"0D) M97=,:6YE(#T <')E9U]R97!L86-E*"1N86XL(BTP+C(B+"1L:6YE*3L-" T* M"7!R96=?;6%T8V H)&EN9FEN:71Y+"1L:6YE+"1M871C:&5S*3L-" D)"0D) M" D)"0D)"0D)"21N97=,:6YE(#T <')E9U]R97!L86-E*"1I;F9I;FET>2PB M96QS92 D;F5W3&EN92 ]("1L:6YE.PT*"0D)"0D)"7T-" D)"0D)"7T-" D) M/2 B+W5N<VEG;F5D(&DO(CL-" D))&-O;7!L97A0870 /2 B+VEN8VQU9&4 M/&-O;7!L97 N:#XO(CL-" D)9F]R96%C:" H)'1H:7,M/G-O=7)C949I;&5S M97, /2!F:6QE*"1F:6QE*3L-" D)"0T*"0D)9F]R96%C:" H("1L:6YE<R!A M8V H)'!A='1E<FXL)&QI;F4L)&UA=&-H97,I.PT*"0D)"0T*"0D)"6EF("AC M56YS:6=N960 :2!I;B!F:6QE(" )&9I;&4 *2!L:6YE3G5M8F5R(" )&QI M:6YT(")I;F-L=61E(&-O;7!L97 N:"!I;B!F:6QE(" )&9I;&4 *2!L:6YE M;VYS=&9O;&0N8W!P(BPB(VEN8VQU9&4 /&9L;V%T+F ^7&Y<;B-D969I;F4 M<F=E*"1T:&ES+3YI;F-L=61E1FEL97,L)'1H:7,M/G-O=7)C949I;&5S*3L- M<V5R=%]D969I;F4H)&9I;&4L(B-I;F-L=61E(#QM86QL;V,N:#Y<;B(I.R O M0V]N=F5R=" D8V%C:&5D:7)?*2![( T*"0DD=&AI<RT^8V%C:&5D:7( /2 D M/FEN<V5R=$%L:6%S97,H*3L-"B1C;VYV+3YR97!O<G10<F]B;&5M<R I.PT* M;B!T:&4 <V]U<F-E(&1I<F5C=&]R:65S(&%N9"!R=6X :70-"B\O(&YE960 M(&1O97-N="!L:6ME(')E9&EF;FET:6]N<R!O9B H:2D :6X 9F]R(&)L;V-K M<RP <V\ ;F5E9"!T;R!C;W)R96-T('1H:7,-"B\O(&QO;F< ;&]N9R!I="!D ` end
Apr 01 2005
"Charlie" <charles jwavro.com> wrote in message news:d2kj5p$1on1$1 digitaldaemon.com...For more info about the Java API for the curious check out Basically you query the JVM for Class, Field, Method and Constructor objects and can apply them to instances or use them to construct instances. Since D doesn't have a JVM the only thing that knows the class layout is the compiler and so I think the best way to do reflection is to feed more code through the same compiler.I was going to read in class source and write out D code for class(es)thatimplement a reflection API that resembles Java's reflection API. In other words if the input source code looks likeAhh cool didnt know Java did it like this.Attached is a simple php script to convert the front-end to be compilable by MSVC. It doesnt catch everything ( sys/time.h ) but it should catch most things.nifty. I'll stick it in the zip file if you don't object.
Apr 01 2005
"Charlie" <charles jwavro.com> wrote in message news:d2kbrj$1hu4$1 digitaldaemon.com...Attached is a sneak-peak at dlint minor-mode in emacs (using the D major-mode). There are two warnings in the code- one about a function that should return a value that doesn't and another about a narrowing cast. I'll clean things up over the weekend and make another post when dlint (and the d-mode update) is ready. Thanks to Walter for the wonderful front-end code and warning implementation. -Ben ps -notice the cute little Dlint menu, too. It basically came for free from the mlint highlighter I'm using (written by my buddy Eric Ludlam - Emacs hacker extraordinaire) :-) begin 666 dlint-mode.PNG MB5!.1PT*& H````-24A$4 ```G ```&N" (```"?K:PV````!&=!34$``+&/ M"_QA!0``/MY)1$%4>%[MG7FT945][SO_N-X*YCUCU(>$Y!D>#FB8'*-$:144 M7"]9LK)<6??5OG5NW;HU[5_M4^?LZ7-6=:]S]ZE=]:M/U:[O_M;99^_?N.^> MZ:C'/OVHWYJDH__S,Y;2+L?\%YV>><SCGGELE9Y5I=]^UG%5^L/C'E^EM8_? MM4J_H])NQZOT!)UV?X]*3U1I#Y5.>))*>^ITXG]]]B1M_^SW;O^<27KR<T_2 M:8?GJ71RE9Y_\N]6:9U*.[Y IU-V_*-3?D^G%Y[R^R]</TDO6O_?7O2^*NWU MOJ=4Z=2G_'&5_D"E%Y^FTDXZO>1TE?Z[2GNKM&%GE5;K=,9357IIE9[VTO<_ M[663]/27GZG3,_91Z0,Z[;*O2AM5>N8K=#KKF:\\ZUDZ[??!/S3I59MVU>G5 MFW9[]=E5>DV5=G_-.55Z[3E[5.G</5Y7I3U5^A.5SGNV2J^OTG->_Z$JK:G2 M<]=\^+G[5^EY*KWA?)V>K]*??D2E%ZAT $H7J/1'!^KTT1?^F4D?>]$;)VFO M S9/TL&;__C "ZMTR(4OKM)%57K312^ITI:7'+IE;YW>?+%*JW4Z[.,OU>G/ M5?K$RU0ZO$HO/_R2E[]EDO9YRZ7[O+5*^ZKT-I4N4^D5;]?I\E>J] Z=KMCO MG9/TJG==.4GOOO+5[[Y*I]?\A4I75^F(JU];I4^^]LA/ODZGHZY1Z4]T.OK: MU^MTC$K7K5'IV"KM?^RGJG1<E=YPW/5O6%NE/U7I^$_K=,![5+I!I0-5.D&E M&U7ZLQ-U^LP;W[N<#CKILSH=?+)*?ZG2(>MT^MPAIWSN39/T5X>N7TKO^_R; M=3KU\X>=^M=5.JU*?W[:354Z_:;#J_2%PS=4Z2TJG?%%E=ZJT_N_I-+;5#I3 MI2^_7:4/Z'3S.S9.TCLWWO+.LR;I71_\BD[OWJ32UBJ=O?4OJG2K2D><H]-M M1YQ[VY$ZG7?;4>?=/DD?NOWH#WVU2A_^ZC%5^MHQYU?I6)4^LDVEXW2ZX Z5 MUJKT497N/%ZEC^ETUWM4VERE$S9__80+)^G$B_Y&I_=N4>D;.IUTL4IWJW3R MQW7ZYLF?^.8ZG2[YVU-,NO1;ZW6Z[%OON^Q_5.GR*IUZ^;>K=,6W3ZO2WYUV M995.5^DJE?[G!I6NKM(95]]3I4]6Z?V?_,[[KZG2F2I=^_<Z?4"EZ^Y5::-* MGU+I/I7.NEZG^S_X:9.^N^F&23K[QN]-TF>^=\YG_J%*G_V'<ZOTCU7ZRW\\ MKTK?/^]SW_^03G_U`Y4^K-/G'SA?I[]6Z8<?4>FF*EUPTX,7?&&2/OJ%AS[Z MQ2I]3*4OJ?0CE39_6:>'+U3I9IU^?-$MD[3E*_\T25O_Z>*M_ZS3QV]5Z2=5 MNNTGGZC23S]Q^T\OT>FK_Z+2I3I][9'+=-JFTL\N5^F.*EUQQ\^K=&>5KKSS M%U?>5:6K5/KZ_]+IZK]1Z7^K]$F5OJ'2_U'IFKMU^K_7?G.2KOO;7W8\:3N+ MH"*H""J"6FDJ HJ (JB-9;M>4/?<\P_6KW_#CW]\^:]_?=NCCW[VIS_][-%' MOUJ9U]_?\7'[[+-+PL7B4'&H.%0<* X5AUK6H69=*J0N#LK-K]6TV5XU KJP M\*V%A;_[MW_[YJ]__8U___<O+BQ\>V'AG__C/[ZNQ/57O_KR+W_YZ7_]U^N^ M_.4S#CC A;ZR(J (*H**H"*H"&IQ015>**277I4T9N4W MI KQI!7;?N /7K M#SK\\)?NL,/C#COLD'7KCGCWNP]?O_[([W[W\_?>>^4CCUSWZ*,W+2Q\7Z6; M;EJ_^^X[VK**H"*H""J"BJ BJ!T1U,3/2FTAG*& &H'<???=3SKQZ'>]ZUUO M6WP=IM3UD$/..&/M7GL]_8M?O/A7O_KZSW]^S<+"G:T*ZK6W++OTGUUTR-)% M2:?=M\*\/WS[?NJZI TK-O[PZ M>=?7/%[/=?_SS3]EQP_WJW8-77_![9U1O M%N[X='5=THO6O^>.ZJ];WZ\O2KKAUN5R[S]17Y'TUFT/+FY\\-H+)Q<E;?SN MXH9?7/+V,YYZUO?L2![ZU,?5I4E<E,1%25R4Q$5)9W-1DOBBI%S':?(W%E2] MHVU8[2W:!VL9KO\.56OD?OOM=_BA;SCQQ!/7KEU[[.)+B>N^K]Y7?73222<= M<-":=>L.>O31K:T)ZJGW*FJWG#JYRO>)!]_VPX6%KYQ6:>KV6E"W7:>N]5V[ MK7K[E=.7!'7;]>8JWR5!7=BZ02*HGUY4T_M/J*[RU<JZJ*E:4!_^Q8,/;UNS M]^D[[[WE$O7^QRL%]:[/<I4O5_F:"WVYRI>K?*L+?1'4N0AJ<!77B*4MC8YL MVPKJZ&L30=UAAQW..77-IDV;-F[<>.:99YY^^NFO?.4K]WK.$Y[T^/^TUUY[ M'?K60W?>9><57Z.^]YYE-_;0+7L_[<C?VO^6!]2FAQZI_J]>WSERW7<F;Q^Z MY67/..9Q!RQF6'H]<-DY^F<SO[/^[Y>W_FCK/KL=?_37K&Q7G/?$/:Y1WE2I M.;L^5GWTJM>^:L_G[;DLJ&MN_L'"P \NV5C]#O6D2ED?N/2LB: NW'/DTX_: M^])'*N6[_4KU:]0C;Z_>WK+._AWJV1][2&U[9/.!Q_VV5E.EH]6/4,_=_+6M M1U]>J>8#EY^[_#M494]_=.N^!]WZPX6?77CP"4\\6+U14GK=5Q9-ZL2A& G> M]JGJIZ KEGQ_ON7-Z[1#W;KA^JUJU==9\K5D7KU52[XGW%EMNO7,I=^A?F!Q M9?C.&XV KOG =Q?NNO&]E:QN<05U4MHO+GU']5-4EGQ9\F7)ER5?'*K\=ZAM M":K15$>5&PKJQ1=?O'GQI315B:OM1Q_[V$I637K))?^R4H.4=EZQY%!OV7M) M4!^X[(..H+[LLD6AG;PJ03WZJXMRNW[YQ [[+ JJ?CUPQ7G5C1VTH.K_]S2" M^N&+?F0)ZN*2[Y-/U\N_GYH(JK?DNW7#NN.W+6R]H^8[U'I!?<F%ER W_/ = M:]2J+PX5AXI#Q:'B4'&HMDQ^?O%UXXTW7G_]]=OOL'WB%ZA:4"<.=>E.2;6" MJM7T <O.5K=).JK2T;" 5G=*>I^U"/RU:R:"6CG4>X]=%E3E4*M+D^SO4)_\ M.-3"WZ'NLLLNMRV]'GGDD9J[$DZ^0+WG".O6 [6"NBBB6E!32[[J.]3)K0?? MN+7ZSE4)ZM)WJ,=:WZU69?WHME>LO"AIOZLJ=_O#JSZ2<* [/E^M^M8(ZE/V M2E^4M U!W8M;#W+K06X]R*T'9W#K05M0_0MW_6\W37[G2EV3L_:BI/)7^:K? MR1A!W;IUQ=6\87%=_!K5O):_0U47*$66?!_WS*N6?O?RR ,/31RJ?U&2_ YU M\E)KO.HNOGK5U[K*=\6]?'-^-J.6?-6]?(]?_'E,\Y_-J$M\$PYU*79^-L.] M?-6UOESERU6^7.6;=2_?:00U]LN9>?\.U1;4,S>>N>>>>Z97?97*SOO&#M62 MKWE5U_?J^^-S<WQNCL_-\;DY?G6+?&Z./XB;XS=>\JV]\U'B9S.)?9M<E+1F MS9H;;KA!>5/E4]>M6[?K[KO6/HMFWH+*TV9XV Q/F^%I,SQM9NA/FU&"JC1, MX]MX?!N/;^/Q;7-Z?)O2R)F^]#V/<JO(NU.2D<_'/.8QOZE> J>EXE"YER_W M\N5>OMS+EWOYEKV7;^-GJ\UA1ZE#E2BHDP=!15 15 050450$=3JL>,D"$ ` M`A" ``2R".CO8JN[Z<LOH,JJ ,P0 `$( "!,1! 4+'C$( `!" ` 0($$-0" M$,=PYD4;(0`!"$ 30!!15 A``$(0 `"!0A,(: WK=UCM[5?FL453+,K>1;1 M%BQS\_[Z_E ';K[[/OM]P2J:%56V1\J6)FQ1*Y4*8R,;!" P" ("054ST8K; M(.Z_1<]-T\Q0;IF[GG23=7; E)]?T9=.W-6$O,>)GXF:=%-R?A492Q\K&UN) M97CHG'_ *L/!?E_ O&FIQL^<M)M[2\L4'Q-G8S[!MM>.GZSJG,RQ?;/*',2Q M`$5!``*C)B 3U-22KU("RU?)-<8NL]JK4I3)<J OV,)BER1PY3>[BQ%6T^N2 MWE=?3Z[0B26%6XZA4 ZM?"8JM==$WB;MW7+ 4L/3)VCVB8*.(>A9 QLK+"OQ MVB%91E8:3$!0O59;?;',H7';5_3=4E^8$R:?<+ 3XT?I"KR+HVHRG#QNDR9X MPX#S M&39M7V$E95+JJY=SKF"+1TQE V<SRPU9,I$2[+&56+N-?JN7MV ;W;3M5>TA M29Y&4/5TF2,M*^+WU#UXWI XF0B?,4RA<[6G$8[$-F_[DE(Z)V0S$M3$6:!S M7I5U+D)F"$ ``A$"4PNJO50KIQQ6A<E:W.2J(EM4<EQ1^*(DNT:]>#OYIM!> M^PTM^3K3_4UK#YQ<-JR^ZI-]9^Q7;2W5+D<;7?)=6 D/G7ED!S/=DF]V=>[) MA'514MJLRWO<&4O60L**"ZK]ZLPPD(];<D(``A"($YA>4/4EJ>:"&MDO4]T5 MN45E6OKEY1[Z$B%KHMRR>%F0[**DE=<-V=_++J^=+B]:3DI.7I0T^49VQ9)O M3CPK&CNIVES=,VFLO?;KO[?Q>A*E/Y3#F5Q%W.2BI.4KIZ35K6C[TOE'K4.] MY^Z,' \+JC<L3:6A83#F12K M=)(` CI0Y>CD:"MU&MB\' 25 0$!",R,P& $=68$FT_NA 0!"$ `` ,B *#B M4"$``0A ``(%"""H!2!B4B$``0A ``((*H(*`0A ``(0*$ (*C_+_):X 4! M"$ ``A 8$(&8WF6Y[=6K5^O\".J A 9- 0`$( "!' ()0146HT44017B(AL$ M( `!" R30%I0)3X501WFR*!5$( `!""010!!S<)%9 A ``(0 $"8`(+*R( ` M!" ``0 4((" %H!($1" ``0 `($L055/UO"_5>4[5$81!" ``0A 8$$NJ.8Y M58ZF(J ,(PA ``(0 (!44)>?^KCXSM94!)5A! $(0 `"$! )JJ.F^D^CJ0 J M$OU &1" ``0 T',""&K/.Y#P M[1&(":K2R*P73YMIKP^I&0(0 `$.D" =LE7Q:C$4O(_ST/M0'\2` 0 ``$( MYQBCX=]\UG8JS:YU^K953OG^EMD%0,D0 `$(* )C-2AEI)PB5A*\L2&HT0: M)7D8[A" ``0 ,&L"+3M4)6PZF7::/\U&^XU^[^QBMB2*LC\RE?KEQ'!KHVF2 MSA;<Z'RDL]7VHG.[9)T_N-'Y2&<SY9M=G!KMHH(?U49(! A ``(02!/HA$-U M_**MJ49!=3,<730;[48&Y=FAD.50'46T_PR*I9.A5E =B^D(I-]_OH+Z&FEO M291O9)OC! (0 `$IB30LD--*V+0I)H&^Y_ZI<6$,TM05;&^/=5UU0IJ+(\O M 4%S&5S.30NDUDBYH$XY - =`A" ``0T 8XZ5$<: ]HY3T&UATN60Q4*:DS_ M$%0.5 A ``)](8!#K9:1T[TE7/(UV=)+OOYUN<(E7Y.-)=^^'%W$"0$(C(I MRP[5OS[(ODPI>(&2?QV3ZC"['--_Z8N/ N4$^SYQ\9$VH/YO8^R-SJ=!0:V] M:, 775..76#L.J98^<%?W8SJ`*"Q$( `!$H1Z(1#E3>FUDW*BR*G(L!/;A & M"$8* 0`$( "!L1/ H8Y]!-!^"$ ``A H0J 3#G7 ORZ=]?-0 X. 7Y<6.38H M! (0 $ 6 9$ZU%(27OLD&=49DCRQ/D,:LT8SF2$``0BT2*!EA^K?JR%XNT$- MR'^LFP&7N/6 V=&^F7XP?Z(;.O4\5.>F [7/0PW>I% WUG[$C7,;0NY*V.)A M2=40 $ ?"73"H?(\5'OHU#X/U0BAW-<Z]_LU:FI*B-UAN(]CFI A``$(M$* M`0CTE$!'':JCE#P/U1E>"&I/CS?"A `$!DP`A]J_YZ'.PJ&RY#O YRF00`" M\R'0LD/E>:A:';.>AYK('_S(O_+(&%SG(S/FN")I/H<?M4 ``D,BT F'* >: M^]VGO&1R2BZ& A($( `!",0(M.Q0LSJ&YZ%FX9)D3CACR>[D 0`$( `!0Z!G M#I6> P`$( `!"'230)\<:C<)$A4$( `!"$! $<"A, P ``$(0 `"!0C 4 M MI (0 `"$( `#I4Q``$(0 `"$"A `(=:`")%0 `"$( `!'"HC $(0 `"$(! M`0(XU (0*0("$( `!"" 0V4,0 `"$( `! H0P*$6 $ 1$( `!" ` 82 WG?/ MW<*T>O5JG7/#A WJ_2KU3I'5FQ(6&/H0 `$( "!P1!(.U1),[6((J 25N2! M`0A ``(0*$ `02T`D2( ``$(0 `"""IC``(0 `$(%" `():`")%0 `"$( ` M!%H4U%4+"P72IH5-O4X,00A ``(0& 8!!+5E/1[&,*(5$( `!"" H"*H' 40 M `$(%" `(**H!881A0!`0A ``*=$-2=SMVI\?>IL2]0;SYK.Y6*?[VZ:M4J MJA)(G6Q--5N<CTQF>WNMH&JKZHBKV6AO-]F"NZB* GXTUZ0BJ!QU$( `! 9) M0 `0 `$(%"$0(\%53O7]'>HM4N^SAKOK!TJ EIDU%((!" ` 0X2:%E0 ]<9 MV5<J^5<M.5MJ?S:3OBA)?Z6J==2^4BFHK#C4#HY M $"0`(+*P( `!" ``0 4((" %H!($1" ``0 ``$$E3$``0A ``(0*$" EX*Z M!-6Z[^ RWJ5GO2V8-_HS[[Z&-3UB;CVH\MGO8[L9N]G =_J"BG/MQ0%#D!" M``1B!'HFJ$8IG?;84FJ[TER'JG34E&R_+SN O8402T+F=( ``$(S)G < 35 MPN7?V0EJ^J(DEGSG/_JI$0(0 $!!`CT3U.!U1O:52OY52\'KF-($9V=/[55B M.P;4M."8IB (0 `"K1#HF MS*XS*!D"$( `!/I+`$'M;]\1.00 ``$(=( ` MJASB 4"$ ``A#H+P$$M;]] M``0 `('^$FA94/G]97^'#I M%$(``A" P `((* #Z$2:``$(0 `"[1- 4-OO`R* ``0 `($!$&A94%GO'< 8 MH D0 `$(* (M"RH] $$( `!"$! & 00U&'T(ZV ``0 `(&6"2"H+7<`U4,` M!%HF *"VW %4#P$(0 `"PR" H ZC'VD%!" ``0BT3 !!;;D#J!X"$( `!(9! M`$$=1C_2" A ``(0:)D` MIR!U ]!" ``0 , P"".HQ^I!40 `$(- R`02U MY0Z > A ``(0& :!A*!N$+]6KUY]WSUWJZ3V4.]7J7>*CMX4JV 8^& %!" ` M`0A 0!.(Z9W2Q:P7 LJ( `$( "!41-(&$CC,[7;3/^/H(YZ&-%X"$ ``A"H M_0Y5HJ9F?9<E7T84!" ``0B,E `.=:0=3[,A``$(0* L`1QJ69Z4! $(0 `" M(R6 0QUIQ]-L"$ ``A H2P"'6I8GI4$``A" P$ )X%!'VO$T&P(0 `$RA+ M?IEZ_2UV2+GY:YLSBPP2C+.HES(A``$(R D,T*'.3E#E6&TQD^Q5,.:8]I3: M+FE.\3P(:G&D% !"!0GT)I#U;;,"$GL3T=IG&P&A[T]+4[*96JC:>RF[3OU M'"> K'B*'R<4" $(0*"60)L.U1=+'6YLNRV?=L."8I-HN:VIMK ZHNAK9'!+ M:(8C-C&]K%4:7X]]W+X$VEMB)E65DY98_].$H#I1Q9IO.]0$HH0.F8]*"6UP M\B76M$#Z1YK0 M2WML3/;E1<$+E/QO6+4&^TO!?E&.XB8N2DH';SZU+SORKT4*?I,Z?X>J^-B7 M'1F-3%]A9&?3'93(KS^=?KA3` 0 `('9$6C?H<ZN;5TH>?XRT(J 3H-: DB2 M( `!FP`.E?$``0A ``(0*$ `AUH`(D5 ``(0 `$<*B,`0A ``(0 $ !`CC4 M!" ` ;X3:-^AHJ9]'T/$#P M$( `!-HGT+)#Q9ZV M-E "!" ``0A H'4"G7"HK5, ``A ``(0 ,"4!'"H4P)D=PA ``(0 $!%`(?* M``(0P*$R!B ``0A ``(%".!0"T"D" A ``(0 `.E3$``0A ``(0*$ `AUH` M `$( "!` 1PJ 4 4 0$( `!"$ `A\H8 `$( `!"!0 $,M`)$B( `!"$ ` M`CA4Q `$( `!"$" ``$<: &(% $!"$ ``A 8A4/=Z=R=NMS3-Y^UG4I=CK!! MXB02"$! 1 0&[E"50.IDXS-;G(],9G^7('UMPK0&V.\;=)5=2(/=]2ZV*908 MHW"HON^T)=/^-->AVHYJ&G?E:$#CD6%BF"88QUPV+LK11;\<R98TBABW8+_X M`MRX:<&HT X506T\JMD1`GTA,'"'JKLA**BFAZ875&/%&O=Z*6%V?&J[\3AR M)9'/7(6+<8L)JN--T]65=:B-^X(=(0"!OA 8KT-%4&O-GV-5<\=TWP4UM[U\ MAYI+C/P0&! !'.H*_YKK5FUOZNA'UA)?PJ$V*\?W7EGE&"F=IIPIEWPE;K76 MH0;7A$LMC#MS`4N^`YL<:0X$< D,W*$&KS.RKU3RKUH*7L>4P!I;[ZV]AL64 MJ2=]4XZC0[GEF%5-7^!S!T=0TH3Q)%IDUJ7MA =IU'KH1"W^1[/^#E5%&_O9 M'6IM^V>4H=0$VE8Y0>^H'=B,B%$L!" ` ;X3P*'VO0>)'P(0 `$.D$`A]J) M $/M6H\0#P0 ``$(])(`#K67W4 MM ,W*$Z=QDTE+6 QAZ5&GQ.JLE?*\:QFPC&;C&8^$&(_9%DB,3R.U6;HF+; M W65??I*J9M 2;"0!P(0 , <" S9H3IWNH_]:;;[SR&W!;A61QV5LO_,>A_, M*N_FF+ YHFAG"XJ9?T^#VAB MIAVJO%\3 FHT-9U'UY4K>!*':K<BMWPY`9V3[U!SB9$?`A#H-8$1.=2$*]5= MF%XBEG>SLWP:U#F)B\T5/,?R!I=\;9V6B+J\U7Y.EGRGH<>^$(! [P ,V:%J MC4P_\=3YU']4JE-([=JO45/[>A]G6*07>!T3F75=DG.1D:VIP7BR"F\PN'D^ ME7 ``$(0""+``XU"Q>9(0`!"$ ``F$".-2>C0S_MS2S^ EISZ 0+ 0 `($. M$,"A=J 3" $"$( `!/I/`(?:_SZD!1" ``0 T $".-0.= (A0 `"$(! _PG M4/O?A[0``A" ``0Z0& 4#K7V; Q3=D2IWY66*F?*YB1V=V[G:W+RW-/9,:=D M"$" +P1PJ"MZ:M;2FSLLNB:QP1LR<,_>W&XE/P0 ,$ "`W>H_GT'52^:QYT& MPJ'ZOM.6TMA-\^7#I92/],N)W?77CBUV3WQY_/*<P:5=;H(O!TA."$! P 0& MF0IJ3#A9\AW&7$ K( "!*0D,W*':ST,U2[O^0T_]1XL++_>-+;WZ"Z&UDAQ[ MU/;[ ``$(0& `!'"H`^A$F `!"$ ``NT3P*&VWP=$``$(0 `"`R" 0QU M[OV/<O,+(TQD,S=\$!;5^O-3$[2=)LAS"MM.- A 8* $1N10A3<_\GNZ=L?: MZ&S4?_K/=TL\)S7V>+A<\QJ\EZ_CD.R'GNI0_<>W)1Z>*M&&:9Y",S=!%7*( M9PPY IK^,S'^8FH7F]!]4?$E-K9E%H>!1$T=1^O_*0_,;KY&9/]ORC'T?.7S MJGZR':?=;1*'&LNOM]<JKG"4=$10A=':V>1J.FQ!M9EDG<0T8,XN$(! UPB, MQ:'ZWXF:GHBYTE)+OO(NGX^ %I_HTQ<E!9_IEA!C^=*HO]8Z_9*OY#M4%;Q= M-4N^\A%.3 ,F\"0':KVCD9*'4V-763DY/?_=-QJXOJFQ'5,SJBREPK3%[G8 M*XK^=ZBQ<K0&S& ITEDB=IH6%,C$SV:$9E?.P7&--K3 MZHVI5J>!JQ-V.<L M/TL8]G1#ZR M``0*$\"A% 9*<1" ``0 ,$X".-1Q]CNMA `$( "!P 1PJ(6!4AP$( `!"(R3 MOPWAC.*D6 A ``+=)S!PA^K<>M#QEUKP_*>\.>;2OV>A+L?L'C.COJ &[U.8 M&"6)6]\%]W)NR)<>?^G"AWK3HNX?DT0(`0CTE,"0':JOE+80FO?3/(4F]J0: M/9'&[K: 'W4RV Y5OB L45.AZ#KC3%AR6Z.3>B$``0CTB,!8'&I"^:9QJ+F" MI\QT^<'KFX*[!(==XKJAX(-9[/Q. ;$'N02?D\H7J*.:!6 L!"!0A,"0'6H1 M1 A ``(0&"$!'.H(.YTF0P`"$(! >0(XU/),*1$"$( `!$9(`(<ZPDZGR1" M``0 4)X`#K4 MA 1PJ"/L=)H,`0A ``+E">!0RS.E1 A ``(0&"$!'.H(.YTF0P`"$(! >0(X MU/),*1$"$( `!$9(`(<ZPDZGR1" ``0 4)X`#K4 M/IH/`45 `',K31 A`1QJ7P5UU>)KGI/OW&K,:I>.*FN74M 2E<X_G 0')QAY M[!LD7+S VGX,UIBKG;,.6]Z_`YA;:<(("0S9H=I'K^1(-GDDF1T!<&9V_:=? MCA^27XY\4O-SVDVPU<*.QYZ: _$X')S\IEVU4WQ63K\62?FY>R7X!#L]F+]6 MC<WX>F8T4U*N,$AVC,43K->.)^%]$V$GIM0&<W36!!VDX9? A%$[-A+YTS6F M=YS1.$E C F89%37=H0S<FKSQT:74\X`YE::,$("0W:HYM U9_KIH]TY_9?( MTL+O=V[M^81D-.:2E AGHA=J=Q_A7$R3!T! % Y5**BU![F3H;CCJ9T9Y0$D MOYF9Q6STYQHGO[&D]BZ^N?2#CU41W.X':0H,QN-$9<_^?AN%`B9DFT"74 MY M"[5U)9QH[;ZSR-"U>&;1QE;*S)6WX+)$T/ZFG;JD7MNF^_6V LNO= !S*TT8 M(0$<:O/O4#LR]1 &!(9'8(1S,4T>``$<*H(*`0ATCL `YE::,$("+3K4$=*F MR1" ``0 ,% "+3K4P3*E81" ``0 ,$(".-01=CI-A `$( "!\ 1PJ.694B($ MCVI!%5I5Y[YHM6)L\ILJ[%V$E8YSV-%J"$ ``L,C,'R':D2N5B ;]*ZCH'8) M"&H#GNP"`0A H+\$1N%0=??4"FJN0[4=L*3\_HX2(H<`!" ` 5H"PW>H!D&M MH-;"\C.8)64$M0$]=H$`!" P) (XU*EZ,R&H+/E.19:=(0`!"/2-P) =:OJB M"$ ``A#H/ $<:O?[B A``$(0* '!'"H/> D0H0`!" ` >X3P*%VOX^($ (0 M:O?[B A``$(0* '!!(.];Y[[A:FU:M7ZYP;-FQ0[U>I=ZKI>E-"L7N AQ A M``$(0 `", +I)5])&5I$$50)*_) ``(0 ,! "=1^AUIK4A'4O Z.6\\_OZ^A M$S<$( "![A% 4 -]LFK5JB(]I<K1+[LT?XND+J<0I85:#LT;\UYO"8JEL[V! MH-;N$JO::6-N.<'V2KA)\B1ZI-1(D(1!' A H.\$$%11#S:86!.[3%]:3&!L MO]?3J.-.$IZR]B,S/$S.X"[^]&UBB%DE?UHW:A1432-")B1)?CNS;W_],AVM M=ZN=_ [5GO*<]UD.,IC9V9C^TQY5?FGV5![\U!F4$H$4"E+MXK"?(;%T+%SR M_)DURNT>E_C(A !+=L^*C<P0 ,!0"0 %U=94Y[K?40MJEBHGY#SMJ.1S>NV* MSC5>4I[2H:9'6VR!U]DK(:CFZ]68G14*:JER[-5:YY3%7YG0"P!IPL*E^V Y MBV0<V%?T!//',OAKMO851OXR;^Q;5:.169IJAVI'*/PZ-O$=I]/OAK8#QUZQ M]U?O ^6CII(!21X(C(W \ 5U&#TJ7_5MT%ZA_C4H>=:[Y I; _S!)LRT.V8- MC?(A`($9$4!09P2V<+',X$6$+1=C;O["O4YQ$(! KP J+WJ+H*%``0 `(&N M$D (JOIR5/CBYOA=[5[B `$( "!>1&(":K2R*Q7]&DS/^$%`0A ``(0 ("8 M0$I0O\H+`A" ``0 ``$! >.//QY!%7 B"P0 ``$(0"!)H+R JJLK80X!"$ ` M`A 8&P$$-=KCYD8!Z3%AW^TA:_0(R\\JLZ>9[9.P9CSU7L'F3W^&-WT)*K!$ M=Z='0JEQDN#C?%2DO3T=BH0- 6D(E!=4/7=,$U-W]DU,TTZ0\ISVCLWVZ Z? MU?8T07_C;_1W">J<(W )\Y0EC29SUEX]&E59H?IS=UIC8H4'R_$)Q^ [0V)& MPI8F,U.GF. \TWJS! .9(=!K`C,1U/F?X?JS9%"K[(VU[YWS^EA^8SZ$)_5. MJ,*]>CW(LE0D:) DS8^1C FM[QH3?5&DF]*%)$X(9E2[*398/F=[DE%'' C8 M!.H%U3ESMP_"Q$E]>G;PQ<DNJD$/I04U&&>MH.J97=Y>X:R7%N8&;>_[+L&A M$^H\*<EYSC-G0O"RX$AD*;W,FQ#RK$ DDF8*%%8Z?0!9 JHS3U_I/ <2=4& MHR?&W(J.S]T=#V_ M!DL +: 2AXJ #G9PT MG& 2Q.83ME_+]/5J0;5OP**W*&^J</7,H4Z/(Z'6148;A1 "L^NL,4#N%+W9 M!5/D%+E!>+GJ:%?1H+K9'133!-/L. K6F*N=LPX[%L_T]?J"JLJ<GZ#Z M-Z9M]AO]7G &9'(&ST3\BF+Y[=,-(7&[7<[!EFZRT]C:/_W" ZV(-2$QL(1Q MIH\ZNUY[ULA%FBA'%VL/";MG&_"Q6U3+S1F*L^9I&NM 3_.)=:5_-.7VRS3Q M!#G;79D()CT/^&,R-F/4CMX&HB*9(B3'16P<QK %6SW_<9)H?O"C6'X)1A]% MP4E<SQ22,.S&!O,+R[';&*LW."$*RZ]EDBC'IY$X$M+QQ)H0Q!B<6&/EYVX7 M`A<.CV9 '+"U[4T<4+7]6ZJ],2")09*>!V+HY"T*#BKA9%U;BV0\)PY8O_Q8 MC?(#L. X230_^)$P^%KXP2:D]\J*I_9\19=F'*IC57U!U0&KUSP$U1G0L<FQ M/<74\G$*=_*;3YV^"VZ7C+=8/(F9J':<Q_A(I Q)>[,FIC1/?_PD!H9DMI5S MT\>F/+\\I_R ,"-$?OS6'C 22F7K3<PG"6B2T9A+LE9HTQ-+[:PEWUVW+KCD M):>/B8&:AIS;60V4-4O :[L[(:C.=ZB.FNH_C:;V7E!K!28Q"6;-=\(![6>K M/:+2DV#M[G+ERQ(`>;'I R%Q:.5.REF'4"S^MGA*%%$?G/+Q8.>O[:]81]0" M"<83[+M$_+%V269>IUCAY"LI65A43%<D[:W%VZ!?9CI.8DRF.?IJ.3?HXJQX M& OJ7*_RU13,2TN706._,:<S= ;[0'7*\?,[!V16.4Y PM[U^S =9+"6X$#Q MN=G[^D=+L%[A+CYD.0U)ITBFK41[[8X.CH?:01+C$*PT`6T./$UCG1$8.VIJ M^]T^68RU-TA8?GR9_HT=YOY1[\A/;#P+QZ%D ,5X!H^^X.$OSQF;Y1RD00A. M6VJ[K)5Q$M2>Q%",\:R=9GU$PET2W+)&B]^HEJ_R%;;?GA-S=R'_" ED'15] MY%.P 06+*D*R:_$4:51;A12$*2Q*F"T]I><64 KO]/5VXL8.0ASV&:YP%[*- MD, 8QLF41W[,+K0U6KH63UL<BM<[_W$B/_H2.:<,NS'&Z>OMDZ VQL2.$( ` M!" ` 5D32 BJNMI(^.+F^+/N)LJ'``0 `(&N$X )JM+(K!>/;^MZ3Q,?!" ` MZ>:LWS_]#X87&T:Q]CKH)*,PZ%UB<2;JK0U5Q^9WC;\QV"]ER_>KJ!U"LQ / M_E /\I%4G1AOP8\*\DP,(7^<2\8D>2 P/ (20?6%3VV1WAS?[.P\*,Z>4^18 M8Y..,U\[$Y;^T^1Q"I%,9$X)M7_:4TRP7N$<%(RM5/R.WL08UO9.4"P=90T* M;1"C7UVS\OT!%N-6BF=N^;GUIO,W&\;! >KW2]EQ6#NBR "!GA*0"*K23D=3 M,Q[?YJOQ+)9\$X(:G%B=J(2=)Y_1 O'D3J"^)M4*>;HA_K0HX58+)S&5QSAG MB7?!\NUXG+.NX$=9/!/]&RL\JU+Y\&L<MJ2_[,*;'4>U(XH,$. I`:& VIJ: M_8!QYZB;A: :[4E/:D)+%.M+^8R&H-8Z5/]$1X ]MF/NR8')+_=V3H3R\>"( M4+"EM6$TJR[M^.UNDAP[B8;4QM_3*9*P(2 G(!=4K:F.FJH_1<]#M36UE* & MCW_)I-#XR)?/:+6"JH'4]E-M.3$7*YRR)2)4&V<,BU.XI"Y)V$$A='C:>6+" M.3=!E?"1]*-\^,D=JLTMM[\2^6L'-AD ,$ "68+JJZE(4&TU5>^-H#K;:R=N MXR]C:N278%?AG%S'/HK-Z<'\Z8UZEG3F+//G-.W-"MX.(Q&,KTDQSD'3X[34 M[RR[X<'WB0.LMA]-&VW_J G[=?GM<H9B[:$>RU\[2'P1"G*+!2 I7S*N[$K3 M 8$(:JT]ZDBOYSK+CH1-&!" ``0 4$M (():VTXR0 `"$( `!&9* .>ASA0O MA4,``A" P% (S/QYJ,$+F= (`0A ``(0 $"" /X)3?7;&G5"`BD(0 `"$( ` ,`````$E%3D2N0F"" ` endI'm working on getting a basic dlint going and hooking it up to the emacs mode for error and warning highlightingCoolness.
Apr 01 2005
Umm ... amazing! I didn't even know they had a lint mode, how cool!nifty. I'll stick it in the zip file if you don't object.No not at all "Ben Hinkle" <ben.hinkle gmail.com> wrote in message news:d2kuks$22a8$1 digitaldaemon.com..."Charlie" <charles jwavro.com> wrote in message news:d2kbrj$1hu4$1 digitaldaemon.com...(andAttached is a sneak-peak at dlint minor-mode in emacs (using the D major-mode). There are two warnings in the code- one about a function that should return a value that doesn't and another about a narrowing cast. I'll clean things up over the weekend and make another post when dlintI'm working on getting a basic dlint going and hooking it up to the emacs mode for error and warning highlightingCoolness.the d-mode update) is ready. Thanks to Walter for the wonderful front-end code and warning implementation. -Ben ps -notice the cute little Dlint menu, too. It basically came for freefromthe mlint highlighter I'm using (written by my buddy Eric Ludlam - Emacs hacker extraordinaire) :-)
Apr 02 2005
Do you mind if I use this for elephant ? C "Ben Hinkle" <ben.hinkle gmail.com> wrote in message news:d2kuks$22a8$1 digitaldaemon.com..."Charlie" <charles jwavro.com> wrote in message news:d2kbrj$1hu4$1 digitaldaemon.com...(andAttached is a sneak-peak at dlint minor-mode in emacs (using the D major-mode). There are two warnings in the code- one about a function that should return a value that doesn't and another about a narrowing cast. I'll clean things up over the weekend and make another post when dlintI'm working on getting a basic dlint going and hooking it up to the emacs mode for error and warning highlightingCoolness.the d-mode update) is ready. Thanks to Walter for the wonderful front-end code and warning implementation. -Ben ps -notice the cute little Dlint menu, too. It basically came for freefromthe mlint highlighter I'm using (written by my buddy Eric Ludlam - Emacs hacker extraordinaire) :-)
Apr 03 2005
"Charlie" <charles jwavro.com> wrote in message news:d2pn5u$8i9$1 digitaldaemon.com...Do you mind if I use this for elephant ? CPlease do. That's what it's there for. I'll post a real announcement now that I put it up.
Apr 03 2005
Currently only Windows is supported (but that's probably justbecuase Ihaven't made a Makefile for Linux yet). The project is GPL.Just curious why you are using gpl ... was that necessary based on derivation, or your preference? If preference, why?
Apr 01 2005
"Lynn Allan" <l_d_allan adelphia.net> wrote in message news:d2k3fj$19b0$1 digitaldaemon.com...The dmd source allows either GPL or the artistic license and I just chose GPL because I understand it. I haven't looked closely at the artistic one - would you prefer that license? I'm not really sure how it differs from GPL, to be honest. Maybe I should keep the same style as dmd and say "either GPL or Artistic". That would probably be the best approach.Currently only Windows is supported (but that's probably justbecuase Ihaven't made a Makefile for Linux yet). The project is GPL.Just curious why you are using gpl ... was that necessary based on derivation, or your preference? If preference, why?
Apr 01 2005
"Ben Hinkle" <bhinkle mathworks.com> wrote in message news:d2k6ff$1cca$1 digitaldaemon.com..."Lynn Allan" <l_d_allan adelphia.net> wrote in message news:d2k3fj$19b0$1 digitaldaemon.com...one -The dmd source allows either GPL or the artistic license and I just chose GPL because I understand it. I haven't looked closely at the artisticCurrently only Windows is supported (but that's probably justbecuase Ihaven't made a Makefile for Linux yet). The project is GPL.Just curious why you are using gpl ... was that necessary based on derivation, or your preference? If preference, why?would you prefer that license? I'm not really sure how it differs fromGPL,to be honest. Maybe I should keep the same style as dmd and say "eitherGPLor Artistic". That would probably be the best approach.The artistic license applies if you want to make a close source version.
Apr 02 2005
"Ben Hinkle" <bhinkle mathworks.com> wrote in message news:d2k6ff$1cca$1 digitaldaemon.com..."Lynn Allan" <l_d_allan adelphia.net> wrote in message news:d2k3fj$19b0$1 digitaldaemon.com...choseThe dmd source allows either GPL or the artistic license and I justCurrently only Windows is supported (but that's probably justbecuase Ihaven't made a Makefile for Linux yet). The project is GPL.Just curious why you are using gpl ... was that necessary based on derivation, or your preference? If preference, why?GPL because I understand it. I haven't looked closely at theartistic one -would you prefer that license? I'm not really sure how it differsfrom GPL,to be honest. Maybe I should keep the same style as dmd and say"either GPLor Artistic". That would probably be the best approach.<alert comment="IANAL"> And I'm also not a fan of gpl. From a developer's point of view, I've only seen downsides to using gpl compared to other common open source licenses (mpl, Artistic, LGPL, etc.), and no upside. Whenever I see a project with gpl, I just groan. "Crud, another library / tool that will be harder to work with than it has to be." I would come close to recommending public domain over gpl, but Artistic seems like quite a good choice. I remember trying to sort out the different license choices some time back, and Artistic was the choice I was going to use. A possible problem with Artistic is that I recall some time back, SourceForge didn't have "Artistic" as one of the options in the drop-down menu for which license you wanted to select. Or maybe it was some variant of "Modified Artistic"? It may very well have been added since then, so this is moot. </alert>
Apr 04 2005
Whenever I see a project with gpl, I just groan. "Crud, another library / tool that will be harder to work with than it has to be." I would come close to recommending public domain over gpl, but Artistic seems like quite a good choice. I remember trying to sort out the different license choices some time back, and Artistic was the choice I was going to use.It's funny you say that because I totally agree. Most of my stuff is public domain.
Apr 04 2005