[darcs-users] playing with gorsvet a bit

Eric Kow kowey at darcs.net
Sun Feb 22 20:40:50 UTC 2009


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
-------------- next part --------------

Context:

[Use extensible-exceptions for sake of GHC 6.8.
Petr Rockai <me at mornfall.net>**20090217143930
 Ignore-this: bef6a0b683875407ef5f738320635a4e
] 

[More efficient readIndex implementation.
Petr Rockai <me at mornfall.net>**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 <me at mornfall.net>**20090217130002
 Ignore-this: b0f6853c7a4675aca4b626c0136a02dc
] 

[Optionally keep size in Hash, so it can accomodate darcs-style hashes.
Petr Rockai <me at mornfall.net>**20090217125740
 Ignore-this: 1d61f8024d1f46f753b38eeace67a5df
] 

[Use ghc 6.10 exceptions.
Petr Rockai <me at mornfall.net>**20090217125707
 Ignore-this: f02b973b9b45503c6d1a282b29edba95
] 

[Use record syntax in Tree definition.
Petr Rockai <me at mornfall.net>**20090214203853
 Ignore-this: c502d9a33a91efb2db5bec43b064be56
] 

[Bump version to 0.2.
Petr Rockai <me at mornfall.net>**20090213155746
 Ignore-this: d049a6cf5f73b3060c3bc385a9030edc
] 

[Remove darcs-diff, a more powerful alternative is moving to a separate package.
Petr Rockai <me at mornfall.net>**20090213152739
 Ignore-this: 3e12def489bf2f88eaaca9582296af2
] 

[Fix up hashed-storage.cabal.
Petr Rockai <me at mornfall.net>**20090213152710
 Ignore-this: 80cb3f7d70057f7a7d72eea05fee249a
] 

[Initial version of Storage.Hashed.Monad.
Petr Rockai <me at mornfall.net>**20090213152656
 Ignore-this: dd4be5199b5629daa94128a53b09380d
] 

[Make modifyTree work correctly over stubbed Tree objects.
Petr Rockai <me at mornfall.net>**20090213152626
 Ignore-this: ffb1bc79bbbba9482fc987b38a8eda3a
] 

[Morph zipDiffFiles into diffTrees again (gives a pair of Tree objects).
Petr Rockai <me at mornfall.net>**20090213152534
 Ignore-this: dc9ea25c9374f91d005178a389963d90
] 

[Add catPaths utility function to AnchoredPath.
Petr Rockai <me at mornfall.net>**20090213152445
 Ignore-this: 341fafd72639aece0c6ba3bfbadf690e
] 

[Implement subtree diffs in darcs-diff.
Petr Rockai <me at mornfall.net>**20090212133706
 Ignore-this: bfa1cb57c0b2e24508d58ca36b976321
] 

[Wrote a test for modifyTree.
Petr Rockai <me at mornfall.net>**20090212133659
 Ignore-this: 9d70daeb14b0783e412c6f0da701ef43
] 

[Minor test code refactor.
Petr Rockai <me at mornfall.net>**20090212133627
 Ignore-this: d34381b6b9751ee1a576f194e4ff635f
] 

[A little inlining. No measurable impact either...
Petr Rockai <me at mornfall.net>**20090212133546
 Ignore-this: 53b56d46ffc6e35556ed07f0b679271c
] 

[Strictify the Tree structures a little (no measurable impact).
Petr Rockai <me at mornfall.net>**20090212133524
 Ignore-this: 9f20dcbe3bbb73a0d4872c13d073009f
] 

[Fix zipDiffFiles to work with hash-less Trees correctly.
Petr Rockai <me at mornfall.net>**20090212133501
 Ignore-this: b5ac5df4741a474e8935d56612454169
] 

[Implement modifyTree (replaces an item at given path).
Petr Rockai <me at mornfall.net>**20090212133344
 Ignore-this: 48bf21f241f45d0b003abfb9fe984d45
] 

[Use little endian formatting for binary index. Saves few cycles.
Petr Rockai <me at mornfall.net>**20090212133251
 Ignore-this: 4dfd2b3e4b5564393ba94187c3a9e947
] 

[Some trivial AnchoredPath utilities.
Petr Rockai <me at mornfall.net>**20090212133224
 Ignore-this: 5556fc71f10fead96c288f200d142632
] 

[Minor performance refactor (impact: negligible).
Petr Rockai <me at mornfall.net>**20090212133115
 Ignore-this: 7d24dd40f7e25d598e5df787ef70212f
] 

[Optimise the index layout a little bit.
Petr Rockai <me at mornfall.net>**20090210103152
 Ignore-this: 6b3ebf8357277ac9b30e18c3f02f8383
] 

[Implement semi-automatic index maintenance.
Petr Rockai <me at mornfall.net>**20090210102808
 Ignore-this: 69ddb8a5df70370f8afdd221204dcdbc
] 

[Test that reading index contents works.
Petr Rockai <me at mornfall.net>**20090209232926
 Ignore-this: dc4282379400174e833d7b3d56552e5f
] 

[Update index whenever it is out of date.
Petr Rockai <me at mornfall.net>**20090209232843
 Ignore-this: 8351e22988a738f9bba169459c350e14
] 

[Rewrite tree diff again (less elegant but more correct).
Petr Rockai <me at mornfall.net>**20090209232747
 Ignore-this: 6bdb62915e25ee2727cbb8004e31366a
] 

[Reduce GHC warnings.
Petr Rockai <me at mornfall.net>**20090209211447
 Ignore-this: fb3239b6ebc697d7a361894f702fc0b1
] 

[Reimplement the Tree diffing algorithm more elegantly.
Petr Rockai <me at mornfall.net>**20090209210038
 Ignore-this: e11abeeafb6fdc7ccd79d56178bb3b2f
] 

[Add emptyTree, itemHash and (restore) zipFiles to Tree.
Petr Rockai <me at mornfall.net>**20090209205958
 Ignore-this: 686e51f5eafd3968965cee0cd11b2cdb
] 

[Minor documentation updates.
Petr Rockai <me at mornfall.net>**20090209205910
 Ignore-this: afc70a23371b8713f4c7e0e87dc2fd5f
] 

[Simplify the Tree types a little.
Petr Rockai <me at mornfall.net>**20090208124413
 Ignore-this: 25ab869517bea68faa5e305e8811c191
] 

[Put down some initial unit tests.
Petr Rockai <me at mornfall.net>**20090208093155
 Ignore-this: d6c76bd7ff752d8cdb4c54009145bee0
] 

[Less debug noise.
Petr Rockai <me at mornfall.net>**20090208093142
 Ignore-this: 206ceed353886f2c3baf48188a977379
] 

[Get rid of unix-compat as well. The thin Bundled.Posix covers all bases.
Petr Rockai <me at mornfall.net>**20090131223847
 Ignore-this: b1bdd830e3262bb5dcd5b41c710c14d9
] 

[Drop direct unix dependency again.
Petr Rockai <me at mornfall.net>**20090131223509
 Ignore-this: 85936dd030969bd113824800e5f0c0e7
] 

[Use a less massive hack to get around that unsafePerformIO.
Petr Rockai <me at mornfall.net>**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 <me at mornfall.net>**20090131214005
 Ignore-this: 5e3b325865b74dd7a9f52f69cb05fb6d
] 

[Minor pragma wibbling in Index.hs.
Petr Rockai <me at mornfall.net>**20090131213859
 Ignore-this: 89bb010b347414006b54a3da966480a4
] 

[Documentation for the Diff module.
Petr Rockai <me at mornfall.net>**20090131165356
 Ignore-this: 90a14b549a10c2aa21ecbb67da594256
] 

[Update haddock.
Petr Rockai <me at mornfall.net>**20090131162734
 Ignore-this: db1c2d8303a0d7aad24e9a0f27ace18a
] 

[Get rid of the ugly hashTree implementation for now.
Petr Rockai <me at mornfall.net>**20090131162632
 Ignore-this: cb913aed83da3655e81039e689dc4267
] 

[A massive hack to circumvent unsafePerformIO roundtrip per stat.
Petr Rockai <me at mornfall.net>**20090130212040
 Ignore-this: df923f111a7b82bce53917972f62776e
] 

[Somewhat hacky lazy unfolding in diffTrees.
Petr Rockai <me at mornfall.net>**20090130211850
 Ignore-this: 170a2d4673aa86e69857e735a2b9a0f
] 

[Keep hashes with TreeStubs so we can unfold more lazily.
Petr Rockai <me at mornfall.net>**20090130211501
 Ignore-this: eb0b1f79a7ed585898636ff96a58cc68
] 

[Cache file sizes in indexed trees, produce darcs-compatible hashes.
Petr Rockai <me at mornfall.net>**20090130173101
 Ignore-this: dba749d61e997eef0faa1fe2612fa4b2
] 

[Add a dirHash function, producing darcs-compatible tree hashes.
Petr Rockai <me at mornfall.net>**20090130173027
 Ignore-this: 72048ecef2235f24ab7a11085ffb3810
] 

[A Tree-hash based diffTrees implementation.
Petr Rockai <me at mornfall.net>**20090130114518
 Ignore-this: 94226a7b385e981611019c6351530687
] 

[First stab at hashes for Trees. Somewhat icky.
Petr Rockai <me at mornfall.net>**20090130113348
 Ignore-this: a568097c07d13060f012ddc01ddf84f8
] 

[Move sha256 helper into Utils.
Petr Rockai <me at mornfall.net>**20090130113311
 Ignore-this: 12436d98b3ef7bca05bc3792d0f617d8
] 

[Normalise hashes instead of comparing them funkily.
Petr Rockai <me at mornfall.net>**20090130112638
 Ignore-this: 43b91ecd8094faf311bd207577b0ef4f
] 

[A couple huge-change-collateral fixes.
Petr Rockai <me at mornfall.net>**20090129120558
 Ignore-this: acd180c2b0eba653ffaec251ed6b4c83
] 

[Lots of changes for improved efficiency and cleaner code.
Petr Rockai <me at mornfall.net>**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 <me at mornfall.net>**20090129115458
 Ignore-this: 567e338a987e5d917b1e769d04321c6f
] 

[Minor YAGNI cleanup in Hashed.hs.
Petr Rockai <me at mornfall.net>**20090129115215
 Ignore-this: eaa52312032ec06273322e48d8847cf5
] 

[Add a small utility module.
Petr Rockai <me at mornfall.net>**20090129115010
 Ignore-this: c4fbef666357fb3899fc06c98b8317ef
] 

[Put Name in Eq and Ord.
Petr Rockai <me at mornfall.net>**20090129114901
 Ignore-this: eefdba38979085df7a06bb8cc22b2ec2
] 

[Move Tree into its own module, Storage.Hashed.Tree.
Petr Rockai <me at mornfall.net>**20090127140409
 Ignore-this: a977de30993dba7840320c140cf3ca47
] 

[Store indexes aside (in _darcs/index for darcs-diff).
Petr Rockai <me at mornfall.net>**20090127100134
 Ignore-this: 7a2206a86e99f4a2a391a155e78e9e10
] 

[Wibble the cabal file up to date.
Petr Rockai <me at mornfall.net>**20090127093426
 Ignore-this: ca5b77157eb3780bd7483f3452c80662
] 

[Use indexed tree in darcs-diff.hs for the working directory.
Petr Rockai <me at mornfall.net>**20090127093405
 Ignore-this: e4f03825a05bb8f0a94c5965ff119b24
] 

[Optimise diffTrees for hash-based trees.
Petr Rockai <me at mornfall.net>**20090127093345
 Ignore-this: f9f0033ef4462e3be7f60e34348f896c
] 

[First go at implementation of "indexed" Trees.
Petr Rockai <me at mornfall.net>**20090127093313
 Ignore-this: 8cbd160945c2c154c859e075056eefbd
] 

[Bundle SHA256 implementation from darcs. Haskell version from Hackage is SLOW.
Petr Rockai <me at mornfall.net>**20090127093228
 Ignore-this: f9c40f67298a8c8ffc485b635eaa3924
] 

[Cosmetic.
Petr Rockai <me at mornfall.net>**20090127093127
 Ignore-this: 8f0b2ebdd217bcab36dff645248f1cb7
] 

[Add Eq Hash instance that ignores length in darcs-style hashes.
Petr Rockai <me at mornfall.net>**20090127093020
 Ignore-this: 5e3bcd097073af19bced8a3fd85d891d
] 

[Split AnchoredPath off Hashed, wibble export/import lists.
Petr Rockai <me at mornfall.net>**20090127093006
 Ignore-this: 945eb78a1caeb4d9acbb97316616cb6f
] 

[Simplify Tree . T.fromList to makeTree.
Petr Rockai <me at mornfall.net>**20090127011813
 Ignore-this: c14ae7900e1d66c8fd17552974a16e31
] 

[Drop the nonsense parent pointers from Tree. Simplifies everything.
Petr Rockai <me at mornfall.net>**20090127011630
 Ignore-this: 8cf80aa012d77352a1ecd4e045d53def
] 

[Haddock zipBlobs, just in case.
Petr Rockai <me at mornfall.net>**20090127000631
 Ignore-this: 7e6d3e9562079c2543b4bd1acf4fc477
] 

[Use mmap somewhat more correctly.
Petr Rockai <me at mornfall.net>**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 <me at mornfall.net>**20090126193209
 Ignore-this: 9596bad7b3a45343a64e1fcd0eb6c0ef
] 

[Avoid unpacking & repacking hashes.
Petr Rockai <me at mornfall.net>**20090126193143
 Ignore-this: 37b13e7119ca6a05f9fab1662f658815
] 

[Don't die when reduceContext is called on empty list.
Petr Rockai <me at mornfall.net>**20090126183545
 Ignore-this: f1c407c0c3e985a34f0cd0aaa0df5c89
] 

[Fix zipBlobs to work with differently shaped Trees.
Petr Rockai <me at mornfall.net>**20090126183510
 Ignore-this: c3715a56ce247c33c89523a93b451abf
] 

[Implement and use proper zipBlobs.
Petr Rockai <me at mornfall.net>**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 <me at mornfall.net>**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 <me at mornfall.net>**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 <me at mornfall.net>**20090126175016
 Ignore-this: 7ae5119a2a2556adab3214e88839766a
] 

[Do not print extra empty line after a file in printPath.
Petr Rockai <me at mornfall.net>**20090126174957
 Ignore-this: 7d97143be509774ee96e3e5ac956ccc8
] 

[Fix broken laziness in unfold.
Petr Rockai <me at mornfall.net>**20090126174921
 Ignore-this: 963050feaa7eddd5d90198f7a48172cc
] 

[I'll never get those haddocks right...
Petr Rockai <me at mornfall.net>**20090126131443
 Ignore-this: 1baa83a67aca1515868e381e41567723
] 

[Fix a bunch of mis-haddocks.
Petr Rockai <me at mornfall.net>**20090126131407
 Ignore-this: 632308d0c8ca9728d5a46b77ac7ff5da
] 

[Implement some helpers for ghci-based exploration.
Petr Rockai <me at mornfall.net>**20090126131004
 Ignore-this: 7d74009c38d8d94819a37352142bb326
] 

[Allow the read function to be overriden by a Tree, instead of location.
Petr Rockai <me at mornfall.net>**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 <me at mornfall.net>**20090126121400
 Ignore-this: 321a6523cee0a109e820fecd43f134e3
] 

[A few handfuls of haddock wibbling.
Petr Rockai <me at mornfall.net>**20090125204331
 Ignore-this: 30bb009afe322af5891d205a62da7af
] 

[Fix minor type and order bugs in unfoldRestricted -> compile.
Petr Rockai <me at mornfall.net>**20090125203626
 Ignore-this: b3e95b102975200a903b7e7cb156fb7b
] 

[Export unfoldRestricted and wibble the haddock.
Petr Rockai <me at mornfall.net>**20090125203516
 Ignore-this: 7805cb0848ac4a95f762b0a8f5a1ee0f
] 

[Rename filterTree to filter (consistency) and export restrict, filter.
Petr Rockai <me at mornfall.net>**20090125203434
 Ignore-this: 2a214f3585ce95b0039f275eae57bb72
] 

[Fix unfoldRestricted even more, add missing haddocks.
Petr Rockai <me at mornfall.net>**20090125203222
 Ignore-this: 4938e5e80e85d96f6ead59b62b6b6cc4
] 

[Implement filterTree and fix unfoldRestricted through it.
Petr Rockai <me at mornfall.net>**20090125201748
 Ignore-this: eb3739709d4a4d846ec73ec2a539648c
] 

[Add type sig and haddock for unfoldAll.
Petr Rockai <me at mornfall.net>**20090125201731
 Ignore-this: cf54f75863281ae1d52eb9ac9b9f4e3c
] 

[Rename 'p' parameter to unfold to predicate, for clarity.
Petr Rockai <me at mornfall.net>**20090125201709
 Ignore-this: 238924965a8745a4b80816fc1dead7e
] 

[Add first iteration of unfoldRestricted.
Petr Rockai <me at mornfall.net>**20090125200538
 Ignore-this: bb55c2f533ff3ff9eb86be7d85d5b5ac
] 

[Rework unfold to take an (AnchoredPath -> IO Bool) predicate.
Petr Rockai <me at mornfall.net>**20090125200457
 Ignore-this: d156edc587d1fbeba2962c53acb35035
] 

[Add partially-read Tree's, and a way to complete them.
Petr Rockai <me at mornfall.net>**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 <me at mornfall.net>**20090125163246
 Ignore-this: 4e477c2ae2671b622033ced68321e58a
] 

[Add readDarcsPristine :: FilePath -> Tree.
Petr Rockai <me at mornfall.net>**20090125162954
 Ignore-this: 3ef4d380cc2fb27c518f1f72f878c6e1
] 

[Initial version.
Petr Rockai <me at mornfall.net>**20090120084405
 Ignore-this: 4a6757f6306fd926cea5f4a298e2f362
] 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 194 bytes
Desc: not available
URL: <http://lists.osuosl.org/pipermail/darcs-users/attachments/20090222/fd64b33d/attachment-0001.pgp>


More information about the darcs-users mailing list