patch applied (hackage-server): "Remove two old unused utils modules" and 5 others

devnull at devnull at
Tue Nov 27 18:42:39 CET 2012

Fri Nov 23 14:25:40 GMT 2012  Duncan Coutts <duncan at>
  * Remove two old unused utils modules
  Ignore-this: 15dcb6047f16fd05610359fac8ef0114

    R ./Distribution/Server/Util/ActionLog.hs
    R ./Distribution/Server/Util/TimeLogger.hs

Tue Nov 27 17:01:52 GMT 2012  Duncan Coutts <duncan at>
  * Simplify import client command line validation a bit
  Ignore-this: 2b30fc71f1896987368dcd68c667c028

    M ./ImportClient.hs -13 +14

Tue Nov 27 17:05:47 GMT 2012  Duncan Coutts <duncan at>
  * Allow concurrent upload for package metadata in the import client
  Ignore-this: e9656155c4f6973914347da92be4a1b0

    M ./ImportClient.hs -16 +33

Tue Nov 27 16:57:28 GMT 2012  Duncan Coutts <duncan at>
  * Grrr, the periodic download refresh is unconditional
  Ignore-this: 5698c5c4f327723da89d8263e2a2c6d9
  In the meantime, make it wait a bit longer.

    M ./Distribution/Server/Features/PackageList.hs -1 +2

Tue Nov 27 17:30:59 GMT 2012  Duncan Coutts <duncan at>
  * Overhaul all the caching
  Ignore-this: e82f108830a5b42576bd4b0bba677ed4
  Separate the previous uses of caches into two kinds: 1. simple
  in-memory vars and 2. proper caches. For the former we just add a
  simple strict wrapper around MVar, with read/write/modify operations,
  while for latter kind we use asynchronous caches that are constructed
  with their update action.
  Then update the features to use the appropriate kind of cache.
  Additionally, the old async cache infrastructure had a feature to
  disable updating of caches for the benefit of bulk import operations.
  The corresponding thing in the new infrastructure is a tunable knob
  to delay cache updates so that more changes can accumulate before doing
  the expensive cache update operation.

    M ./Distribution/Server.hs -6 +9
    M ./Distribution/Server/Features.hs -5 +5
    M ./Distribution/Server/Features/Core.hs -29 +50
    M ./Distribution/Server/Features/DownloadCount.hs -7 +6
    M ./Distribution/Server/Features/Html.hs -29 +40
    M ./Distribution/Server/Features/NameSearch.hs -30 +63
    M ./Distribution/Server/Features/PackageList.hs -13 +12
    M ./Distribution/Server/Features/Packages.hs -14 +18
    M ./Distribution/Server/Features/Tags.hs -5 +4
    M ./Distribution/Server/Features/Users.hs -12 +11
    M ./Distribution/Server/Framework.hs -2 +6
    M ./Distribution/Server/Framework/Cache.hs -79 +129
    M ./Distribution/Server/Framework/Instances.hs -1 +8
    A ./Distribution/Server/Framework/MemState.hs
    M ./Distribution/Server/Framework/Types.hs -1 +12
    R ./Distribution/Server/Util/AsyncVar.hs
    M ./Distribution/Server/Util/TextSearch.hs -2 +5
    M ./Main.hs -18 +26
    M ./hackage-server.cabal -1 +1

Tue Nov 27 17:41:01 GMT 2012  Duncan Coutts <duncan at>
  * Move a use of runHook into the feature that owns the hook
  Ignore-this: ffaef756e8b9c49027a4cf867c64d0be
  Other features should not really prod hooks.

    M ./Distribution/Server/Features/Core.hs +1
    M ./Distribution/Server/Features/PreferredVersions.hs -1

More information about the cabal-devel mailing list