Version control systems

Simon Marlow marlowsd at gmail.com
Thu Aug 14 03:43:14 EDT 2008


Duncan Coutts wrote:

> Turns out that the reason for slow darcs whatsnew is ghc bug #2093
> 
> http://hackage.haskell.org/trac/ghc/ticket/2093
> 
> because getSymbolicLinkStatus is broken on 32bit systems in 6.8.2 it
> means that the 'stat' optimisation does not work so darcs has to read
> the actual contents of many files. Obviously that's very slow,
> especially over nfs. That explains why it worked for me in 0.2 seconds
> but for you took several seconds user time and (even more real time due
> to nfs).

Yes, I was aware of the #2093 problem (someone else pointed it out to me 
earlier), but it's not the cause of the slow whatsnew I'm seeing: my darcs 
is compiled with 6.8.3.

~/darcs/ghc-testing/testsuite-hashed > darcs +RTS --info
  [("GHC RTS", "Yes")
  ,("GHC version", "6.8.3")
  ,("RTS way", "rts_thr")
  ,("Host platform", "x86_64-unknown-linux")
  ,("Build platform", "x86_64-unknown-linux")
  ,("Target platform", "x86_64-unknown-linux")
  ,("Compiler unregisterised", "NO")
  ,("Tables next to code", "YES")
  ]
~/darcs/ghc-testing/testsuite-hashed > time darcs wh
No changes!
[2]    15793 exit 1     darcs wh
21.35s real   9.56s user   4.28s system   64% darcs wh
~/darcs/ghc-testing/testsuite-hashed > darcs --version
2.0.1rc2 (2.0.1rc2 (+ -1 patch))
~/darcs/ghc-testing/testsuite-hashed > darcs query repo
           Type: darcs
         Format: hashed
           Root: /home/simonmar/darcs-all/work/ghc-testing/testsuite-hashed
       Pristine: HashedPristine
          Cache: 
thisrepo:/home/simonmar/darcs-all/work/ghc-testing/testsuite-hashed
boringfile Pref: .darcs-boring
Default Remote: /home/simonmar/darcs-all/work/ghc-testing/testsuite
    Num Patches: 2834

It's better on the darcs-2 version of the repo:

~/darcs/ghc-testing/testsuite-hashed2 > darcs query repo
           Type: darcs
         Format: hashed, darcs-2
           Root: /home/simonmar/darcs-all/work/ghc-testing/testsuite-hashed2
       Pristine: HashedPristine
          Cache: 
thisrepo:/home/simonmar/darcs-all/work/ghc-testing/testsuite-hashed2
    Num Patches: 2834
~/darcs/ghc-testing/testsuite-hashed2 > time darcs wh
No changes!
[2]    15824 exit 1     darcs wh
3.69s real   1.08s user   0.53s system   43% darcs wh

Better, but still a factor of ~4 slower than on the darcs-1 repo.

> If you were using http://darcs.haskell.org/ghc-hashedrepo/ then there's
> a further explanation. According to the darcs devs that repo is:
>         "in some weird intermediate (not final) hashed format that
>         doesn't keep (original) filesizes in filenames. So in effect,
>         it's running like with --ignore-times still"

Nope, I'm not using that repo, these were ones I created freshly yesterday.

I will try building a fresh darcs to see if that helps.

Cheers,
	Simon


More information about the Glasgow-haskell-users mailing list