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.
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.
- Do not build the unit tests by default (avoids dependency on new process lib).
- Bump version to 0.3.1.
- Make the createIndex Stub error more specific.
- Add a makeName utility function to AnchoredPath.
- Make rename of a non-existent file a non-fatal error (in TreeIO).
- Check that unfolded Tree does not have any Stubs in it.
- Really make the process dependency optional.
- Bump required cabal version to 1.6 (required for source-repository).
- Fix typo in description in the cabal file.
- Bump version to 0.3.2.
- Tighten the base dependency since hackage complains otherwise.
- Do not miss Stubs that are hidden in a SubTree when unfolding.
- (rollback: Make rename of a non-existent file a non-fatal error (in TreeIO).)
- Improve Index documentation.
- Make peekItem safe even when dirlen is Nothing.
- Un-hardcode _darcs/index from the Index module.
- Bump version to 0.3.3.
- (Link darcs executable and unit tests against the darcs library (Cabal >= 1.7.1).)
- (Move non-darcslib modules out of src, so we can build the unit tests.)
- We need to unfold the pristine Tree before rebuilding the index.
- Fix index invalidation in the move command.
- Bump the hashed-storage dependency to >= 0.3.2.