[darcs-users] making the darcs unit tests run on cygwin's bash.exe

zooko zooko at zooko.com
Mon Sep 8 13:31:39 UTC 2008


On Sep 8, 2008, at 6:49 AM, Eric Kow wrote:

> Hi Zooko,
>
> Any chance you would be able to modify the WinXP build slave to use  
> MSYS
> for testing instead of Cygwin?

No, sorry.  That machine is serving several other purposes and the  
software installed on it can't be changed for this purpose.  Also,  
that path risks taking a lot of time to port the darcs unit tests to  
MSYS.


>   We could start supporting Cygwin, but
> perhaps it would be a better use of manpower to postpone such a  
> decision
> until 2.0.3 is released.

Please be careful when talking about cygwin to be precise about what  
you mean.  "Supporting cygwin" could mean:

a.  Making the darcs executable work well when invoked from cygwin  
bash.  It already does if you use my cygwin wrapper script for darcs,  
which is included in the darcs repository and which is built into my  
"for cygwin" package which you download from the darcs wiki.

b.  Making the darcs unit tests run with cygwin bash, which is the  
current issue.

c.  Making darcs be compiled as a native cygwin app, which nobody is  
talking about and would require a cygwin port of GHC.

d.  other?

I think cygwin is confusing to people because it is sort of like an  
operating system and sort of not, so it is unfortunately common for  
people to talk about it in vague terms.

Anyway, the current problem with the darcs tests, if I understand  
correctly, is that the darcs tests want to use a bash shell with a  
builtin named "pwd" which returns the current directory in a form  
that the local darcs executable can understand.  The local darcs  
executable, on Windows, understands only Windows-style paths like "C: 
\Documents and Settings\blah\blahblah".  It is possible that there is  
some port of bash out there -- perhaps MSYS, I don't know -- which  
emits paths of this kind as the stdout from its "pwd" builtin.  Also,  
we could do this:

function pwd_that_darcs_understands { if uname | grep -qi cygwin ;  
then cygpath -w `pwd` ; else pwd ; fi }

I just tested this in cygwin's bash.exe and in Mac OS X's bash shell,  
and it did what was expected.

Regards,

Zooko
---
http://allmydata.org -- Tahoe, the Least-Authority Filesystem
http://allmydata.com -- back up all your files for $5/month



More information about the darcs-users mailing list