[darcs-users] soc progress 10
me at mornfall.net
Wed Jul 29 20:04:32 UTC 2009
Wow, tenth progress report. That's a long time now. Still a day late, but
getting on track slowly (slower than expected I guess). Last week has seen the
release of darcs 2.3. Nonetheless, this release has seen partial integration of
hashed-storage work. Unfortunately, the release was also a major motivation
drain -- RMing darcs is a lot of (fairly hard) work.
On the unsafeDiff front, I'm at a standstill (there are still the same 2
instances that I reported about last week). I haven't progressed on the HPC
issue either, but that can wait and it's not directly relevant to SoC.
I have worked on profiling my last-week's check/repair port. Fortunately, the
implementation does not leak memory, and is slightly slower (some 20%) than the
old version. Most of the extra goes into filepath juggling (due to
representation differences between darcs and hashed-storage). See my
[darcs-users post]  for more details about this.
In other news, I have forked an 0.3 branch of hashed-storage and flipped the
switch to 0.4 in mainline. The first compatibility-breaker is the Hash type
refactor, which improved things a fair bit. Also, we now represent hashes
in-memory (and in the binary index) by 32-byte binary vectors (represented as
bytestrings) instead of using the 64-byte ascii-hex representation. Also, this
has removed a lot of Maybe wrapping, since the new Hash type comes with a
Other than that, I have taken a break after the release. I still have some
motivational issues, but I should improve my output rate over the next
week. The major todo on is file benchmarking (since Eric keeps nagging me about
this, and I still haven't figured how to do this properly) and actual
implementation of the (internal) pack format.
* Do not include _darcs/index in the testdata.
* Move floatPath into the AnchoredPath module.
* Do not forget to reset changesize in Monad, upon sync.
* Avoid calling expandPath when not needed, in Monad.
* Do not forget to update hashes before syncing a hashed tree in Monad.
* Refactor Hash datatypes extensively.
* Bump version to 0.4.0.
* We can now base64/url-encode (and decode) all Hash types.
* Add a generic sha256 function to the Hash module.
* Sprinkle a few haddocks around the Hash module.
* Add a NEWS file.
* Bundle NEWS in source distribution.
* Move the darcs-specific packing bits into Darcs.
* Use "plain" hashes in Packed (instead of the size-carrying darcs ones).
* The hatchery cleanup for compact is a removeFile (for now, anyway).
* Rename readOS to load.
* Haddock header for Packed.
* Fix collateral from using plain hashes in object storage. (Ow, ugly.)
And darcs-hs changes:
* Bump version to 2.3.0.
* Update autoconf release data to 2.3.0.
* Update NEWS.
* Ship the NEWS file in cabal tarballs as well.
* Port to hashed-storage 0.4 Hash changes.
More information about the darcs-users