HEADS UP, REBASING: Re: patch applied (/home/srv/code/hackage-server): "First go at adding continuous/live mirroring" and 8 others

Duncan Coutts duncan.coutts at googlemail.com
Sun Oct 9 18:20:14 CEST 2011


Sorry everyone, I've decided to back out these patches because it'll
make it much easier to merge Max's buildbot patches. Rebasing Max's
patches on top of mine is proving a little tricky. So I'm going to
rebase the other way round.

So if you pulled this weekend, watch out, you'll want to obliterate any
patches that you've got that are not upstream, use:

darcs push --dry-run

if you see any patches (that are not your own local ones you're working
on), then obliterate them with darcs obliterate.

Duncan


On Sun, 2011-10-09 at 01:16 +0100, duncan at lun.haskell.org wrote:
> Thu Oct  6 11:29:45 BST 2011  Duncan Coutts <duncan at well-typed.com>
>   * First go at adding continuous/live mirroring
>   Ignore-this: 69423437dcf02091da86ae3480bc128d
> 
>     M ./MirrorClient.hs -32 +105
>     M ./hackage-server.cabal -1 +1
> Thu Oct  6 12:09:20 BST 2011  Duncan Coutts <duncan at well-typed.com>
>   * Improve the mirror client help messages
>   Ignore-this: 30d7c7730b11b88871fa6a4df3d79014
> 
>     M ./MirrorClient.hs -5 +35
> Sat Oct  8 15:30:24 BST 2011  Duncan Coutts <duncan at community.haskell.org>
>   * Rework the async var to batch updates and amortise the work
>   Ignore-this: 3f53d68d36f1847b061dcb7ddcb3e23d
>   Previously, every single write to the var was laboriously evaluated
>   and since jobs keep comming in faster than they can be evaluated,
>   then the input queue just grows without bound. But if we're just
>   writing then if we have several new inputs in the queue then we can
>   just skip to the final update and evaluate that one. That's now what
>   we do, with a slight complication to do with incremental updates.
> 
>     M ./Distribution/Server/Util/AsyncVar.hs -16 +34
>     M ./hackage-server.cabal +1
> Sat Oct  8 16:55:51 BST 2011  Duncan Coutts <duncan at well-typed.com>
>   * Overhaughl the mirror client error handling infrastructure and strategy
>   Ignore-this: 59347decddab335ba0f9f75fd66d3d0f
> 
>     M ./MirrorClient.hs -127 +443
> Sat Oct  8 17:01:55 BST 2011  Duncan Coutts <duncan at well-typed.com>
>   * Only rewrite the mirror client error files if they've changed
>   Ignore-this: b82b608bfcd9a6d2e4473bb616ab563c
> 
>     M ./MirrorClient.hs -2 +4
> Sat Oct  8 19:20:12 BST 2011  Duncan Coutts <duncan at community.haskell.org>
>   * Disable idle GC for the server
>   Ignore-this: 970125139572aee660c2dae06f904464
>   It doesn't correctly detect when we're really idle and ends up
>   using ~15% CPU when the server is otherwise idle.
> 
>     M ./hackage-server.cabal +2
> Sat Oct  8 19:22:16 BST 2011  Duncan Coutts <duncan at well-typed.com>
>   * Depend on the latest HTTP lib, for bug fixes
>   Ignore-this: a5f411822c140575974829df3e5eacec
> 
>     M ./MirrorClient.hs -3
>     M ./hackage-server.cabal -1 +1
> Sun Oct  9 00:43:15 BST 2011  Duncan Coutts <duncan at well-typed.com>
>   * Report when a checkpoint is finished writing.
>   Ignore-this: 2f451e601c3d8fb9c1bb45e34d55f0eb
>   It's just that little bit more reassuring.
> 
>     M ./Main.hs +1
> Sun Oct  9 01:12:09 BST 2011  Duncan Coutts <duncan at well-typed.com>
>   * Handle IO errors in mirroring without losing package error info
>   Ignore-this: 718a385e3718d7cc12a6312109648dfc
>   Previously if we got an IO exception, rather than an HTTP level error,
>   then we had no chance to trap it locally so we would lose all the
>   accumulated info about the packages with errors. Now we cheat. Instead
>   of using a proper state monad, we use a reader monad with an IORef
>   that way, we can catch the IO exception in the monad run function,
>   and still read out the latest package error state.
>   Also handle user interrupt ^C similarly.
> 
>     M ./MirrorClient.hs -15 +33
> 
> _______________________________________________
> cabal-devel mailing list
> cabal-devel at haskell.org
> http://www.haskell.org/mailman/listinfo/cabal-devel





More information about the cabal-devel mailing list