[darcs-devel] Windows 7 problems, how can I help.

Ganesh Sittampalam ganesh at earth.li
Wed Apr 1 11:31:17 UTC 2015


A couple of quick notes:

Your specific build problem is because darcs defaults to linking against
libcurl which is a pain to install on Windows. If you do cabal install
-f-curl darcs it should get past that error.

I do actually work on Windows myself (was Windows 7, is now Windows
8.1), though not exclusively, so I try to keep things working.

I think you're exactly right about the root cause of many windows
problems being the filesystem semantics, though in theory darcs (and
indeed cabal) are engineered to avoid the worst problems.

One common cause of errors I've encountered myself is virus checkers or
other on-write scanning meaning that when darcs writes out a file and
immediately tries to re-read it, it can fail. I'm not sure if that's
what's going on here, but it might be something to check on if you can
temporarily disable such things.


On 31/03/2015 18:08, kari at hoijarvi.org wrote:
> Hello.
> 
> A long time silence from me, but now I have a problem I need to solve, and
> since I am probably the only windows darcs user in the world, I'll try to
> pitch in a little.
> 
> Five years ago I submitted http://bugs.darcs.net/issue1831 "MoveFileEx:
> permission denied" bug. Darcs 1.0.9 did not have it, it worked across
> windows network, darcs 2.x does not. During the years when I used my win
> XP 64 bit workstation, I just made a few scripts that copied patches over
> the net and then applied them locally. That worked for me.
> 
> My biggest repository is 100 MB and 10000 patches, still working fine. And
> I used TortoiseDarcs all the time, so I've been a happy camper with darcs.
> 
> But recently I had to change jobs, and use TFS. I can't believe once upon
> a time I considered such systems fine. Recently I had to do a fairly
> complicated porting job, 180 projects to a new system with restructured
> project tree, and I tried first to use TFS branching. The experience
> convinced me that Linus with his subversion criticism was quite right, the
> branch merge is brain damaged beyond repair.
> 
> So I installed darcs, and worked my usual way, doing small commits and
> amending heavily to keep the history clean. But now my new computer runs
> Windows 7, and the problem has surfaced to local level. Permission denied
> happens all the time, which makes working with darcs frustrating.
> 
> I have a hypothesis for this reason, and I'm afraid it might be a haskell
> library problem, not restricted to darcs.
> 
> In unix, you can rename or delete an open file. In windows you can't. This
> is probably the root of the problem.
> 
> So I decided to check it out. I did "cabal install cabal-install" and the
> first try ended with exception "folder not empty". I went and checked, the
> folder was empty. This is typical order problem with windows, delete file
> and folder in wrong order. The second try worked. It's just like how darcs
> works with windows 7. Something is locking a file, and so code that runs
> fine under unix fails in windows.
> 
> So I decided to debug the problem myself. I tried to compile the latest
> darcs with "cabal install" but it won't compile.
> 
> Since this is the first time I'm trying to actually compile haskell, I'm a
> little lost. Here is the compilation log. Any advice from experienced
> Haskell users is welcome.
> 
> Thanks, Kari
> 
> Building darcs-2.11.0...
> Preprocessing library darcs-2.11.0...
> c:/program files/haskell
> platform/2014.2.0.0/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.6.3/../../../../x86_64-w64-mingw32/bin/ld.exe:
> cannot find -lcurl
> collect2: ld returned 1 exit status
> linking dist\build\Bundled\Posix_hsc_make.o failed (exit code 1)
> command was: C:\Program Files\Haskell
> Platform\2014.2.0.0\mingw\bin\gcc.exe dist\build\Bundled\Posix_hsc_make.o
> dist\build\Bundled\Posix_hsc_utils.o -o
> dist\build\Bundled\Posix_hsc_make.exe -lcurl
> -LC:\Users\hoijarvik\AppData\Roaming\cabal\x86_64-windows-ghc-7.8.3\zip-archive-0.2.3.7
> -LC:\Program Files\Haskell
> Platform\2014.2.0.0\lib\extralibs\vector-0.10.9.1
> -LC:\Users\hoijarvik\AppData\Roaming\cabal\x86_64-windows-ghc-7.8.3\utf8-string-1
> -LC:\Users\hoijarvik\AppData\Roaming\cabal\x86_64-windows-ghc-7.8.3\unix-compat-0.4.1.4
> -lmsvcrt
> -LC:\Users\hoijarvik\AppData\Roaming\cabal\x86_64-windows-ghc-7.8.3\transformers-compat-0.4.0.4
> -LC:\Users\hoijarvik\AppData\Roaming\cabal\x86_64-windows-ghc-7.8.3\tar-0.4.1.0
> -LC:\Users\hoijarvik\AppData\Roaming\cabal\x86_64-windows-ghc-7.8.3\regex-compat-tdfa-0.95.1.4
> -LC:\Users\hoijarvik\AppData\Roaming\cabal\x86_64-windows-ghc-7.8.3\regex-tdfa-1.2.0
> -LC:\Program Files\Haskell
> Platform\2014.2.0.0\lib\extralibs\regex-base-0.93.2
> -LC:\Users\hoijarvik\AppData\Roaming\cabal\x86_64-windows-ghc-7.8.3\regex-applicative-0.3.1
> -LC:\Program Files\Haskell
> Platform\2014.2.0.0\lib\extralibs\random-1.0.1.1 -LC:\Program
> Files\Haskell Platform\2014.2.0.0\lib\process-1.2.0.0 -lkernel32
> -LC:\Program Files\Haskell
> Platform\2014.2.0.0\lib\extralibs\primitive-0.5.2.1 -LC:\Program
> Files\Haskell Platform\2014.2.0.0\lib\pretty-1.1.1.1
> -LC:\Users\hoijarvik\AppData\Roaming\cabal\x86_64-windows-ghc-7.8.3\mmap-0.5.9
> -LC:\Program Files\Haskell Platform\2014.2.0.0\lib\extralibs\html-1.0.1.2
> -LC:\Program Files\Haskell Platform\2014.2.0.0\lib\haskeline-0.7.1.2
> -LC:\Program Files\Haskell Platform\2014.2.0.0\lib\directory-1.2.1.0
> -LC:\Program Files\Haskell Platform\2014.2.0.0\lib\time-1.4.2 -LC:\Program
> Files\Haskell Platform\2014.2.0.0\lib\filepath-1.3.0.2
> -LC:\Users\hoijarvik\AppData\Roaming\cabal\x86_64-windows-ghc-7.8.3\digest-0.0.1.2
> -LC:\Program Files\Haskell Platform\2014.2.0.0\lib\extralibs\zlib-0.5.4.1
> -LC:\Users\hoijarvik\AppData\Roaming\cabal\x86_64-windows-ghc-7.8.3\dataenc-0.14.0.7
> -LC:\Users\hoijarvik\AppData\Roaming\cabal\x86_64-windows-ghc-7.8.3\data-ordlist-0.4.7.0
> -LC:\Users\hoijarvik\AppData\Roaming\cabal\x86_64-windows-ghc-7.8.3\cryptohash-0.11.6
> -LC:\Users\hoijarvik\AppData\Roaming\cabal\x86_64-windows-ghc-7.8.3\byteable-0.1.1
> -LC:\Program Files\Haskell Platform\2014.2.0.0\lib\binary-0.7.1.0
> -LC:\Users\hoijarvik\AppData\Roaming\cabal\x86_64-windows-ghc-7.8.3\base16-bytestring-0.1.1.6
> -LC:\Users\hoijarvik\AppData\Roaming\cabal\x86_64-windows-ghc-7.8.3\attoparsec-0.11.3.4
> -LC:\Users\hoijarvik\AppData\Roaming\cabal\x86_64-windows-ghc-7.8.3\scientific-0.3.3.8
> -LC:\Program Files\Haskell
> Platform\2014.2.0.0\lib\extralibs\hashable-1.2.2.0 -LC:\Program
> Files\Haskell Platform\2014.2.0.0\lib\containers-0.5.5.1 -LC:\Program
> Files\Haskell Platform\2014.2.0.0\lib\extralibs\HTTP-4000.2.10
> -LC:\Program Files\Haskell Platform\2014.2.0.0\lib\old-time-1.1.0.2
> -LC:\Program Files\Haskell Platform\2014.2.0.0\lib\old-locale-1.0.0.6
> -LC:\Program Files\Haskell
> Platform\2014.2.0.0\lib\extralibs\network-2.4.2.3 -lws2_32 -LC:\Program
> Files\Haskell Platform\2014.2.0.0\lib\extralibs\parsec-3.1.5 -LC:\Program
> Files\Haskell Platform\2014.2.0.0\lib\extralibs\text-1.1.0.0 -LC:\Program
> Files\Haskell Platform\2014.2.0.0\lib\extralibs\mtl-2.1.3.1 -LC:\Program
> Files\Haskell Platform\2014.2.0.0\lib\transformers-0.3.0.0 -LC:\Program
> Files\Haskell Platform\2014.2.0.0\lib\Win32-2.3.0.2 -luser32 -lgdi32
> -lwinmm -ladvapi32 -lshell32 -lshfolder -LC:\Program Files\Haskell
> Platform\2014.2.0.0\lib\bytestring-0.10.4.0 -LC:\Program Files\Haskell
> Platform\2014.2.0.0\lib\deepseq-1.3.0.2 -LC:\Program Files\Haskell
> Platform\2014.2.0.0\lib\array-0.5.0.0 -LC:\Program Files\Haskell
> Platform\2014.2.0.0\lib\base-4.7.0.1 -lwsock32 -luser32 -lshell32
> -LC:\Program Files\Haskell Platform\2014.2.0.0\lib\integer-gmp-0.5.1.0
> -LC:\Program Files\Haskell Platform\2014.2.0.0\lib\ghc-prim-0.3.1.0
> -LC:\Program Files\Haskell Platform\2014.2.0.0\lib/rts-1.0 -lm -lwsock32
> -lgdi32 -lwinmm
> 
> 
> _______________________________________________
> darcs-devel mailing list
> darcs-devel at darcs.net
> http://lists.osuosl.org/mailman/listinfo/darcs-devel
> 



More information about the darcs-devel mailing list