On Sun, Feb 22, 2009 at 11:03:11 +0100, Petr Rockai wrote: > which reminds me, could you also give me the context of your hashed-storage > copy that you used to build gorsvet?
Here's that context. I'm not sure I can make my repository public yet, but I could try and see about getting you a copy -- Eric Kow <http://www.nltg.brighton.ac.uk/home/Eric.Kow> PGP Key ID: 08AC04F9
Context: [Use extensible-exceptions for sake of GHC 6.8. Petr Rockai <[email protected]>**20090217143930 Ignore-this: bef6a0b683875407ef5f738320635a4e ] [More efficient readIndex implementation. Petr Rockai <[email protected]>**20090217141612 Ignore-this: 3b2db157b53de167069548533f660627 We now use Foreign.Storable and pointer manipulation instead of Data.Binary. This is faster, although it currently breaks big-endian machines. Not extremely hard to fix, just need an xlate-ish call. ] [Yet another index reimplementation. Petr Rockai <[email protected]>**20090217130002 Ignore-this: b0f6853c7a4675aca4b626c0136a02dc ] [Optionally keep size in Hash, so it can accomodate darcs-style hashes. Petr Rockai <[email protected]>**20090217125740 Ignore-this: 1d61f8024d1f46f753b38eeace67a5df ] [Use ghc 6.10 exceptions. Petr Rockai <[email protected]>**20090217125707 Ignore-this: f02b973b9b45503c6d1a282b29edba95 ] [Use record syntax in Tree definition. Petr Rockai <[email protected]>**20090214203853 Ignore-this: c502d9a33a91efb2db5bec43b064be56 ] [Bump version to 0.2. Petr Rockai <[email protected]>**20090213155746 Ignore-this: d049a6cf5f73b3060c3bc385a9030edc ] [Remove darcs-diff, a more powerful alternative is moving to a separate package. Petr Rockai <[email protected]>**20090213152739 Ignore-this: 3e12def489bf2f88eaaca9582296af2 ] [Fix up hashed-storage.cabal. Petr Rockai <[email protected]>**20090213152710 Ignore-this: 80cb3f7d70057f7a7d72eea05fee249a ] [Initial version of Storage.Hashed.Monad. Petr Rockai <[email protected]>**20090213152656 Ignore-this: dd4be5199b5629daa94128a53b09380d ] [Make modifyTree work correctly over stubbed Tree objects. Petr Rockai <[email protected]>**20090213152626 Ignore-this: ffb1bc79bbbba9482fc987b38a8eda3a ] [Morph zipDiffFiles into diffTrees again (gives a pair of Tree objects). Petr Rockai <[email protected]>**20090213152534 Ignore-this: dc9ea25c9374f91d005178a389963d90 ] [Add catPaths utility function to AnchoredPath. Petr Rockai <[email protected]>**20090213152445 Ignore-this: 341fafd72639aece0c6ba3bfbadf690e ] [Implement subtree diffs in darcs-diff. Petr Rockai <[email protected]>**20090212133706 Ignore-this: bfa1cb57c0b2e24508d58ca36b976321 ] [Wrote a test for modifyTree. Petr Rockai <[email protected]>**20090212133659 Ignore-this: 9d70daeb14b0783e412c6f0da701ef43 ] [Minor test code refactor. Petr Rockai <[email protected]>**20090212133627 Ignore-this: d34381b6b9751ee1a576f194e4ff635f ] [A little inlining. No measurable impact either... Petr Rockai <[email protected]>**20090212133546 Ignore-this: 53b56d46ffc6e35556ed07f0b679271c ] [Strictify the Tree structures a little (no measurable impact). Petr Rockai <[email protected]>**20090212133524 Ignore-this: 9f20dcbe3bbb73a0d4872c13d073009f ] [Fix zipDiffFiles to work with hash-less Trees correctly. Petr Rockai <[email protected]>**20090212133501 Ignore-this: b5ac5df4741a474e8935d56612454169 ] [Implement modifyTree (replaces an item at given path). Petr Rockai <[email protected]>**20090212133344 Ignore-this: 48bf21f241f45d0b003abfb9fe984d45 ] [Use little endian formatting for binary index. Saves few cycles. Petr Rockai <[email protected]>**20090212133251 Ignore-this: 4dfd2b3e4b5564393ba94187c3a9e947 ] [Some trivial AnchoredPath utilities. Petr Rockai <[email protected]>**20090212133224 Ignore-this: 5556fc71f10fead96c288f200d142632 ] [Minor performance refactor (impact: negligible). Petr Rockai <[email protected]>**20090212133115 Ignore-this: 7d24dd40f7e25d598e5df787ef70212f ] [Optimise the index layout a little bit. Petr Rockai <[email protected]>**20090210103152 Ignore-this: 6b3ebf8357277ac9b30e18c3f02f8383 ] [Implement semi-automatic index maintenance. Petr Rockai <[email protected]>**20090210102808 Ignore-this: 69ddb8a5df70370f8afdd221204dcdbc ] [Test that reading index contents works. Petr Rockai <[email protected]>**20090209232926 Ignore-this: dc4282379400174e833d7b3d56552e5f ] [Update index whenever it is out of date. Petr Rockai <[email protected]>**20090209232843 Ignore-this: 8351e22988a738f9bba169459c350e14 ] [Rewrite tree diff again (less elegant but more correct). Petr Rockai <[email protected]>**20090209232747 Ignore-this: 6bdb62915e25ee2727cbb8004e31366a ] [Reduce GHC warnings. Petr Rockai <[email protected]>**20090209211447 Ignore-this: fb3239b6ebc697d7a361894f702fc0b1 ] [Reimplement the Tree diffing algorithm more elegantly. Petr Rockai <[email protected]>**20090209210038 Ignore-this: e11abeeafb6fdc7ccd79d56178bb3b2f ] [Add emptyTree, itemHash and (restore) zipFiles to Tree. Petr Rockai <[email protected]>**20090209205958 Ignore-this: 686e51f5eafd3968965cee0cd11b2cdb ] [Minor documentation updates. Petr Rockai <[email protected]>**20090209205910 Ignore-this: afc70a23371b8713f4c7e0e87dc2fd5f ] [Simplify the Tree types a little. Petr Rockai <[email protected]>**20090208124413 Ignore-this: 25ab869517bea68faa5e305e8811c191 ] [Put down some initial unit tests. Petr Rockai <[email protected]>**20090208093155 Ignore-this: d6c76bd7ff752d8cdb4c54009145bee0 ] [Less debug noise. Petr Rockai <[email protected]>**20090208093142 Ignore-this: 206ceed353886f2c3baf48188a977379 ] [Get rid of unix-compat as well. The thin Bundled.Posix covers all bases. Petr Rockai <[email protected]>**20090131223847 Ignore-this: b1bdd830e3262bb5dcd5b41c710c14d9 ] [Drop direct unix dependency again. Petr Rockai <[email protected]>**20090131223509 Ignore-this: 85936dd030969bd113824800e5f0c0e7 ] [Use a less massive hack to get around that unsafePerformIO. Petr Rockai <[email protected]>**20090131223225 Ignore-this: 380d2a6729442ebc0fd94c4d0d5fa6ae I have lifted src/win32/System/Posix/Files.hsc from darcs, since this is a thin wrapper around System.Posix.Internal. I understand this is not the best way around, but it is at least semi-portable and maintains the factor 2.5 speedup of the previous hack (compared to official "unix" library). ] [Fix up compile failures. Petr Rockai <[email protected]>**20090131214005 Ignore-this: 5e3b325865b74dd7a9f52f69cb05fb6d ] [Minor pragma wibbling in Index.hs. Petr Rockai <[email protected]>**20090131213859 Ignore-this: 89bb010b347414006b54a3da966480a4 ] [Documentation for the Diff module. Petr Rockai <[email protected]>**20090131165356 Ignore-this: 90a14b549a10c2aa21ecbb67da594256 ] [Update haddock. Petr Rockai <[email protected]>**20090131162734 Ignore-this: db1c2d8303a0d7aad24e9a0f27ace18a ] [Get rid of the ugly hashTree implementation for now. Petr Rockai <[email protected]>**20090131162632 Ignore-this: cb913aed83da3655e81039e689dc4267 ] [A massive hack to circumvent unsafePerformIO roundtrip per stat. Petr Rockai <[email protected]>**20090130212040 Ignore-this: df923f111a7b82bce53917972f62776e ] [Somewhat hacky lazy unfolding in diffTrees. Petr Rockai <[email protected]>**20090130211850 Ignore-this: 170a2d4673aa86e69857e735a2b9a0f ] [Keep hashes with TreeStubs so we can unfold more lazily. Petr Rockai <[email protected]>**20090130211501 Ignore-this: eb0b1f79a7ed585898636ff96a58cc68 ] [Cache file sizes in indexed trees, produce darcs-compatible hashes. Petr Rockai <[email protected]>**20090130173101 Ignore-this: dba749d61e997eef0faa1fe2612fa4b2 ] [Add a dirHash function, producing darcs-compatible tree hashes. Petr Rockai <[email protected]>**20090130173027 Ignore-this: 72048ecef2235f24ab7a11085ffb3810 ] [A Tree-hash based diffTrees implementation. Petr Rockai <[email protected]>**20090130114518 Ignore-this: 94226a7b385e981611019c6351530687 ] [First stab at hashes for Trees. Somewhat icky. Petr Rockai <[email protected]>**20090130113348 Ignore-this: a568097c07d13060f012ddc01ddf84f8 ] [Move sha256 helper into Utils. Petr Rockai <[email protected]>**20090130113311 Ignore-this: 12436d98b3ef7bca05bc3792d0f617d8 ] [Normalise hashes instead of comparing them funkily. Petr Rockai <[email protected]>**20090130112638 Ignore-this: 43b91ecd8094faf311bd207577b0ef4f ] [A couple huge-change-collateral fixes. Petr Rockai <[email protected]>**20090129120558 Ignore-this: acd180c2b0eba653ffaec251ed6b4c83 ] [Lots of changes for improved efficiency and cleaner code. Petr Rockai <[email protected]>**20090129115658 Ignore-this: e30ffe0e7cdd64c42daf635a07ac605d - We now avoid constructing search trees just to deconstruct them into lists. - Indexed tree is standalone now, relying on the actual index for listing files, instead of piggybacking on an existing Tree (much simpler *and* more efficient). - Use Data.Map instead of bytestring-trie (although this might be redundant now that we don't do the list -> search-tree -> list roundtrip). However Map does have a nicer interface. ] [Remove some bits from Hashed.hs that went into Utils. Petr Rockai <[email protected]>**20090129115458 Ignore-this: 567e338a987e5d917b1e769d04321c6f ] [Minor YAGNI cleanup in Hashed.hs. Petr Rockai <[email protected]>**20090129115215 Ignore-this: eaa52312032ec06273322e48d8847cf5 ] [Add a small utility module. Petr Rockai <[email protected]>**20090129115010 Ignore-this: c4fbef666357fb3899fc06c98b8317ef ] [Put Name in Eq and Ord. Petr Rockai <[email protected]>**20090129114901 Ignore-this: eefdba38979085df7a06bb8cc22b2ec2 ] [Move Tree into its own module, Storage.Hashed.Tree. Petr Rockai <[email protected]>**20090127140409 Ignore-this: a977de30993dba7840320c140cf3ca47 ] [Store indexes aside (in _darcs/index for darcs-diff). Petr Rockai <[email protected]>**20090127100134 Ignore-this: 7a2206a86e99f4a2a391a155e78e9e10 ] [Wibble the cabal file up to date. Petr Rockai <[email protected]>**20090127093426 Ignore-this: ca5b77157eb3780bd7483f3452c80662 ] [Use indexed tree in darcs-diff.hs for the working directory. Petr Rockai <[email protected]>**20090127093405 Ignore-this: e4f03825a05bb8f0a94c5965ff119b24 ] [Optimise diffTrees for hash-based trees. Petr Rockai <[email protected]>**20090127093345 Ignore-this: f9f0033ef4462e3be7f60e34348f896c ] [First go at implementation of "indexed" Trees. Petr Rockai <[email protected]>**20090127093313 Ignore-this: 8cbd160945c2c154c859e075056eefbd ] [Bundle SHA256 implementation from darcs. Haskell version from Hackage is SLOW. Petr Rockai <[email protected]>**20090127093228 Ignore-this: f9c40f67298a8c8ffc485b635eaa3924 ] [Cosmetic. Petr Rockai <[email protected]>**20090127093127 Ignore-this: 8f0b2ebdd217bcab36dff645248f1cb7 ] [Add Eq Hash instance that ignores length in darcs-style hashes. Petr Rockai <[email protected]>**20090127093020 Ignore-this: 5e3bcd097073af19bced8a3fd85d891d ] [Split AnchoredPath off Hashed, wibble export/import lists. Petr Rockai <[email protected]>**20090127093006 Ignore-this: 945eb78a1caeb4d9acbb97316616cb6f ] [Simplify Tree . T.fromList to makeTree. Petr Rockai <[email protected]>**20090127011813 Ignore-this: c14ae7900e1d66c8fd17552974a16e31 ] [Drop the nonsense parent pointers from Tree. Simplifies everything. Petr Rockai <[email protected]>**20090127011630 Ignore-this: 8cf80aa012d77352a1ecd4e045d53def ] [Haddock zipBlobs, just in case. Petr Rockai <[email protected]>**20090127000631 Ignore-this: 7e6d3e9562079c2543b4bd1acf4fc477 ] [Use mmap somewhat more correctly. Petr Rockai <[email protected]>**20090126204107 Ignore-this: 1da3fa90cb61f90492afe2264aa8dd94 - Force GC to reclaim descriptors when they're out. - Handle zero-sized files correctly. - (We now also use bytestring-mmap instead of mmap, although that doesn't work on win32. It shouldn't be hard to move back to mmap or steal the win32 bits into bytestring-mmap.) ] [Avoid chopping or LCS-ing identical files. Petr Rockai <[email protected]>**20090126193209 Ignore-this: 9596bad7b3a45343a64e1fcd0eb6c0ef ] [Avoid unpacking & repacking hashes. Petr Rockai <[email protected]>**20090126193143 Ignore-this: 37b13e7119ca6a05f9fab1662f658815 ] [Don't die when reduceContext is called on empty list. Petr Rockai <[email protected]>**20090126183545 Ignore-this: f1c407c0c3e985a34f0cd0aaa0df5c89 ] [Fix zipBlobs to work with differently shaped Trees. Petr Rockai <[email protected]>**20090126183510 Ignore-this: c3715a56ce247c33c89523a93b451abf ] [Implement and use proper zipBlobs. Petr Rockai <[email protected]>**20090126182800 Ignore-this: 25fa4f86fece24c845eb17dfde271919 This is needed since the items of list t1 and list t2 are not neccessarily in the same order, so we shouldn't be zipping those. ] [A very simple darcs-diff implementation. Petr Rockai <[email protected]>**20090126175354 Ignore-this: 44a0f12b8424bc0eff81cef00aa54bad Uses Storage.Hashed to read in the pristine and working trees and runs Storage.Hashed.Diff against the two. Ignores _darcs/patches/pending. ] [Implement unified diff in Storage.Hashed.Diff. Petr Rockai <[email protected]>**20090126175139 Ignore-this: d7ce48cb6f34bb78bd928967fcee9a2c I realize this is not the right place, but I need this for easier benchmarking and it is also quite useful (haven't found unified diff in haskell). Uses Igloo's LCS package. ] [Export blobs and list. Petr Rockai <[email protected]>**20090126175016 Ignore-this: 7ae5119a2a2556adab3214e88839766a ] [Do not print extra empty line after a file in printPath. Petr Rockai <[email protected]>**20090126174957 Ignore-this: 7d97143be509774ee96e3e5ac956ccc8 ] [Fix broken laziness in unfold. Petr Rockai <[email protected]>**20090126174921 Ignore-this: 963050feaa7eddd5d90198f7a48172cc ] [I'll never get those haddocks right... Petr Rockai <[email protected]>**20090126131443 Ignore-this: 1baa83a67aca1515868e381e41567723 ] [Fix a bunch of mis-haddocks. Petr Rockai <[email protected]>**20090126131407 Ignore-this: 632308d0c8ca9728d5a46b77ac7ff5da ] [Implement some helpers for ghci-based exploration. Petr Rockai <[email protected]>**20090126131004 Ignore-this: 7d74009c38d8d94819a37352142bb326 ] [Allow the read function to be overriden by a Tree, instead of location. Petr Rockai <[email protected]>**20090126130903 Ignore-this: d386ca46718b2d289eb6f3e4f55991db This also allows trivial transparent decompression of darcs hashed pristine trees (which is now implemented). ] [Use [Name] for AnchoredPath newtype instead of custom-ish list-alike. Petr Rockai <[email protected]>**20090126121400 Ignore-this: 321a6523cee0a109e820fecd43f134e3 ] [A few handfuls of haddock wibbling. Petr Rockai <[email protected]>**20090125204331 Ignore-this: 30bb009afe322af5891d205a62da7af ] [Fix minor type and order bugs in unfoldRestricted -> compile. Petr Rockai <[email protected]>**20090125203626 Ignore-this: b3e95b102975200a903b7e7cb156fb7b ] [Export unfoldRestricted and wibble the haddock. Petr Rockai <[email protected]>**20090125203516 Ignore-this: 7805cb0848ac4a95f762b0a8f5a1ee0f ] [Rename filterTree to filter (consistency) and export restrict, filter. Petr Rockai <[email protected]>**20090125203434 Ignore-this: 2a214f3585ce95b0039f275eae57bb72 ] [Fix unfoldRestricted even more, add missing haddocks. Petr Rockai <[email protected]>**20090125203222 Ignore-this: 4938e5e80e85d96f6ead59b62b6b6cc4 ] [Implement filterTree and fix unfoldRestricted through it. Petr Rockai <[email protected]>**20090125201748 Ignore-this: eb3739709d4a4d846ec73ec2a539648c ] [Add type sig and haddock for unfoldAll. Petr Rockai <[email protected]>**20090125201731 Ignore-this: cf54f75863281ae1d52eb9ac9b9f4e3c ] [Rename 'p' parameter to unfold to predicate, for clarity. Petr Rockai <[email protected]>**20090125201709 Ignore-this: 238924965a8745a4b80816fc1dead7e ] [Add first iteration of unfoldRestricted. Petr Rockai <[email protected]>**20090125200538 Ignore-this: bb55c2f533ff3ff9eb86be7d85d5b5ac ] [Rework unfold to take an (AnchoredPath -> IO Bool) predicate. Petr Rockai <[email protected]>**20090125200457 Ignore-this: d156edc587d1fbeba2962c53acb35035 ] [Add partially-read Tree's, and a way to complete them. Petr Rockai <[email protected]>**20090125192040 Ignore-this: e745826333d21511a3e884630e777adf By default, reads now only read in the root of the tree and the subtrees are kept as TreeStubs. Use unfold and unfoldAll to remove stubs from a Tree. ] [Export and document readDarcsPristine. Petr Rockai <[email protected]>**20090125163246 Ignore-this: 4e477c2ae2671b622033ced68321e58a ] [Add readDarcsPristine :: FilePath -> Tree. Petr Rockai <[email protected]>**20090125162954 Ignore-this: 3ef4d380cc2fb27c518f1f72f878c6e1 ] [Initial version. Petr Rockai <[email protected]>**20090120084405 Ignore-this: 4a6757f6306fd926cea5f4a298e2f362 ]
pgpJCcHjzAueo.pgp
Description: PGP signature
_______________________________________________ darcs-users mailing list [email protected] http://lists.osuosl.org/mailman/listinfo/darcs-users
