soc progress 3

This week has been a little weaker. Lot of non-SoC stuff interfered, not the least exams. So far I have passed 2, 2 more to go (but these are the harder ones, and I spend fair amount of time preparing for those). Of course, bassoon takes its chunk as well and everything.

I have worked on documenting the index format (and code), some minor cleanup and interoperability improvements. I have some unrecorded changes making the lcs dependency optional as well, and I need to sort out the bytestring-mmap versus mmap thing (i.e. drop bytestring-mmap and use mmap everywhere, consistently). Anyway,

I have also tracked down an important performance regression in current hashed-storage (came with an innocent bug fix, and is about factor of 2 slowdown … oops). The bad patch is “Do not miss Stubs that are hidden in a SubTree when unfolding.” Go figure. I have also found another performance problem, in “darcs wh filename”, where darcs reads full pristine cache to check whether the filename given exists in the repository (this can be made much more efficient using hashed-storage). I’ll fix both in the following week, hopefully.

Last, Eric has helped me set up some wiki bits for the SoC project itself and for hashed storage.

Finally, the mandatory list of changes… The parenthesised changes are not on the public branches… the rollback is there mostly because it reverts to a more strict behaviour, although buggy darcs patches require a more benevolent one (there are supposedly move patches out there with non-existent “from” files). The Cabal 1.7.1 thing is really nice, but will have to wait till Cabal 1.8 is released… if you are interested, there’s a patch bundle for upstream darcs in darcs-users@ archive.

Hashed-storage:

And darcs-hs: