[darcs-users] soc progress 9

Petr Rockai me at mornfall.net
Thu Jul 23 09:52:03 UTC 2009

Hi, the latest report follows:

Uh, I have slipped by two days again -- well, almost. The problem is that in
the last two days, I have been somewhat busy with e-mail at darcs-users at ... --
a sudden peak of traffic hit the list. Basically, two threads created a lot of
traffic, the [David's darcs] [1] one started by me, and the [cheap in-repo
branching] [2] one. And since this was lot of writing on my part, I didn't
quite feel like writing also the report. But I'm still a day closer to the
original Tuesday (and it's still not even noon here, so that's more like a day
and a half!). I'll try again to get on track next week.

[1]: http://lists.osuosl.org/pipermail/darcs-users/2009-July/020556.html
[2]: http://lists.osuosl.org/pipermail/darcs-users/2009-July/020565.html

I have worked some more on the packed format bits in hashed-storage, and I have
worked on getting rid of "unsafeDiff" in darcs-hs. The latter is down to 2
uses, one in "darcs replace" and the other in Darcs.Resolution. The replace one
should be relatively easy, actually. The resolution one hopefully too, but we
have no testsuite coverage of the external merge, which would be better added
before I break it... For the changes already done, I have ported over
check/repair (I still need to run this through a heap profiler, since I suspect
I introduced some space leaks) and "darcs remove" which is now also neater and
more readable (at least I think it is). And since we never use unsafeDiff to
compare working against pristine anymore, I have nuked a bunch of code that
deals with timestamps.

I have also done a little work on HPC reports for darcs itself: I put a current
[HPC report online] [3], and there's some automation in place, so it should get
updated whenever I push into the repository (it is supposed to be a 1:1 mirror
of http://darcs.net). There are still some issues, like the TIXDIR taking over
a gigabyte of space (I know how to fix this, but haven't had the time yet -- it
involves a relatively easy support in ShellHarness).

[3]: http://repos.mornfall.net/darcs/mainline/dist/hpc/hpc_index.html

Also on the mainline darcs (and this is not strictly SoC work, but worth
reporting anyway), we have removed autoconf support. Finally. There are still
some ongoing issues, like we need the user manual to be built by Cabal (we kept
some bits of the GNUmakefile to address this for now) and some other features
are currently not available with cabal (see also [this thread] [4]).

[4]: http://lists.osuosl.org/pipermail/darcs-users/2009-July/020508.html

Hashed-storage changes:

  * Clean up the interface implementing darcs hashed trees in object storage.
  * In hatch, discard objects that are already in the storage.
  * Improve haddock.
  * Add a testcase for readOS.
  * Add a small testcase for diffTree of identical trees.
  * Add a testcase for writePlainTree.
  * Add a simple QC property for restrict.
  * Add another QC property for restrict.
  * Expand the expandPath testcase to cover more possibilities.
  * Also cover the items part of the expandPath-produced Tree.
  * Obliterate embarassingly useless iterateM and fix mfixFrom (IO is too strict...).
  * Implement rudimentary darcsPristineRefs (for chasing references).
  * Test live object collection for darcs pristine trees.
  * Add a function to postorder-traverse and update a Tree.
  * More utilities for darcs hashed trees embedded in an object storage.
  * Implement post-compaction cleanup for loose hatcheries.
  * More complete OS field initialisation (although dummy so far).
  * Use readOS after create to populate the in-memory structure.
  * A rudimentary implementation of createPack (which in turn enables compaction).
  * Do not fail when a nonexistent file is marked as changed in Monad.
  * Do not remove associated Tree hashes in filter.
  * Minor formatting fix.
  * Avoid removing an in-use file on win32.

And darcs-hs changes:

  * Port the replay (check/repair) functionality to hashed-storage.
  * Remove the support for writing out new checkpoints.
  * Remove the --checkpoint option from the UI.
  * Remove now-unused checkPristineAgainstSlurpy.
  * Add support for skipping tests (exit 200).
  * Avoid removing in-use files on win32.
  * Re-implement make_remove_patch in remove command, replacing Slurps with Trees.
  * Obliterate all instances of sync_repo and friends, since they are useless now.
  * Obliterate timestamp manipulation in HashedIO.

More information about the darcs-users mailing list