digitalmars.D.learn - RDMD on Windows
- Andrej Mitrovic (21/21) Aug 21 2010 Is anyone having success using RDMD on Windows? I keep getting back this...
- Nick Sabalausky (393/418) Aug 21 2010 I've recently been using rdmd a lot of Windows. I didn't have that
- Andrej Mitrovic (4/5) Aug 21 2010 Thanks for all the help, Nick. But I don't see your attachment. I can't ...
- Nick Sabalausky (10/18) Aug 21 2010 Weird, maybe it's my NG client. You can get it here:
- Andrej Mitrovic (68/69) Aug 21 2010 Man, I have no idea what's going on. I was trying out building with xfbu...
- Nick Sabalausky (34/55) Aug 21 2010 [snip]
- Andrej Mitrovic (6/7) Aug 21 2010 Doh! I swear I've read somewhere that a module declaration needs to have...
- Rory Mcguire (7/25) Aug 22 2010 In Java yes. I D you can use the module declaration to "move" a module.
- Andrej Mitrovic (4/11) Aug 22 2010 That's very interesting.
- Mafi (5/8) Aug 22 2010 AFAIK the package attribute gives access to all modules which define to
- Andrej Mitrovic (33/41) Aug 22 2010 Well then I think I've found some new bugs in RDMD & xfbuild:
- Nick Sabalausky (28/63) Aug 22 2010 Hmm, yea that's not going to work with those tools. The whole point of t...
- Andrej Mitrovic (4/5) Aug 22 2010 I see.
- bearophile (6/9) Aug 22 2010 You may vote this:
Is anyone having success using RDMD on Windows? I keep getting back this kind of nonsense: .\widget.d(2): Error: module io from file acme\goodies\io.d conflicts with another module io from file .\acme\goodies\io.d The files are: C:\test\main.d C:\test\widget.d C:\test\acme\goodies\io.d main.d: import widget; void main() { } widget.d: public import acme.goodies.io; void fun(int x) { } io.d: void fun(long n) { } It almost looks like it's trying to parse the file twice for some reason. The source is available, which is cool, so I might take a look. Is anyone else having this kind of error?
Aug 21 2010
"Andrej Mitrovic" <andrej.mitrovich gmail.com> wrote in message news:i4p4tn$2sd9$1 digitalmars.com...Is anyone having success using RDMD on Windows? I keep getting back this kind of nonsense: .\widget.d(2): Error: module io from file acme\goodies\io.d conflicts with another module io from file .\acme\goodies\io.d The files are: C:\test\main.d C:\test\widget.d C:\test\acme\goodies\io.d main.d: import widget; void main() { } widget.d: public import acme.goodies.io; void fun(int x) { } io.d: void fun(long n) { } It almost looks like it's trying to parse the file twice for some reason. The source is available, which is cool, so I might take a look. Is anyone else having this kind of error?I've recently been using rdmd a lot of Windows. I didn't have that particular issue, but I have had other issues: One is already fixed in trunk, and others I've made patches for (I'll get to that further below). First of all, which version of RDMD are you using? The one that comes pre-packaged with DMD, (ie, rdmd 20090902)? Or one of the versions in Phobos trunk (r1315, or r1400)? Secondly, what is the *exact* command are you using to try to build with RDMD? If you're not building from the exact directory that has the file with main(), then the RDMD currently packaged with DMD won't work, you'll need to use the latest one from trunk: http://www.dsource.org/projects/phobos/browser/trunk/tools/rdmd.d?rev=1400 Download that, and either: A. Compile it with "dmd rdmd.d" and copy the exe to dmd/windows/bin, or B. Just use "rdmd rdmd.d {your app}" instead of "rdmd {your app}". If that doesn't work, then try the "rdmdAlt.d" that I've attached. It's just like r1400, but with these patches applied: http://d.puremagic.com/issues/show_bug.cgi?id=4674 http://d.puremagic.com/issues/show_bug.cgi?id=4683 http://d.puremagic.com/issues/show_bug.cgi?id=4684 http://d.puremagic.com/issues/show_bug.cgi?id=4688 (It also adds a "-o+" option I was playing with, but that's kinda useless since rdmd doesn't do incremental compilation, so just ignore that option.) If that rdmdAlt.d still doesn't work, let me know the exact command-line command you're using, and what version of DMD you're using. (BTW, RDMD does parse the files twice: It calls DMD once to find out all the dependencies, and then again to actually compile all of the files.) begin 666 rdmdAlt.d M+R\ 5W)I='1E;B!I;B!T:&4 1"!P<F]G<F%M;6EN9R!L86YG=6%G92X*"B\O M(&9O<B!396UI5'=I<W0 1"!4;V]L<RX*+R\*+R\ 5&AI<R!C86X :G5S="!B M92!R=6X 9G)O;2!W:&%T979E<B!21$U$(&ES(&%L<F5A9'D*+R\ :6YC;'5D M960 =VET:"!$340N" II;7!O<G0 <W1D+F%L9V]R:71H;2P <W1D+F,N<W1D M;&EB+"!S=&0N97AC97!T:6]N+"!S=&0N9&%T92P*(" ('-T9"YF:6QE+"!S M=&0N9V5T;W!T+ H (" <W1D+FUD-2P <W1D+G!A=& L('-T9"YP<F]C97-S M+"!S=&0N<F5G97AP+ H (" <W1D+G-T9&EO+"!S=&0N<W1R:6YG+"!S=&0N M='EP971U<&QE.PH*=F5R<VEO;B H4&]S:7 I"GL*(" (&5N=6T ;V)J17AT M(#T (BYO(CL*(" (&5N=6T 8FEN17AT(#T (B(["GT*96QS92!V97)S:6]N M("A7:6YD;W=S*0I["B ("!E;G5M(&]B:D5X=" ]("(N;V)J(CL*(" (&5N M=6T 8FEN17AT(#T (BYE>&4B.PI]"F5L<V4*>PH (" <W1A=&EC(&%S<V5R M=" P*3L*?0H*<')I=F%T92!B;V]L(&-H871T>2P 8G5I;&1/;FQY+"!D<GE2 M=6XL(&9O<F-E+"!K965P3V)J.PIP<FEV871E('-T<FEN9R!E>&4L(&-O;7!I M;&5R(#T (F1M9"([" II;G0 ;6%I;BAS=')I;F=;72!A<F=S*0I["B (" O M+W=R:71E;&XH(DEN=F]K960 =VET:#H (BP ;6%P(2AQ>V$ ?B B+" B?2DH M87)G<RDI.PH (" :68 *&%R9W,N;&5N9W1H(#X ,2 F)B!S=&0N86QG;W)I M=&AM+G-T87)T<U=I=& H87)G<ULQ72P*(" (" (" (" (" (" (" B M+2US:&5B86YG("(L("(M+7-H96)A;F<](BDI"B ("!["B (" (" +R\ M;75L=&EP;&4 ;W!T:6]N<R!W<F%P<&5D(&EN(&]N90H (" (" (&%U=&\ M82 ](&%R9W-;,5U;(BTM<VAE8F%N9R B+FQE;F=T:" N+B D73L*(" (" M("!A<F=S(#T M)%T["B ("!]"B (" *(" ("\O($-O;G1I;G5E('!A<G-I;F< =&AE(&-O M;6UA;F0 ;&EN93L ;F]W(&=E="!R9&UD)W, ;W=N(&%R9W5M96YT<PH (" M+R\ <&%R<V4 =&AE("UO(&]P=&EO; H (" =F]I9"!D87-H3V H<W1R:6YG M(&ME>2P <W1R:6YG('9A;'5E*0H (" >PH (" (" (&EF("AV86QU95LP M72 ]/2 G9B<I"B (" (" >PH (" (" (" (" O+R M;V9M>69I;&4 M<&%S<V5D"B (" (" (" (&5X92 ]('9A;'5E6S$ +BX )%T["B (" M(" ?0H (" (" (&5L<V4 :68 *'9A;'5E6S!=(#T]("=D)RD*(" (" M("!["B (" (" (" ("\O("UO9&UY9&ER('!A<W-E9 H (" (" (" M("!I9B A97AE*2 O+R!$;VXG="!L970 +6]D(&]V97)R:61E("UO9 H (" M(" (" ("!["B (" (" (" (" (" O+R!A9&0 82!T<F%I;&EN9R!P M871H('-E<&%R871O<B!T;R!C;&%R:69Y(&ET)W, 82!D:7(*(" (" (" M(" (" (&5X92 ]('9A;'5E6S$ +BX )%T["B (" (" (" (" ("!I M9B A<W1D+F%L9V]R:71H;2YE;F1S5VET:"AE>&4L('-T9"YP871H+G-E<%M= M*2D*(" (" (" (" (" (" ("!E>&4 ?CT <W1D+G!A=& N<V5P6UT[ M"B (" (" (" (" ("!A<W-E<G0H<W1D+F%L9V]R:71H;2YE;F1S5VET M:"AE>&4L('-T9"YP871H+G-E<%M=*2D["B (" (" (" ('T*(" (" M("!]"B (" (" 96QS92!I9B H=F%L=65;,%T /3T )RTG*0H (" (" M('L*(" (" (" (" +R\ +6\M('!A<W-E9 H (" (" (" ("!E;F9O M<F-E*&9A;'-E+" B3W!T:6]N("UO+2!C=7)R96YT;'D ;F]T('-U<'!O<G1E M9"!B>2!R9&UD(BD["B (" (" ?0H (" (" (&5L<V4 :68 *'9A;'5E M6S!=(#T]("<K)RD*(" (" ("!["B (" (" (" ("\O("UO*R!P87-S M960*(" (" (" (" :V5E<$]B:B ]('1R=64["B (" (" ?0H (" M(" (&5L<V4*(" (" ("!["B (" (" (" (&5N9F]R8V4H9F%L<V4L M(")5;G)E8V]G;FEZ960 ;W!T:6]N.B B?FME>7YV86QU92D["B (" (" M?0H (" ?0H (" "B (" O+R!S=&%R="!T:&4 =V5B(&)R;W=S97( ;VX M9&]C=6UE;G1A=&EO;B!P86=E"B ("!V;VED(&UA;B I"B ("!["B (" M(" 9F]R96%C:" H8CL 6R!S=&0N<')O8V5S<RYG971E;G8H(D)23U=315(B M*2P (F9I<F5F;W B+ H (" (" (" (" (" (" (" (" B<V5N<VEB M;&4M8G)O=W-E<B(L(")X+7=W=RUB<F]W<V5R(B!=*2!["B (" (" (" M(&EF(" A8BYL96YG=& I(&-O;G1I;G5E.PH (" (" (" ("!I9B H(7-Y M<W1E;2AB?B( :'1T<#HO+W=W=RYD:6=I=&%L;6%R<RYC;VTO9"\R+C O<F1M M9"YH=&UL(BDI"B (" (" (" (" ("!R971U<FX["B (" (" ?0H M(" ?0H*(" (&)O;VP 8F%I;&]U=#L (" +R\ 8F%I;&]U="!S970 8GD M9G5N8W1I;VYS(&-A;&QE9"!I;B!G971O<'0 :68*(" (" (" (" (" M(" (" +R\ <')O9W)A;2!S:&]U;&0 97AI= H (" <W1R:6YG6UT ;&]O M<#L (" (" +R\ <V5T(&)Y("TM;&]O< H (" 8F]O;"!A9&13='5B36%I M;CLO+R!S970 8GD +2UM86EN"B ("!S=')I;F=;72!E=F%L.R (" +R\ M<V5T(&)Y("TM979A; H (" 9V5T;W!T*&%R9W,L"B (" (" (" ('-T M9"YG971O<'0N8V]N9FEG+F-A<V5396YS:71I=F4L"B (" (" (" ('-T M9"YG971O<'0N8V]N9FEG+G!A<W-4:')O=6=H+ H (" (" (" ("!S=&0N M9V5T;W!T+F-O;F9I9RYS=&]P3VY&:7)S=$YO;D]P=&EO;BP*(" (" (" M(" (F)U:6QD+6]N;'DB+" F8G5I;&1/;FQY+ H (" (" (" (" B8VAA M='1Y(BP )F-H871T>2P*(" (" (" (" (F1R>2UR=6XB+" F9')Y4G5N M+ H (" (" (" (" B9F]R8V4B+" F9F]R8V4L"B (" (" (" (")H M96QP(BP *'-T<FEN9RD >R!W<FET96QN*&AE;'!3=')I;F<I.R!B86EL;W5T M(#T =')U93L ?2P*(" (" (" (" (FUA:6XB+" F861D4W1U8DUA:6XL M"B (" (" (" (")M86XB+" H<W1R:6YG*2![(&UA;CL 8F%I;&]U=" ] M('1R=64[('TL"B (" (" (" (")E=F%L(BP )F5V86PL"B (" (" M(" (")L;V]P(BP )FQO;W L"B (" (" (" (")O(BP )F1A<VA/:"P* M(" (" (" (" (F-O;7!I;&5R(BP )F-O;7!I;&5R*3L*(" (&EF("AB M86EL;W5T*2!R971U<FX ,#L*(" (&EF("AD<GE2=6XI(&-H871T>2 ]('1R M=64[("\O(&1R>2UR=6X :6UP;&EE<R!C:&%T='D*"B (" O+R!*=7-T(&5V M86QU871E('1H:7, <')O9W)A;2$*(" (&EF("AL;V]P*0H (" >PH (" M(" (')E='5R;B N979A;"AI;7!O<G17;W)L9"!^(")V;VED(&UA:6XH8VAA M<EM=6UT 87)G<RD >R B"B (" (" (" (" ("!^(")F;W)E86-H("AL M:6YE.R!S=&1I;BYB>4QI;F4H*2D >UQN(B!^(&IO:6XH;&]O<"P (EQN(BD* M(" (" (" (" (" ('X (CM<;GT ?2(I.PH (" ?0H (" :68 *&5V M86PI"B ("!["B (" (" <F5T=7)N("YE=F%L*&EM<&]R=%=O<FQD('X M(G9O:60 ;6%I;BAC:&%R6UU;72!A<F=S*2![7&XB"B (" (" (" (" M("!^(&IO:6XH979A;"P (EQN(BD ?B B.UQN?2(I.PH (" ?0H (" "B M(" O+R!087)S92!T:&4 <')O9W)A;2!L:6YE("T 9FER<W0 9FEN9"!T:&4 M;W( *#L[("LK<')O9W)A;5!O<RD*(" ('L*(" (" ("!I9B H<')O9W)A M;5!O<R ]/2!A<F=S+FQE;F=T:"D*(" (" ("!["B (" (" (" ('=R M:71E*&AE;'!3=')I;F<I.PH (" (" (" ("!R971U<FX ,3L*(" (" M("!]"B (" (" :68 *&%R9W-;<')O9W)A;5!O<UTN;&5N9W1H("8F(&%R M9W-;<')O9W)A;5!O<UU;,%T (3T )RTG*2!B<F5A:SL*(" ('T*(" (&-O M;G-T"B (" (" <F]O=" ]("\J<F5L,F%B<RHO*&-H;VUP*&%R9W-;<')O M9W)A;5!O<UTL("(N9"(I('X (BYD(BDL"B (" (" 97AE0F%S96YA;64 M/2!B87-E;F%M92AR;V]T+" B+F0B*2P*(" (" ("!E>&5$:7)N86UE(#T M9&ER;F%M92AR;V]T*3L*(" (&%U=&\ <')O9W)A;4%R9W, /2!A<F=S6W!R M;V=R86U0;W, *R Q("XN("1=.PH (" 87)G<R ](&%R9W-;," N+B!P<F]G M<F%M4&]S73L*(" (&-O;G-T(&-O;7!I;&5R1FQA9W, /2!A<F=S6S$ +BX M<')O9W)A;5!O<UT[" H (" +R\ 0V]M<'5T92!T:&4 ;V)J96-T(&1I<F5C M=&]R>2!A;F0 96YS=7)E(&ET(&5X:7-T<PH (" :6YV87)I86YT(&]B:D1I M<B ](&=E=$]B:E!A=& H<F]O="P 8V]M<&EL97)&;&%G<RD["B ("!I9B H M(61R>5)U;BD (" (" ("\O(&]N;'D ;6%K92!A(&9U<W, 86)O=70 ;V)J M1&ER(&]N(&$ <F5A;"!R=6X*(" ('L*(" (" ("!E>&ES=',H;V)J1&ER M*0H (" (" (" (" _(&5N9F]R8V4H:7-D:7(H;V)J1&ER*2P*(" (" M(" (" (" (" (" B16YT<GD 8")^;V)J1&ER?B(G(&5X:7-T<R!B=70 M:7, ;F]T(&$ 9&ER96-T;W)Y+B(I"B (" (" (" (#H ;6MD:7(H;V)J M1&ER*3L*(" ('T*(" "B (" O+R!&971C:"!D97!E;F1E;F-I97,*(" M(&-O;G-T(&UY36]D=6QE<R ](&=E=$1E<&5N9&5N8VEE<RAR;V]T+"!O8FI$ M:7(L(&-O;7!I;&5R1FQA9W,I.PH*(" ("\O($-O;7!U=&4 97AE8W5T86)L M92!N86UE+"!C:&5C:R!F;W( 9G)E<VAN97-S+"!R96)U:6QD"B ("!I9B H M97AE*0H (" >PH (" (" ("\O('5S97(M<W!E8VEF:65D(&5X92!N86UE M"B (" (" :68 *'-T9"YA;&=O<FET:&TN96YD<U=I=& H97AE+"!S=&0N M<&%T:"YS97!;72DI"B (" (" >PH (" (" (" (" O+R!U<V5R('-P M96-I9FEE9"!A(&1I<F5C=&]R>2P 8V]M<&QE=&4 :70 =&\ 82!F:6QE"B M(" (" (" (&5X92 ]('-T9"YP871H+FIO:6XH97AE+"!E>&5"87-E;F%M M92D["B (" (" ?0H (" ?0H (" 96QS90H (" >PH (" (" ("\O M97AE(#T 97AE0F%S96YA;64 ?B G+B< ?B!H87-H*')O;W0L(&-O;7!I;&5R M1FQA9W,I.PH (" (" ('9E<G-I;VX *%!O<VEX*0H (" (" (" ("!E M>&4 /2!J;VEN*&UY3W=N5&UP1&ER+"!R96PR86)S*')O;W0I6S$ +BX )%TI M"B (" (" (" (" ("!^("<N)R!^(&AA<V H<F]O="P 8V]M<&EL97)& M;&%G<RD["B (" (" 96QS92!V97)S:6]N("A7:6YD;W=S*0H (" (" M(" ("!E>&4 /2!J;VEN*&UY3W=N5&UP1&ER+"!S=&0N<W1R:6YG+G)E<&QA M8V4H<F]O="P (BXB+" B+2(I*0H (" (" (" (" (" ?B G+2< ?B!H M87-H*')O;W0L(&-O;7!I;&5R1FQA9W,I.PH (" (" (&5L<V4*(" (" M;W( 5VEN9&]W<PH (" 97AE('X](&)I;D5X=#L " H (" +R\ 2&%V92!A M="!I= H (" :68 *&ES3F5W97(H<F]O="P 97AE*2!\? H (" (" (" M("!S=&0N86QG;W)I=&AM+F9I;F0A"B (" (" (" (" (" H*'-T<FEN M9R!A*2![<F5T=7)N(&ES3F5W97(H82P 97AE*3M]*0H (" (" (" (" M(" *&UY36]D=6QE<RYK97ES*2YL96YG=& I"B ("!["B (" (" :6YV M87)I86YT(')E<W5L=" ](')E8G5I;&0H<F]O="P 97AE+"!O8FI$:7(L(&UY M36]D=6QE<RP 8V]M<&EL97)&;&%G<RP*(" (" (" (" (" (" (" M(" (" (" (" ("!A9&13='5B36%I;BD["B (" (" :68 *')E<W5L M="D <F5T=7)N(')E<W5L=#L*(" ('T*"B (" O+R!R=6X*(" ('9E<G-I M;VXH5VEN9&]W<RD*(" ('L*(" (" ("!F;W)E86-H*')E9B!A<F<[('!R M;V=R86U!<F=S*0H (" (" (" ("!A<F< /2!S:&5L;%%U;W1E*&%R9RD[ M(%T ?B!P<F]G<F%M07)G<RDN:F]I;B B("(I*3L*(" ('T*(" (&5L<V4* M>&4 72!^('!R;V=R86U!<F=S*3L*?0H*8F]O;"!I;D%,:6)R87)Y*&EN('-T M<FEN9R!S;W5R8V4L(&EN('-T<FEN9R!O8FIE8W0I"GL*(" ("\O($AE=7)I M<W1I8W,Z(&EF('-O=7)C92!S=&%R=', =VET:" B<W1D+B(L(&ET)W, :6X M82!L:6)R87)Y"B ("!R971U<FX <W1D+G-T<FEN9RYS=&%R='-7:71H*'-O M=7)C92P (G-T9"XB*0H (" (" ('Q\('-T9"YS=')I;F<N<W1A<G1S5VET M:"AS;W5R8V4L(")C;W)E+B(I"B (" (" ?'P <V]U<F-E(#T](")O8FIE M8W0B('Q\('-O=7)C92 ]/2 B9V-S=&%T<R(["B (" O+R!A;F]T:&5R(&-R M=61E(&AE=7)I<W1I8SH :68 82!M;V1U;&4G<R!P871H(&ES(&%B<V]L=71E M+"!I="=S"B (" O+R!C;VYS:61E<F5D('1O(&)E(&-O;7!I;&5D(&EN(&$ M<V5P87)A=&4 ;&EB<F%R>2X 3W1H97)W:7-E+ H (" +R\ :70G<R!A('-O M=7)C92!M;V1U;&4N"B (" O+W)E='5R;B!I<V%B<RAM;V0I.PI]" IP<FEV M871E('-T<FEN9R!M>4]W;E1M<$1I<B I"GL*(" ('9E<G-I;VX *%!O<VEX M*0H (" >PH (" (" (&5N=6T =&UP4F]O=" ]("(O=&UP+RYR9&UD(CL* M(" ('T*(" (&5L<V4 =F5R<VEO;B H5VEN9&]W<RD*(" ('L*(" (" M("!A=71O('1M<%)O;W0 /2!S=&0N<')O8V5S<RYG971E;G8H(E1%35 B*3L* M(" (" ("!I9B H(71M<%)O;W0I"B (" (" >PH (" (" (" ("!T M;7!2;V]T(#T <W1D+G!R;V-E<W,N9V5T96YV*")435 B*3L*(" (" ("!] M"B (" (" :68 *"%T;7!2;V]T*2!T;7!2;V]T(#T :F]I;B B+B(L("(N M<F1M9"(I.PH (" (" (&5L<V4 =&UP4F]O="!^/2!S97 ?B B+G)D;60B M.PH (" ?0H (" 97AI<W1S*'1M<%)O;W0I("8F(&ES9&ER*'1M<%)O;W0I M('Q\(&UK9&ER4F5C=7)S92AT;7!2;V]T*3L*(" (')E='5R;B!T;7!2;V]T M.PI]" IP<FEV871E('-T<FEN9R!H87-H*&EN('-T<FEN9R!R;V]T+"!I;B!S M=')I;F=;72!C;VUP:6QE<D9L86=S*0I["B ("!E;G5M('-T<FEN9UM=(&ER M<F5L979A;G13=VET8VAE<R ](%L*(" (" (" B+2UH96QP(BP (BUI9VYO M<F4B+" B+7%U:65T(BP (BUV(B!=.PH (" 340U7T-46"!C;VYT97AT.PH M(" 8V]N=&5X="YS=&%R=" I.PH (" 8V]N=&5X="YU<&1A=&4H9V5T8W=D M*3L*(" (&-O;G1E>'0N=7!D871E*')O;W0I.PH (" 9F]R96%C:" H9FQA M9SL 8V]M<&EL97)&;&%G<RD >PH (" (" (&EF("AF:6YD*&ER<F5L979A M;G13=VET8VAE<RP 9FQA9RDN;&5N9W1H*2!C;VYT:6YU93L*(" (" ("!C M;VYT97AT+G5P9&%T92AF;&%G*3L*(" ('T*(" ('5B>71E(&1I9V5S=%LQ M-ET["B ("!C;VYT97AT+F9I;FES:"AD:6=E<W0I.PH (" <F5T=7)N(&1I M9V5S=%1O4W1R:6YG*&1I9V5S="D["GT*"G!R:79A=&4 <W1R:6YG(&=E=$]B M:E!A=& H:6X <W1R:6YG(')O;W0L(&EN('-T<FEN9UM=(&-O;7!I;&5R1FQA M9W,I"GL*(" (&-O;G-T('1M<%)O;W0 /2!M>4]W;E1M<$1I<CL*(" (')E M='5R;B!S=&0N<&%T:"YJ;VEN*'1M<%)O;W0L"B (" (" (" (")R9&UD M+2( ?B!B87-E;F%M92AR;V]T*2!^("<M)R!^(&AA<V H<F]O="P 8V]M<&EL M97)&;&%G<RDI.PI]" HO+R!296)U:6QD('1H92!E>&5C=71A8FQE(&9U;&Q% M>&4 <W1A<G1I;F< 9G)O;2!M;V1U;&5S(&UY36]D=6QE<PHO+R!P87-S:6YG M('1H92!C;VUP:6QE<B!F;&%G<R!C;VUP:6QE<D9L86=S+B!'96YE<F%T97, M;VYE(&QA<F=E"B\O(&]B:F5C="!F:6QE+ H*<')I=F%T92!I;G0 <F5B=6EL M9"AS=')I;F< <F]O="P <W1R:6YG(&9U;&Q%>&4L"B (" (" <W1R:6YG M(&]B:D1I<BP :6X <W1R:6YG6W-T<FEN9UT ;7E-;V1U;&5S+ H (" (" M(&EN('-T<FEN9UM=(&-O;7!I;&5R1FQA9W,L(&)O;VP 861D4W1U8DUA:6XI M"GL*(" (&%U=&\ =&]D;R ](&-O;7!I;&5R?B( (GYJ;VEN*&-O;7!I;&5R M1FQA9W,L("( (BD*(" (" ("!^(B M;V8B?G-H96QL475O=&4H9G5L;$5X M92D*(" (" ("!^(B M;V0B?G-H96QL475O=&4H;V)J1&ER*0H (" (" M('XB("U)(GYS:&5L;%%U;W1E*&1I<FYA;64H<F]O="DI"B (" (" ?B( M(GYS:&5L;%%U;W1E*')O;W0I?B( (CL*(" (&9O<F5A8V *&L[(&UA<"$H M<VAE;&Q1=6]T92DH;7E-;V1U;&5S+FME>7,I*2!["B (" (" =&]D;R!^ M/2!K('X (B B.PH (" ?0H*(" ("\O($YE960 =&\ 861D('1H92!P97-K M>2!V;VED(&UA:6XH*7M]/PH (" :68 *&%D9%-T=6)-86EN*0H (" >PH M(" (" (&%U=&\ <W1U8DUA:6X /2!S=&0N<&%T:"YJ;VEN*&UY3W=N5&UP M1&ER+" B<W1U8FUA:6XN9"(I.PH (" (" ('-T9"YF:6QE+G=R:71E*'-T M=6)-86EN+" B=F]I9"!M86EN*"E[?2(I.PH (" (" ('1O9&\ ?CT <W1U M8DUA:6X["B ("!]"B (" *(" (&EN=F%R:6%N="!R97-U;'0 /2!R=6XH M=&]D;RD["B ("!I9B H<F5S=6QT*2 *(" ('L*(" (" (" O+R!B=6EL M9"!F86EL960*(" (" ("!R971U<FX <F5S=6QT.PH (" ?0H (" +R\ M8VQE86X =7 =&AE(&1I<B!C;VYT86EN:6YG('1H92!O8FIE8W0 9FEL90H M(" <FUD:7)296-U<G-E*&]B:D1I<BD["B ("!R971U<FX ,#L*?0H*+R\ M4G5N(&$ <')O9W)A;2!O<'1I;VYA;&QY('=R:71I;F< =&AE(&-O;6UA;F0 M;&EN92!F:7)S= H*<')I=F%T92!I;G0 <G5N*'-T<FEN9R!T;V1O*0I["B M("!I9B H8VAA='1Y*2!W<FET96QN*'1O9&\I.PH (" :68 *&1R>5)U;BD M;B!M;V1U;&4 <F]O=$UO9'5L92P <F5T=7)N<R!A(&UA<'!I;F< ;V8 86QL M(&1E<&5N9&5E<R N9 HO+R!S;W5R8V4 9FEL96YA;65S('1O('1H96ER(&-O M<G)E<W!O;F1I;F< +F\ 9FEL97, <VET=&EN9R!I; HO+R!D:7)E8W1O<GD M;V)J1&ER+B!4:&4 ;6%P<&EN9R!I<R!O8G1A:6YE9"!B>2!R=6YN:6YG(&1M M9" M=B!A9V%I;G-T"B\O(')O;W1-;V1U;&4N" IP<FEV871E('-T<FEN9UMS M=')I;F==(&=E=$1E<&5N9&5N8VEE<RAS=')I;F< <F]O=$UO9'5L92P <W1R M:6YG(&]B:D1I<BP*(" (" ("!I;B!S=')I;F=;72!C;VUP:6QE<D9L86=S M<F5T=7)N('-T9"YP871H+FIO:6XH;V)J1&ER+"!C:&]M<"AB87-E;F%M92AD M9FEL92DL("(N9"(I?F]B:D5X="D["B ("!]" H (" :6UM=71A8FQE(&1E M<'-&:6QE;F%M92 ](')O;W1-;V1U;&5^(BYD97!S(CL*(" (&EM;75T86)L M92!R;V]T1&ER(#T 9&ER;F%M92AR;V]T36]D=6QE*3L*(" ( H (" +R\ M;7E-;V1U;&5S(&UA<', ;6]D=6QE('-O=7)C92!P871H<R!T;R!C;W)R97-P M;VYD:6YG("YO(&YA;65S"B ("!S=')I;F=;<W1R:6YG72!M>4UO9'5L97,[ M+R\ /2!;(')O;W1-;V1U;&4 .B!D,F]B:BAR;V]T36]D=6QE*2!=.PH (" M+R\ 375S="!C;VQL96-T(&1E<&5N9&5N8VEE<PH (" :6YV87)I86YT(&1E M<'-'971T97( /2 O*B)C9" B?G-H96QL475O=&4H<F]O=$1I<BE^(B F)B B M"B (" (" (" (" (" (" (" (" (" ?BHO8V]M<&EL97)^(B B M?FIO:6XH8V]M<&EL97)&;&%G<RP (B B*0H (" (" ('XB("UV("UO+2 B M?G-H96QL475O=&4H<F]O=$UO9'5L92D*(" (" ("!^(B M22)^<VAE;&Q1 M=6]T92AR;V]T1&ER*0H (" (" ('XB(#XB?F1E<'-&:6QE;F%M93L*(" M(&EF("AC:&%T='DI('=R:71E;&XH9&5P<T=E='1E<BD["B ("!I;6UU=&%B M*&1E<'-%>&ET0V]D92D*(" ('L*(" (" (" O+R!I9B H97AI<W1S*&1E M<'-&:6QE;F%M92DI"B (" (" +R\ >PH (" (" ("\O(" ("!S=&1E M<G(N=W)I=&5L;BAR96%D5&5X="AD97!S1FEL96YA;64I*3L*(" (" (" O M+R!]"B (" (" 97AI="AD97!S17AI=$-O9&4I.PH (" ?0H (" 875T M;R!D97!S4F5A9&5R(#T 1FEL92AD97!S1FEL96YA;64I.PH (" <V-O<&4H M97AI="D 8V]L;&5C=$5X8V5P=&EO;BAD97!S4F5A9&5R+F-L;W-E*3L +R\ M=V4 9&]N)W0 8V%R92!F;W( 97)R;W)S" H (" +R\ 1F5T8V 86QL(&1E M<&5N9&5N="!M;V1U;&5S(&%N9"!A<'!E;F0 =&AE;2!T;R!M>4UO9'5L97,* M(" (&%U=&\ <&%T=&5R;B ](&YE=R!296=%>' H<B)>:6UP;W)T7',K*%Q3 M*RE<<RM<*"A<4RLI7"E<<RHD(BD["B ("!F;W)E86-H("AS=')I;F< ;&EN M93L ;&EN97,H9&5P<U)E861E<BDI"B ("!["B (" (" :68 *"%P871T M97)N+G1E<W0H;&EN92DI(&-O;G1I;G5E.PH (" (" (&EN=F%R:6%N="!M M;V1U;&5.86UE(#T <&%T=&5R;ELQ72P ;6]D=6QE4W)C(#T <&%T=&5R;ELR M73L*(" (" ("!I9B H:6Y!3&EB<F%R>2AM;V1U;&5.86UE+"!M;V1U;&53 M<F,I*2!C;VYT:6YU93L*(" (" ("!I;G9A<FEA;G0 ;6]D=6QE3V)J(#T M72 ](&UO9'5L94]B:CL*(" ('T*"B ("!R971U<FX ;7E-;V1U;&5S.PI] M" HO*G!R:79A=&4J+R!S=')I;F< <VAE;&Q1=6]T92AS=')I;F< 87)G*0I[ M"B (" O+R!4:&ES(&UA>2!H879E('1O(&-H86YG92!U;F1E<B!W:6YD;W=S M"B ("!V97)S:6]N("A7:6YD;W=S*2!E;G5M('%U;W1E8VAA<B ]("<B)SL* M(" (&5L<V4 96YU;2!Q=6]T96-H87( /2 G7"<G.PH)=F5R<VEO;B H5VEN M9&]W<RD*"7L*"0DO+R!%<V-A<&4 =')A:6QI;F< 8F%C:W-L87-H+"!S;R!I M="!D;V5S;B=T(&5S8V%P92!T:&4 96YD:6YG('%U;W1E+ H)"2\O($)A8VMS M;&%S:&5S(&5L<V5W:&5R92!S:&]U;&0 3D]4(&)E(&5S8V%P960N"B (" M(" (" (" 87)G('X]("=<7"<[" E]"B ("!R971U<FX <75O=&5C:&%R M('X 87)G('X <75O=&5C:&%R.PI]" IP<FEV871E(&)O;VP :7-.97=E<BAS M=')I;F< <V]U<F-E+"!S=')I;F< =&%R9V5T*0I["B ("!R971U<FX 9F]R M8V4 ?'P ;&%S=$UO9&EF:65D*'-O=7)C92D /CT ;&%S=$UO9&EF:65D*'1A M<F=E="P 9%]T:6UE+FUI;BD["GT*"G!R:79A=&4 <W1R:6YG(&AE;'!3=')I M;F<H*0I["B ("!R971U<FX*(G)D;60 8G5I;&0 (GYT:&ES5F5R<VEO;GXB M"E5S86=E.B!R9&UD(%M21$U$($%.1"!$340 3U!424].4UTN+BX <')O9W)A M;2!;4%)/1U)!32!/4%1)3TY372XN+ I"=6EL9', *'=I=& 9&5P96YD96YT M<RD 86YD(')U;G, 82!$('!R;V=R86TN"D5X86UP;&4Z(')D;60 +7)E;&5A M<V4 ;7EP<F]G("TM;7EP<F]G<&%R;2 U" I!;GD ;W!T:6]N('1O(&)E('!A M<W-E9"!T;R!D;60 ;75S="!O8V-U<B!B969O<F4 =&AE('!R;V=R86T ;F%M M92X 26X 861D:71I;VX*=&\ 9&UD(&]P=&EO;G,L(')D;60 <F5C;V=N:7IE M<R!T:&4 9F]L;&]W:6YG(&]P=&EO;G,Z"B +2UB=6EL9"UO;FQY(" (" M:G5S="!B=6EL9"!T:&4 97AE8W5T86)L92P 9&]N)W0 <G5N(&ET"B +2UC M:&%T='D (" (" (" =W)I=&4 9&UD(&-O;6UA;F1S('1O('-T9&]U="!B M969O<F4 97AE8W5T:6YG('1H96T*(" M+6-O;7!I;&5R/6-O;7 ("!U<V4 M=&AE('-P96-I9FEE9"!C;VUP:6QE<B H92YG+B!G9&UD*2!I;G-T96%D(&]F M(&1M9 H ("TM9')Y+7)U;B (" (" (&1O(&YO="!C;VUP:6QE+"!J=7-T M('-H;W< =VAA="!C;VUM86YD<R!W;W5L9"!B92!R=6X*(" (" (" (" M(" (" (" ("AI;7!L:65S("TM8VAA='1Y*0H ("TM979A;#UC;V1E(" M(" (&5V86QU871E(&-O9&4 7'4P,$4P(&QA('!E<FP +64 *&UU;'1I<&QE M("TM979A;"!A;&QO=V5D*0H ("TM9F]R8V4 (" (" (" (&9O<F-E(&$ M<F5B=6EL9"!E=F5N(&EF(&%P<&%R96YT;'D ;F]T(&YE8V5S<V%R>0H ("TM M:&5L<" (" (" (" ('1H:7, ;65S<V%G90H ("TM;&]O<" (" (" M(" (&%S<W5M92!<(F9O<F5A8V *&QI;F4[('-T9&EN+F)Y3&EN92 I*2![ M("XN+B!]7"( 9F]R(&5V86P*(" M+6UA:6X (" (" (" ("!A9&0 82!S M='5B(&UA:6X <')O9W)A;2!T;R!T:&4 ;6EX("AE+F<N(&9O<B!U;FET=&5S M=&EN9RD*(" M+6UA;B (" (" (" ("!O<&5N('=E8B!B<F]W<V5R(&]N M(&UA;G5A;"!P86=E"B +2US:&5B86YG(" (" (" <F1M9"!I<R!I;B!A M('-H96)A;F< ;&EN92 H<'5T(&%S(&9I<G-T(&%R9W5M96YT*0H ("UO*R M(" (" (" (" (&1O;B=T(&1E;&5T92!O8FIE8W0 9FEL97,*(CL*?0H* M+R\ 1F]R("TM979A; II;6UU=&%B;&4 <W1R:6YG(&EM<&]R=%=O<FQD(#T M( IM;V1U;&4 =&5M<&]R87)Y.PII;7!O<G0 <W1D+G-T9&EO+"!S=&0N86QG M;W)I=&AM+"!S=&0N87)R87DL('-T9"YA=&]M:6-S+"!S=&0N8F%S938T+" * M(" ('-T9"YB:6=I;G0L("\J<W1D+F)I;F0L('-T9"YB:71A<G)A>2PJ+R!S M=&0N8FET;6%N:7 L('-T9"YB;WAE<BP "B ("!S=&0N8V]M<&EL97(L('-T M9"YC;VUP;&5X+"!S=&0N8V]N=')A8W1S+"!S=&0N8V]N=BP <W1D+F-P=6ED M+"!S=&0N8W-T<F5A;2P*(" ('-T9"YC='EP92P <W1D+F1A=&4L('-T9"YD M871E<&%R<V4L('-T9"YD96UA;F=L92P <W1D+F5N8V]D:6YG+"!S=&0N9FEL M92P "B ("!S=&0N9F]R;6%T+"!S=&0N9G5N8W1I;VYA;"P <W1D+F=E=&]P M="P <W1D+FEN=')I;G-I8RP <W1D+FET97)A=&]R+" *(" ("\J<W1D+FQO M861E<BPJ+R!S=&0N;6%T:"P <W1D+FUD-2P <W1D+FUE=&%S=')I;F=S+"!S M=&0N;6UF:6QE+" *(" ('-T9"YN=6UE<FEC+"!S=&0N;W5T8G5F9F5R+"!S M=&0N<&%T:"P <W1D+G!E<F8L('-T9"YP<F]C97-S+" *(" ('-T9"YR86YD M;VTL('-T9"YR86YG92P <W1D+G)E9V5X+"!S=&0N<F5G97AP+"!S=&0N<VEG M;F%L<RP <W1D+G-O8VME="P "B ("!S=&0N<V]C:V5T<W1R96%M+"!S=&0N M<W1D:6YT+"!S=&0N<W1D:6\L('-T9"YS=&1I;V)A<V4L('-T9"YS=')E86TL M( H (" <W1D+G-T<FEN9RP <W1D+G-Y<V5R<F]R+"!S=&0N<WES=&5M+"!S M=&0N=')A:71S+"!S=&0N='EP96-O;G,L( H (" <W1D+G1Y<&5T=7!L92P M<W1D+G5N:2P <W1D+G5R:2P <W1D+G5T9BP <W1D+G9A<FEA;G0L('-T9"YX M;6PL('-T9"YZ:7 L"B ("!S=&0N>FQI8CL*(CL*"FEN="!E=F%L*'-T<FEN M87)T*"D["B ("!C;VYT97AT+G5P9&%T92AT;V1O*3L*(" ('5B>71E(&1I M9V5S=%LQ-ET["B ("!C;VYT97AT+F9I;FES:"AD:6=E<W0I.PH (" 875T M;R!P871H;F%M92 ](&UY3W=N5&UP1&ER.PH (" 875T;R!P<F]G;F%M92 ] M('-T9"YP871H+FIO:6XH<&%T:&YA;64L"B (" (" (" (")E=F%L+B( M?B!D:6=E<W14;U-T<FEN9RAD:6=E<W0I*3L*"B ("!I9B H97AI<W1S*'!R M(" ("AS=&0N9FEL92YW<FET92AP<F]G;F%M97XB+F0B+"!T;V1O*2P*(" M(" (" (" (" (" ("!R=6XH(F1M9" B('X <')O9VYA;64 ?B B+F0 M+6]F(B!^('!R;V=N86UE*2 ]/2 P*2D*(" ('L*(" (" (" O+R!)="=S M('1H97)E+"!J=7-T(')U;B!I= H (" (" (')U;BAP<F]G;F%M92D["B M("!]" H (" +R\ 0VQE86X <&%T:&YA;64*(" (&5N=6T ;&EF971I;65) M;DAO=7)S(#T ,C0["B ("!A=71O(&-U=&]F9B ](&=E=%540W1I;64 +2 V M("!F;W)E86-H("A$:7)%;G1R>2!D.R!D:7)%;G1R:65S*'!A=&AN86UE+"!3 M<&%N36]D92YS:&%L;&]W*2D*(" ('L*(" (" ("!I9B H9"YL87-T5W)I M=&54:6UE(#P 8W5T;V9F*0H (" (" ('L*(" (" (" (" <W1D+F9I M;&4N<F5M;W9E*&0N;F%M92D["B (" (" (" ("\O8G)E86L[("\O(&]N M;'D ;VYE('!E<B!C86QL('-O('=E(&1O;B=T('=A<W1E('1I;64*(" (" M("!]"B ("!]"B (" *(" (')E='5R;B P.PI]" IS=')I;F< =&AI<U9E M<G-I;VXH*0I["B ("!E;G5M(&0 /2!?7T1!5$5?7SL*(" (&5N=6T ;6]N M=& /2!D6S +BX ,UTL"B (" (" 9&%Y(#T 9%LT72 ]/2 G("< /R B M,")^9%LU72 Z(&1;-" N+B V72P*(" (" ("!Y96%R(#T 9%LW("XN("1= M.PH (" 96YU;2!M;VYT:$YU;0H (" (" (#T ;6]N=& /3T (DIA;B( M(" Z(&UO;G1H(#T M(" (" (" Z(&UO;G1H(#T M("(P."(*(" (" (" Z(&UO;G1H(#T M(#H ;6]N=& /3T (D]C="( /R B,3 B"B (" (" .B!M;VYT:" ]/2 B M3F]V(B _("(Q,2(*(" (" (" Z(&UO;G1H(#T M(" (" (#H (B(["B ("!S=&%T:6, 87-S97)T*&UO;G1H("$]("(B+" B M56YK;F]W;B!M;VYT:" B?FUO;G1H*3L*(" (')E='5R;B!Y96%R6S!=?GEE M>2!!;F1R96D 06QE>&%N9')E<V-U+"!W=W<N97)D86YI+F]R9PH *B 0F%S M960 ;VX 86X :61E82!B>2!'96]R9R!7<F5D90H *B 1F5A='5R:6YG(&EM M<')O=F5M96YT<R!S=6=G97-T960 8GD 0VAR:7-T;W!H97( 5W)I9VAT"B J M("!7:6YD;W=S('!O<G0 =7-I;F< 8G5G(&9I>&5S(&%N9"!S=6=G97-T:6]N M<R!B>2!!9&%M(%)U<'!E"B J(" *("H (%1H:7, <V]F='=A<F4 :7, <')O M=FED960 )V%S+6ES)RP =VET:&]U="!A;GD 97AP<F5S<R!O<B!I;7!L:65D M"B J("!W87)R86YT>2X 26X ;F\ 979E;G0 =VEL;"!T:&4 875T:&]R<R!B M92!H96QD(&QI86)L92!F;W( 86YY(&1A;6%G97,*("H (&%R:7-I;F< 9G)O M;2!T:&4 =7-E(&]F('1H:7, <V]F='=A<F4N"B J"B J("!097)M:7-S:6]N M(&ES(&=R86YT960 =&\ 86YY;VYE('1O('5S92!T:&ES('-O9G1W87)E(&9O M<B!A;GD <'5R<&]S92P*("H (&EN8VQU9&EN9R!C;VUM97)C:6%L(&%P<&QI M8V%T:6]N<RP 86YD('1O(&%L=&5R(&ET(&%N9"!R961I<W1R:6)U=&4 :70* M("H (&9R965L>2P <W5B:F5C="!T;R!T:&4 9F]L;&]W:6YG(')E<W1R:6-T M:6]N<SH*("H*("H (&\ (%1H92!O<FEG:6X ;V8 =&AI<R!S;V9T=V%R92!M M=7-T(&YO="!B92!M:7-R97!R97-E;G1E9#L >6]U(&UU<W0 ;F]T"B J(" M("!C;&%I;2!T:&%T('EO=2!W<F]T92!T:&4 ;W)I9VEN86P <V]F='=A<F4N M($EF('EO=2!U<V4 =&AI<R!S;V9T=V%R90H *B (" :6X 82!P<F]D=6-T M+"!A;B!A8VMN;W=L961G;65N="!I;B!T:&4 <')O9'5C="!D;V-U;65N=&%T M:6]N('=O=6QD(&)E"B J(" ("!A<'!R96-I871E9"!B=70 :7, ;F]T(')E M<75I<F5D+ H *B ;R 06QT97)E9"!S;W5R8V4 =F5R<VEO;G, ;75S="!B M92!P;&%I;FQY(&UA<FME9"!A<R!S=6-H+"!A;F0 ;75S="!N;W0*("H (" M(&)E(&UI<W)E<')E<V5N=&5D(&%S(&)E:6YG('1H92!O<FEG:6YA;"!S;V9T M=V%R92X*("H (&\ (%1H:7, ;F]T:6-E(&UA>2!N;W0 8F4 <F5M;W9E9"!O M<B!A;'1E<F5D(&9R;VT 86YY('-O=7)C90H *B (" 9&ES=')I8G5T:6]N &+ H *B\* ` end
Aug 21 2010
Thanks for all the help, Nick. But I don't see your attachment. I can't see it with the web-news reader, and on gmane there's garbled text at the end, something like "begin 666 rdmdAlt.d M+R\ 5W)I='1E;B!I;B!T:&41"!.." Do you have a link to the file instead? That would be great. And yes, I was already using the latest svn version which I've built (but it's dated 8 months ago, it's not very fresh?). The command was "rdmd main.d". And I was building from the same directory as the main.d file. Nick Sabalausky Wrote:snip
Aug 21 2010
"Andrej Mitrovic" <andrej.mitrovich gmail.com> wrote in message news:i4pgdp$1ba3$1 digitalmars.com...Thanks for all the help, Nick. But I don't see your attachment. I can't see it with the web-news reader, and on gmane there's garbled text at the end, something like "begin 666 rdmdAlt.d M+R\ 5W)I='1E;B!I;B!T:&41"!.." Do you have a link to the file instead? That would be great. And yes, I was already using the latest svn version which I've built (but it's dated 8 months ago, it's not very fresh?). The command was "rdmd main.d". And I was building from the same directory as the main.d file.Weird, maybe it's my NG client. You can get it here: http://www.dsource.org/projects/semitwist/browser/trunk/rdmdAlt.d However, I don't think it's an rdmd issue at all, because this gives me almost the exact same error (DMD 2.048 here):dmd main.d widget.d acme\goodies\io.dwidget.d(1): Error: module io from file acme\goodies\io.d conflicts with another module io from file acme\goodies\io.d ...I know I've come cross that somewhere before, either in my own code, or on bugzilla, or the NG, or something...can't remember though...
Aug 21 2010
Man, I have no idea what's going on. I was trying out building with xfbuild, and I keep getting different results on each attempted build: Attempt 1: C:\next>xfbuild myproject.d myfolder\another.d +full +o=main Build failed: myfolder/another.obj: The system cannot find the file specified. Attempt 2: C:\next>xfbuild myproject.d myfolder\another.d +full +o=main Error: Error writing file 'myfolder\another.obj' 2010-08-22 00:29:36,025 Info [root] - Build failed: 'dmd xfbuild.a27c00.rsp' returned 1 . abnormal program termination Attempt 3: C:\next>xfbuild myproject.d myfolder\another.d +full +o=main 2010-08-22 00:29:37,240 Info [root] - Build failed: myfolder/another.obj: The process ca nnot access the file because it is being used by another process. abnormal program termination Attempt 4: C:\next>xfbuild myproject.d myfolder\another.d +full +o=main Error: Error writing file 'myfolder\another.obj' 2010-08-22 00:29:38,214 Info [root] - Build failed: 'dmd xfbuild.a27a00.rsp' returned 1 . abnormal program termination Attempt 5, *now* it works: C:\next>xfbuild myproject.d myfolder\another.d +full +o=main Attempt 6: C:\next>xfbuild myproject.d myfolder\another.d +full +o=main OPTLINK (R) for Win32 Release 8.00.2 Copyright (C) Digital Mars 1989-2009 All rights reserved. http://www.digitalmars.com/ctg/optlink.html .objs\another.obj Error 2: File Not Found .objs\another.obj --- errorlevel 1 xfbuild.Process.ProcessExecutionException: 'dmd xfbuild.a00e00.rsp' returned 1. ---------------- [ 42fab0] 0+0 tango.core.tools.WinStackTrace.winAddrBacktrace 0+127388 :0 [ 42902c] 0+0 tango.core.tools.StackTrace.defaultAddrBacktrace 0+100120 :0 [ 42909d] 0+0 tango.core.tools.StackTrace.basicTracer 0+100233 :0 [ 4097ce] 0+0 xfbuild.Process.ProcessExecutionException._ctor 0+11 Process.d:32 [ 409ade] 0+0 xfbuild.Process.executeAndCheckFail 0+52 Process.d:138 [ 409d65] 0+0 xfbuild.Process.executeCompilerViaResponseFile 0+62 Process.d:180 [ 40e925] 0+0 xfbuild.Linker.link 0+5 Linker.d:70 [ 409fec] 0+0 xfbuild.BuildTask.BuildTask.link 0+13 BuildTask.d:80 [ 409f94] 0+0 xfbuild.BuildTask.BuildTask.execute 0+13 BuildTask.d:60 [ 402d56] 0+0 __Dmain 0+8 Main.d:326 [ 4149ad] 0+0 rt.compiler.dmd.rt.dmain2.main.runMain 0+16537 :0 [ 414903] 0+0 rt.compiler.dmd.rt.dmain2.main.tryExec 0+16367 :0 [ 4149eb] 0+0 rt.compiler.dmd.rt.dmain2.main.runAll 0+16599 :0 [ 414903] 0+0 rt.compiler.dmd.rt.dmain2.main.tryExec 0+16367 :0 [ 4148bb] 0+0 _main 0+16295 :0 [ 43294c] 0+0 _mainCRTStartup 0+139320 :0 [7c817074] 0+0 ??? 0+2084595552 :0 Geeeeeeeeeeeeeeez.. What am I supposed to use to compile the files? DSSS doesn't work, xfbuild seems broken most of the time, and I can't even use DMD with a simple directory structure like this: root\myproject.d root\myfolder\another.d myproject.d: module myproject; import myfolder.another; void main() { } another.d: module another; void fun(long n) { } C:\test>dmd -ofmain.exe myproject.d myfolder\another.d myproject.d(3): Error: module another from file myfolder\another.d conflicts with another module another from file myfolder\another.d I'll do a reinstall of DMD, maybe my system is broken or something. Nick Sabalausky Wrote:
Aug 21 2010
"Andrej Mitrovic" <andrej.mitrovich gmail.com> wrote in message news:i4pkg0$2a5h$1 digitalmars.com...Man, I have no idea what's going on. I was trying out building with xfbuild, and I keep getting different results on each attempted build:[snip]Geeeeeeeeeeeeeeez.. What am I supposed to use to compile the files? DSSS doesn't work, xfbuild seems broken most of the time,If passing the files directly to DMD doesn't work, then none of the front-ends to DMD are going to work either. Regarding xfbuild, yea, I've also noticed occasional "works differently on different runs" issues to. Kind of annoying, but anytime that happens, I clean out all the "obj"s and all of xfbuild's temp files, and do a fresh "xfbuild". Whatever happens on that run I consider "xfbuild's 'normal' behavior", and then anything that happens differently on the next run I just assume is an xfbuild bug.and I can't even use DMD with a simple directory structure like this: root\myproject.d root\myfolder\another.d myproject.d: module myproject; import myfolder.another; void main() { } another.d: module another; void fun(long n) { } C:\test>dmd -ofmain.exe myproject.d myfolder\another.d myproject.d(3): Error: module another from file myfolder\another.d conflicts with another module another from file myfolder\another.dI get the same result, but that's because that code is wrong: Your "myproject.d" is trying to import a module named "myfolder.another", but you're setting "another.d"'s module to be "another". They both need to match (D packages/modules are absolute, not relative). So either change them both to "myfolder.another" (or change them both to just "another", but that's less recomended since you'd be splitting a package across different directories). Then it'll work. Come to think of it...that might be your original problem... In your "acme\goodies\io.d", you're not setting the module name. I'd bet that DMD is assuming it to be just simply "io". And in main.d you're trying to import a "acme.goodies.io", so they don't match. It's a good idea to always include a "module" statement in every file for any multi-module project. Try adding "module acme.goodies.io;" to your "io.d". That should fix the problem. Doing that works for me on both dmd and rdmd. Or, if "io.d" is from some third party library, and you don't want to go changing it's internals, then do this: 1. In "main.d", change "import acme.goodies.io;" to "import io;" 2. Add "-Iacme\goodies" to the command-line. This tells DMD to consider "acme\goodies" to be one of the places (along with "." and "{path to phobos}") it sees as the "root" of the package hierarchy. Note that "-I" doesn't work with the RDMD currently in trunk, but it's fixed in my rdmdAlt.d: http://www.dsource.org/projects/semitwist/browser/trunk/rdmdAlt.d
Aug 21 2010
Doh! I swear I've read somewhere that a module declaration needs to have the same name as the *file name*. I didn't know I had to add the path as well. That makes the modules work now. In fact, I probably just read this one line in the docs: "The ModuleDeclaration sets the name of the module and what package it belongs to. *If absent, the module name is taken to be the same name (stripped of path and extension) of the source file name.*" But I didn't pay attention to the package stuff. Thanks Nick for the help, I was going slightly mad there for a second. :p Nick Sabalausky Wrote:snip
Aug 21 2010
Andrej Mitrovic wrote:Doh! I swear I've read somewhere that a module declaration needs to have the same name as the *file name*. I didn't know I had to add the path as well. That makes the modules work now. In fact, I probably just read this one line in the docs: "The ModuleDeclaration sets the name of the module and what package it belongs to. *If absent, the module name is taken to be the same name (stripped of path and extension) of the source file name.*" But I didn't pay attention to the package stuff. Thanks Nick for the help, I was going slightly mad there for a second. :p Nick Sabalausky Wrote:In Java yes. I D you can use the module declaration to "move" a module. e.g. filename: socket.d; module: alt.socket; to import you'd do "import alt.socket;" even if the file is in the same directory as the module using the file.snip
Aug 22 2010
That's very interesting. But wouldn't that cause problems if you're using package labels in some of those modules? AFAIK package gives access to all files in the current directory, so even if you "move" a module by changing the module declaration, the files in the current directory will still have access to it, right? If that's true, I'm thinking this could potentially cause problems (if you're moving modules by changing their declaration instead of physically moving them). Rory Mcguire Wrote:I D you can use the module declaration to "move" a module. e.g. filename: socket.d; module: alt.socket; to import you'd do "import alt.socket;" even if the file is in the same directory as the module using the file.
Aug 22 2010
Am 22.08.2010 16:39, schrieb Andrej Mitrovic:That's very interesting. But wouldn't that cause problems if you're using package labels in some of those modules? AFAIK package gives access to all files in the current directory, so even if you "move" a module by changing the module declaration, the files in the current directory will still have access to it, right? If that's true, I'm thinking this could potentially cause problems (if you're moving modules by changing their declaration instead of physically moving them).AFAIK the package attribute gives access to all modules which define to be in the same package, ie module declarations are eqivalent before the *last* dot. If it's not like that, then package should be called 'directory'.
Aug 22 2010
Well then I think I've found some new bugs in RDMD & xfbuild: Files: root/main.d root/socket.d main.d: module main; import alt.socket; void main() { foo(); } socket.d: module alt.socket; import std.stdio : writeln; void foo() { writeln("test"); } $ RDMD main.d main.d(2): Error: module socket is in file 'alt\socket.d' which cannot be read import path[0] = . import path[1] = C:\DMD\dmd2\windows\bin\..\..\src\phobos import path[2] = C:\DMD\dmd2\windows\bin\..\..\src\druntime\import $ xfbuild +o=main.exe main.d socket.d main.d(4): Error: module socket is in file 'alt\socket.d' which cannot be read import path[0] = C:\DMD\dmd2\windows\bin\..\..\src\phobos import path[1] = C:\DMD\dmd2\windows\bin\..\..\src\druntime\import Build failed: 'dmd xfbuild.a00e00.rsp' returned 1. DSSS fails as well. But DMD works: $ dmd main.d socket.d $ main.exetestRory Mcguire Wrote:In Java yes. I D you can use the module declaration to "move" a module. e.g. filename: socket.d; module: alt.socket; to import you'd do "import alt.socket;" even if the file is in the same directory as the module using the file.
Aug 22 2010
"Andrej Mitrovic" <andrej.mitrovich gmail.com> wrote in message news:i4rnl4$2396$1 digitalmars.com...Well then I think I've found some new bugs in RDMD & xfbuild: Files: root/main.d root/socket.d main.d: module main; import alt.socket; void main() { foo(); } socket.d: module alt.socket; import std.stdio : writeln; void foo() { writeln("test"); } $ RDMD main.d main.d(2): Error: module socket is in file 'alt\socket.d' which cannot be read import path[0] = . import path[1] = C:\DMD\dmd2\windows\bin\..\..\src\phobos import path[2] = C:\DMD\dmd2\windows\bin\..\..\src\druntime\import $ xfbuild +o=main.exe main.d socket.d main.d(4): Error: module socket is in file 'alt\socket.d' which cannot be read import path[0] = C:\DMD\dmd2\windows\bin\..\..\src\phobos import path[1] = C:\DMD\dmd2\windows\bin\..\..\src\druntime\import Build failed: 'dmd xfbuild.a00e00.rsp' returned 1. DSSS fails as well. But DMD works: $ dmd main.d socket.d $ main.exeHmm, yea that's not going to work with those tools. The whole point of those tools is that you can give them the file with main(), and then they'll figure out all the files that need to be passed to DMD. The only way they can realistically do that is by assuming package names are directory names and module names are file names. Since your "socket.d" is in a package named "alt", but *not* in a directory called "alt", those tools have absolutely no way to find "socket.d". If you just run DMD directly, then there's no need to programmatically find "socket.d", since you've already said where to find it. There's only two ways for those tools to find a file if it's in a directory named *differently* than the package name (or to find a file with a different name from the module name) without venturing into fuzzy guesswork-territory: 1. Search the whole filesystem (obviously ain't gonna happen, and really, this is fuzzy guesswork-territory anyway). 2. Have an option so you can tell it "assume that directory '{someDir}' is a possible location for package '{some.package}' " (Ie, kinda like "-I", but for packages other than just "package root"). This could be done, but frankly I see little, if any, use for that kind of flexibility other than obfuscation, so this is not likely to happen either. What you *can* do, is put "socket.d" in a directory named "alt", and then put directoy "alt" **anywhere** in the filesystem you want, and then pass in "-I{directoryThatContaininsAlt}". *That* should work (Although that *is* currently broken in RDMD, which gave me some trouble the other day, but I filed a patch for it here: http://d.puremagic.com/issues/show_bug.cgi?id=4672 )test
Aug 22 2010
I see. Well, honestly, I would never use this flexibility to begin with. I'm not seeing much benefits in having modules named in one way while keeping them disorganized and in completely different folders. That just causes confusion, for both the programmer and the build tools. Personally, I'll try to keep it simple here and name the modules and packages exactly like the directories they're in. Nick Sabalausky Wrote:
Aug 22 2010
Andrej Mitrovic:Well, honestly, I would never use this flexibility to begin with. I'm not seeing much benefits in having modules named in one way while keeping them disorganized and in completely different folders. That just causes confusion, for both the programmer and the build tools. Personally, I'll try to keep it simple here and name the modules and packages exactly like the directories they're in.You may vote this: http://d.puremagic.com/issues/show_bug.cgi?id=3972 But Walter wants that flexibility. And everyone has to pay a cost for that flexibility. Bye, bearophile
Aug 22 2010