[darcs-users] soc progress 8

Thomas Hartman tphyahoo at gmail.com
Fri Jul 17 15:42:50 UTC 2009

> In darcs-hs, I have done some work on optimising `darcs show contents --match`,

Any chance you could add darcs show files --match functionality?


2009/7/17 Petr Rockai <me at mornfall.net>:
> Hi! The latest report follows...
> So I have managed to reduce the report lag by a few days, expect the next one
> on the (regular) Tuesday. Hopefully. Anyway, since the last report, a *lot* has
> happened.
> I got a new laptop a few weeks back (a Lenovo X200 -- I installed the base
> system on 30th of June), which enabled me to play around with more
> resource-hungry software than before (this beast has 2G of RAM and two 2.4GHz
> CPUs). The thing I tried was installing VirtualBox and a copy of Windows XP
> inside (I have an academic license, hopefully I am within the rules). This
> worked fairly well (the VM is pretty fast, actually) and enabled me to play
> with darcs on a win32 system. After installing the Haskell Platform (congrats
> to all the folks who worked on this: this piece of software is *awesome*) and
> MSYS, I got cabal install darcs-beta rolling. Turned out that darcs 2.3 didn't
> work very well on windows (well, about 30 tests failed, and darcs whatsnew was
> completely unusable). It took about two days time to kick all the parts into
> obedience: I patched all of mmap, hashed-storage and darcs. The net result is
> that darcs now passes its testsuite on win32 (this never quite worked
> before). In the meantime, I have already released new beta,
> [[darcs_2.3_beta_4]] which has all the win32 fixes in it. In addition, I made
> the hashed-storage testsuite pass on Windows, which should make it much easier
> in the future to track down problems.
> I have also made some coding progress on hashed-storage: first, the packed
> format prototyping is advancing, and before next report, I hope to have a
> workable prototype. Some code already went into hashed-storage repository, and
> there's already some testing coverage. Which brings me to the other thing, that
> is that I have improved test coverage of hashed-storage significantly (we now
> have 10 QC properties and 18 testcases that together cover of 77% toplevels,
> 66% alternatives and 83% expressions, as [reported by HPC] [1]).
> [1]: http://repos.mornfall.net/hashed-storage/dist/hpc/hpc_index.html
> In darcs-hs, I have done some work on optimising `darcs show contents --match`,
> as this seems to be an important operation for repository browsers (or at least
> for trac, but I imagine others may benefit from this). I have also figured that
> large part of the [tracdarcs] [2] inefficiency comes from calling `darcs show
> contents` on way old revisions: based on this, Lele has implemented an
> optimisation that instead looks at the *latest* revision that has a given
> version of the file, and for HEAD revisions omits --match altogether. I have
> deployed the optimised version on my own tracdarcs instance (for another
> project) and I can confirm that it is *much* more usable than before. I'll set
> up a test instance for GHC repository just for the kicks of it. (Maybe we could
> then get Hackage folks to install tracdarcs into their trac instances? Now that
> would be cool.)
> [2]: http://progetti.arstecnica.it/trac+darcs/
> The summary of hashed-storage changes for the week:
>  * Improve the modifyTree testcases slightly.
>  * A basic testcase for diffTrees.
>  * Minor tidying of the Test module.
>  * Add a testcase for modifyTree used for removal (with Nothing passed).
>  * Check plain tree contents in addition to pristine.
>  * Add some bad and ugly filenames to the test data.
>  * Add a check that mmaping empty file works.
>  * More prototyping in Packed.
>  * Also derive Ord for Hash.
>  * One more QC property for "reachable".
>  * Haddock the new utility functions.
>  * Add "reachable" to Utils (comes with a pair of QC properties).
>  * Add iterateM and (m)fixFrom to Utils (comes with QC and unit test respectively).
>  * Fix QC tests to start with prop\_, while unit tests start with check\_.
>  * Reorder test groups.
>  * Haskell *still* can't read my mind. Make Packed compile (and expose it).
>  * Haddock tweaks.
>  * Start out on Storage.Hashed.Packed (for a lack of better name).
>  * Avoid unused import warning in Utils.
>  * Import Bundled.Posix qualified in Test to avoid future name clashes.
>  * Refuse to overwrite files in TreeIO rename (darcs relies on this).
>  * Properly encode whitespace in darcsFormatDir.
>  * Improved fileExists check in testsuite.
>  * Make a separate test group for Bundled.Posix.
>  * Add a test for fileExists from Bundled.Posix.
>  * Avoid symbol name conflicts with darcs sha256 implementation.
>  * Make the testsuite pass on win32.
>  * A quick&dirty unit test for getFileStatus/getSymbolicLinkStatus.
>  * Do not try to use lstat on win32, it seems to be broken in GHC.
>  * Bump version to 0.3.6.
>  * Bump the index magic to HSI1 (incompatible format change).
>  * Require mmap >= 0.4.
>  * Get rid of last darcs use in the testsuite.
>  * Do not use darcs show manifest in test, we have complete file list.
>  * Avoid trailing slashes when stat-ing directories (fixes win32).
>  * Correctly store path to the toplevel directory as ".", not "/".
>  * Use readSegment to read hashed directory listings.
> and for darcs-hs:
>  * Optimize darcs show contents --match (avoid slurping pristine).
>  * Proper implementation for mDoesFileExist/mDoesDirectoryExist in Gorsvet.
>  * Provide readPending that also provides the "pending conflicts" check natively.
>  * Bump version to
>  * Bump the hashed-storage dependency to >= 0.3.6.
>  * Implement getFileStatus, and use it instead of getSymbolicLinkStatus on win32.
>  * Use mmapFilePS in gzReadFilePS to avoid lazy bytestring readFile.
>  * Use DARCS\_TESTING\_PREFS\_DIR in ShellHarness, since APPDATA override does not work.
>  * Recognize a special DARCS\_TESTING\_PREFS\_DIR envvar to override the global preference directory.
> _______________________________________________
> darcs-users mailing list
> darcs-users at darcs.net
> http://lists.osuosl.org/mailman/listinfo/darcs-users

More information about the darcs-users mailing list