rdmd

Adam D. Ruppe destructionator at gmail.com
Sun Jul 5 19:57:07 PDT 2009


On Sun, Jul 05, 2009 at 08:40:01PM -0500, Andrei Alexandrescu wrote:
> I suspect link.exe has trouble with that long path including the oddly 
> named \.rdmd\ in there. Could you please could paste the dmd invocation 
> command in your prompt and then progressively simplifying the path names 
> until you get something that works?

Yeah, that's the area. I think I got it.
link apparently doesn't like the dots in the output filename.

dmd  -of"C:\Users\me\AppData\Local\Temp\.rdmd\hello.d.ED85692521C0A87990BB1B70BEE0046C.exe" -od"C:\Users\me\AppData\Local\Temp\.rdmd\rdmd-hello.d-ED85692521C0A87990BB1B70BEE0046C" "hello.d"

This fails with the weird error.

dmd  -of"C:\Users\me\AppData\Local\Temp\.rdmd\hello-d-ED85692521C0A87990BB1B70BEE0046C.exe" -od"C:\Users\me\AppData\Local\Temp\.rdmd\rdmd-hello.d-ED85692521C0A87990BB1B70BEE0046C" "hello.d"

This works!

The dot in the .rdmd is ok, but not the ones in the actual filename.


Simple fix for this: rdmd.d line 160 and 161 can be changed to:

            exe = join(myOwnTmpDir, std.string.replace(root, ".", "-"))
                ~ '-' ~ hash(root, compilerFlags);


And then it works.

Let me try it with a slightly less trivial program. Uh oh. Actually, no...
that's a bug in my program. But it didn't give an error message.

In getDependencies(), if depsExitCode !=0, it should probably print some
kind of message explaining why it is exiting. (In my case, it was a typo
in the program causing a compile error.) The last few lines of dmd's
output would probably be a good choice.


But then, I fix my stupid bug, and it works!


Yay, I think we did it.



> I think that would be absolutely great, but only if it's absolutely no 
> hassle for you to set up. 

None at all. I'll email you tomorrow night with the info.

> By the way, does Windows Server 2003 offer 
> some command-line access (a la ssh) in addition to rdesktop (which is 
> indeed very nice)? Command-line access would allow me to automate builds 
> and tests.

Yes. Windows has a telnet server built in that I can turn on 
and there is an OpenSSH port I can set up - I did this on my Vista
computer and it works pretty well. It is kinda weird on the vista box
actually, since I also installed bash and other gnu apps on it.
It is a bit buggy, but feels a lot like unix, while still running Windows.

Take a look at this copy/pasta to get the idea:

==========

me at arsd:~$ ssh 192.168.1.5
me at 192.168.1.5's password: 
Welcome to the SUA utilities.

DISPLAY=vista-laptop:10.0
me at vista-laptop:~$ cmd
Microsoft Windows [Version 6.0.6001]
Copyright (c) 2006 Microsoft Corporation.  All rights reserved.

C:\Users\me>dir \dm\src
dir \dm\src
 Volume in drive C is WinVista
 Volume Serial Number is F279-BA30

 Directory of C:\dm\src

06/25/2009  04:59 PM    <DIR>          .
06/25/2009  04:59 PM    <DIR>          ..
06/25/2009  05:38 PM    <DIR>          dmd
07/05/2009  07:05 PM    <DIR>          druntime
07/05/2009  07:06 PM    <DIR>          phobos
               0 File(s)              0 bytes
               5 Dir(s)  31,099,404,288 bytes free

C:\Users\me>


===========


Pretty fun stuff. This same functionality will basically work on 2k3 too.



-- 
Adam D. Ruppe
http://arsdnet.net



More information about the Digitalmars-d mailing list