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, dun...@lun.haskell.org wrote: > Thu Oct 6 11:29:45 BST 2011 Duncan Coutts <dun...@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 <dun...@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 <dun...@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 <dun...@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 <dun...@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 <dun...@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 <dun...@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 <dun...@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 <dun...@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@haskell.org > http://www.haskell.org/mailman/listinfo/cabal-devel _______________________________________________ cabal-devel mailing list cabal-devel@haskell.org http://www.haskell.org/mailman/listinfo/cabal-devel