
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