|On-disk format for object storage: we implement a completely loose format
(one file per object), a compact format stored in a single append-only file
and an immutable pack format.
|Object storage block. When used as a hatchery, the loose or compact format
are preferable, while for mature space, the pack format is more useful.
|Object storage. Contains a single hatchery and possibly a number of
mature space blocks, usually in form of packs. It also keeps a list of root
pointers and has a way to extract pointers from objects (externally
supplied). These last two things are used to implement a simple GC.
|Reduce number of packs in the object storage. This may both recombine
packs to eliminate dead objects and join some packs to form bigger
packs. The set of hashes given is used as roots for GC marking.
|Add new objects to the object storage (i.e. put them into hatchery). It is
safe to call this even on objects that are already present in the storage:
such objects will be skipped.
|Reduce hatchery size by moving things into packs.
|Create an empty object storage in given directory, with a hatchery of
given format. The directory is created if needed, but is assumed to be
|Build a map of live objects (i.e. those reachable from the given roots) in
a given list of Blocks.
|Read a Tree in the darcs hashed format from an object storage. This is
basically the same as readDarcsHashed from Storage.Hashed, but uses an
object storage instead of traditional darcs filesystem layout. Requires the
tree root hash as a starting point.
|Write a Tree into an object storage, using the darcs-style directory
formatting (and therefore darcs-style hashes). Gives back the object storage
and the root hash of the stored Tree. NB. The function expects that the Tree
comes equipped with darcs-style hashes already!
|Produced by Haddock version 2.4.2|