Wed Aug 13 05:13:42 MSD 2008  Dmitry Kurochkin <[EMAIL PROTECTED]>
  * Enable pipelining by default, add --disable-pipelining option (issue838).

Wed Aug 13 11:42:18 MSD 2008  Dmitry Kurochkin <[EMAIL PROTECTED]>
  * Minor change to URL module.

Wed Aug 13 12:12:18 MSD 2008  Dmitry Kurochkin <[EMAIL PROTECTED]>
  * Fix URL module bug with pipelining enabled.
New patches:

[Enable pipelining by default, add --disable-pipelining option (issue838).
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080813011342] hunk ./configure.ac 507
-    # Check if we want pipelining enabled...
-    AC_ARG_WITH(curl_pipelining,
-            AS_HELP_STRING([--with-curl-pipelining],[use curl pipelining (requires libcurl >= 7.18.0)]))
-
-    if test "$with_curl_pipelining" == "yes"; then
-      AC_MSG_CHECKING([for libcurl pipelining])
-      let vernum=0x0`$CURL_CONFIG --vernum`
-      let minver=0x071200
-      if test $vernum -ge $minver; then
-        CPPFLAGS="$CPPFLAGS -DCURL_PIPELINING"
-        CURL_PIPELINING=True
-        AC_MSG_RESULT([yes])
-      else
-        AC_MSG_RESULT([no])
-        AC_MSG_WARN([Requires libcurl version >= 7.18.0])
-      fi
+    # Check if curl supports enabled...
+    AC_MSG_CHECKING([for libcurl pipelining])
+    let vernum=0x0`$CURL_CONFIG --vernum`
+    let minver=0x071200
+    if test $vernum -ge $minver; then
+      CPPFLAGS="$CPPFLAGS -DCURL_PIPELINING"
+      CURL_PIPELINING=True
+      AC_MSG_RESULT([yes])
+    else
+      AC_MSG_RESULT([no])
+      AC_MSG_WARN([Requires libcurl version >= 7.18.0])
hunk ./src/Darcs/Arguments.lhs 75
-                        patch_select_flag
+                        patch_select_flag,
+                        disablePipelining
hunk ./src/Darcs/Arguments.lhs 277
-  help_on_match,
+  help_on_match, disablePipelining,
hunk ./src/Darcs/Arguments.lhs 1274
+\begin{options}
+--disable-pipelining
+\end{options}
+Disable HTTP pipelining for curl and libwww.
+\begin{code}
+disablePipelining = DarcsNoArgOption [] ["disable-pipelining"] DisablePipelining
+        "disable HTTP pipelining for curl and libwww"
+\end{code}
+
hunk ./src/Darcs/Commands/Changes.lhs 40
-                        ssh_cm
+                        ssh_cm, disablePipelining
hunk ./src/Darcs/Commands/Changes.lhs 92
-                        command_advanced_options = [ssh_cm],
+                        command_advanced_options = [ssh_cm, disablePipelining],
hunk ./src/Darcs/Commands/Convert.lhs 39
-                        ssh_cm )
+                        ssh_cm, disablePipelining )
hunk ./src/Darcs/Commands/Convert.lhs 98
-                    command_advanced_options = [ssh_cm],
+                    command_advanced_options = [ssh_cm, disablePipelining],
hunk ./src/Darcs/Commands/Get.lhs 36
-                        ssh_cm )
+                        ssh_cm, disablePipelining )
hunk ./src/Darcs/Commands/Get.lhs 107
-                    command_advanced_options = [ssh_cm] ++ command_advanced_options initialize,
+                    command_advanced_options = [ssh_cm, disablePipelining] ++ command_advanced_options initialize,
hunk ./src/Darcs/Commands/Pull.lhs 37
-                        ssh_cm, umask_option,
+                        ssh_cm, umask_option, disablePipelining
hunk ./src/Darcs/Commands/Pull.lhs 97
-                                                 umask_option],
+                                                 umask_option,
+                                                 disablePipelining],
hunk ./src/Darcs/Commands/Push.lhs 32
-                        remote_repo, ssh_cm,
+                        remote_repo, ssh_cm, disablePipelining,
hunk ./src/Darcs/Commands/Push.lhs 80
-                     command_advanced_options = [applyas, nolinks, remote_repo, ssh_cm],
+                     command_advanced_options = [applyas,
+                                                 nolinks,
+                                                 remote_repo,
+                                                 ssh_cm,
+                                                 disablePipelining],
hunk ./src/Darcs/Commands/Put.lhs 15
+                        disablePipelining
hunk ./src/Darcs/Commands/Put.lhs 61
-                    command_advanced_options = [applyas, ssh_cm],
+                    command_advanced_options = [applyas, ssh_cm, disablePipelining],
hunk ./src/Darcs/Commands/Send.lhs 39
-                        remote_repo, ssh_cm,
+                        remote_repo, ssh_cm, disablePipelining,
hunk ./src/Darcs/Commands/Send.lhs 125
-                                                 send_to_context, ssh_cm],
+                                                 send_to_context, ssh_cm,
+                                                 disablePipelining],
hunk ./src/Darcs/Commands.lhs 57
-import URL ( setDebugHTTP )
+import URL ( setDebugHTTP, setPipeliningDisabled )
hunk ./src/Darcs/Commands.lhs 344
+               when (DisablePipelining `elem` os) setPipeliningDisabled
hunk ./src/Darcs/Flags.lhs 83
+               | DisablePipelining
hunk ./src/URL.hs 2
-module URL ( copyUrl, copyUrlFirst, setDebugHTTP, waitUrl,
+module URL ( copyUrl, copyUrlFirst, setDebugHTTP, setPipeliningDisabled, waitUrl,
hunk ./src/URL.hs 6
+import Data.IORef ( newIORef, readIORef, writeIORef, IORef )
hunk ./src/URL.hs 72
-maxPipeLength :: Int
-maxPipeLength = if have_libwww then 100
+maxPipeLength :: IORef Int
+maxPipeLength = unsafePerformIO $ newIORef $
+                if have_libwww then 100
hunk ./src/URL.hs 134
-  when (l < maxPipeLength) $ do
+  mpl <- liftIO $ readIORef maxPipeLength
+  when (l < mpl) $ do
hunk ./src/URL.hs 226
+setPipeliningDisabled :: IO ()
+setPipeliningDisabled = writeIORef maxPipeLength 1
+

[Minor change to URL module.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080813074218] hunk ./src/URL.hs 204
-waitUrl u = do let fn m = let (a, b) = Map.updateLookupWithKey (\_ _ -> Nothing) u m
-                          in (b, a)
-               r <- modifyMVar urlNotifications (return.fn)
+waitUrl u = do let fn m = Map.updateLookupWithKey (\_ _ -> Nothing) u m
+                   swap = uncurry $ flip (,)
+               r <- modifyMVar urlNotifications (return.swap.fn)

[Fix URL module bug with pipelining enabled.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080813081218] hunk ./src/URL.hs 40
-data UrlState = UrlState { inProgress :: Map String (FilePath, (MVar String))
+data UrlState = UrlState { inProgress :: Map String (FilePath, Cachable, (MVar String))
hunk ./src/URL.hs 119
-                            new_st = st { inProgress = Map.insert (url r) (file r, notifyVar r) p
+                            new_st = st { inProgress = Map.insert (url r) (file r, cachable r, notifyVar r) p
hunk ./src/URL.hs 121
-                        if Map.member (url r) p
-                           then if e `elemQ` w
-                                then if priority r == High
-                                     then do put $ st { waitToStart = pushQ e (deleteQ e w) }
-                                             dbg $ "Moving "++(url r)++" to head of download queue."
-                                     else dbg "Ignoring UrlRequest of file that's already queued."
-                                else bug $ "URL.urlThread: same URLs with different parameters "++(url r)++" "++(file r)
-                           else put new_st
+                        case Map.lookup (url r) p of
+                           Just (f, c, _) -> if f == file r && c == cachable r
+                                             then if e `elemQ` w && priority r == High
+                                                  then do put $ st { waitToStart = pushQ e (deleteQ e w) }
+                                                          dbg $ "Moving "++(url r)++" to head of download queue."
+                                                  else dbg "Ignoring UrlRequest of file that's already queued."
+                                             else bug $ "URL.urlThread: same URLs with different parameters "++(url r)++" "++(file r)
+                           _              -> put new_st
hunk ./src/URL.hs 185
-                          Just (f, v) -> do liftIO $ renameFile (f++"-new") f
-                                            liftIO $ putMVar v e
-                                            dbg $ "URL.waitNextUrl succeeded: "++u++" "++f
+                          Just (f, _, v) -> do liftIO $ renameFile (f++"-new") f
+                                               liftIO $ putMVar v e
+                                               dbg $ "URL.waitNextUrl succeeded: "++u++" "++f
hunk ./src/URL.hs 190
-                          Just (f, v) -> do liftIO $ removeFileMayNotExist (f++"-new")
-                                            liftIO $ putMVar v e
-                                            dbg $ "URL.waitNextUrl failed: "++
-                                                u++" "++f++" "++e
+                          Just (f, _, v) -> do liftIO $ removeFileMayNotExist (f++"-new")
+                                               liftIO $ putMVar v e
+                                               dbg $ "URL.waitNextUrl failed: "++
+                                                   u++" "++f++" "++e

Context:

[Generalize HashRepo.clean_pristine to HashIO.clean_hashdir.
[EMAIL PROTECTED] 
[Add writeSlurpy to roll out a copy of slurpy into a filesystem.
[EMAIL PROTECTED] 
[fix breakage in URL.
David Roundy <[EMAIL PROTECTED]>**20080812141220] 
[Parametrize "pristine.hashed" in a bunch of functions.
[EMAIL PROTECTED] 
[Rework URL module for multi threading.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080811221209] 
[Print a warning when the remote end does not have darcs 2.
Eric Kow <[EMAIL PROTECTED]>**20080811100933
 
 Two reasons:
 (1) right now people get a scary warning from ssh when it can't fetch
     some non-essential files (it used to be that we would send stderr from ssh
     to /dev/null, but that has other problems...)
 (2) darcs transfer-mode more widely deployed could help a lot of people
     wrt darcs performance
] 
[Added a beware note to the unrecord command
[EMAIL PROTECTED] 
[Fixed typo
[EMAIL PROTECTED] 
[make Convert.lhs compile.
David Roundy <[EMAIL PROTECTED]>**20080810201725] 
[improve type safety of Darcs.Repository.Internal.
Jason Dagit <[EMAIL PROTECTED]>**20080810051109] 
[Refactor `darcs convert' warning at kowey's request.
Trent W. Buck <[EMAIL PROTECTED]>**20080810110014] 
[Expand formats text based in part on suggestions from darcs-users
Max Battcher <[EMAIL PROTECTED]>**20080809184043] 
[Fixes to global cache text based on darcs-users suggestions
Max Battcher <[EMAIL PROTECTED]>**20080809181424] 
[Add user-focused documentation of repository format options
Max Battcher <[EMAIL PROTECTED]>**20080807195429] 
[Highlight the global cache as a best practice
Max Battcher <[EMAIL PROTECTED]>**20080807193918] 
[Describe best practice in `darcs convert --help'.
Trent W. Buck <[EMAIL PROTECTED]>**20080810110615] 
[add type witnesses to Population
Jason Dagit <[EMAIL PROTECTED]>**20080808053252] 
[add type witnesses to CommandsAux
Jason Dagit <[EMAIL PROTECTED]>**20080808052738] 
[Add type witnesses to more modules, rounding out Darcs/Repository/*
Jason Dagit <[EMAIL PROTECTED]>**20080808050947] 
[fixed a bug in identity_commutes property
Jason Dagit <[EMAIL PROTECTED]>**20080808023025
 In the right identity check the patch order should have gone from
 (identity :> p) to (p2 :> i2).  I added a rigid type context too
 so that ghc 6.8 and newer would type the definition.
] 
[Make Darcs.Repository.Internal compile with type witnesses.
Jason Dagit <[EMAIL PROTECTED]>**20080808015343] 
[Add thread synchronization to URL module and resume select() if interrupted by signal in curl module.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080810092810] 
[Handle error case with empty URL in URL.waitNextUrl function.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080809221755] 
[Better debug messages in URL module.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080809215247] 
[Add --debug-http flag to enable curl and libwww debug at run-time instead of compile-time.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080809154834] 
[UF8.lhs: remove unusued functions/imports/docs
[EMAIL PROTECTED] 
[Resolve issue974 : do not pass both -optc-g and -opta-g to GHC
Eric Kow <[EMAIL PROTECTED]>**20080807073620] 
[make this test more cross-platform
Simon Michael <[EMAIL PROTECTED]>**20080807103433] 
[document how to run unit tests
Simon Michael <[EMAIL PROTECTED]>**20080807030416] 
[move (most) failing tests to bugs for clean test output
Simon Michael <[EMAIL PROTECTED]>**20080806191336] 
[fix an old spelling error
Simon Michael <[EMAIL PROTECTED]>**20080806170432] 
[make searching for "test:" in makefile work
Simon Michael <[EMAIL PROTECTED]>**20080805222241] 
[run only normal (expected to pass) tests by default
Simon Michael <[EMAIL PROTECTED]>**20080805222108] 
[Downplay quantum mechanics link.
Eric Kow <[EMAIL PROTECTED]>**20080806124109
 Besides, darcs has far more than 3 users by now.
] 
[Make patch theory intro more inviting to math people.
Eric Kow <[EMAIL PROTECTED]>**20080806123411] 
[cleanup and slight rewrite of the test docs
Simon Michael <[EMAIL PROTECTED]>**20080806165949] 
[make order of running tests consistent
Simon Michael <[EMAIL PROTECTED]>**20080806172123] 
[small makefile refactoring: allow just the normal tests to be run, without bugs/*
Simon Michael <[EMAIL PROTECTED]>**20080805203242] 
[Rectify dist help
[EMAIL PROTECTED]
 Removed the "make dist" suggestion, the manual is a better place for that.
 Instead, make clear that it operates on a clean copy of the tree, and
 mention the "predist" functionality.
] 
[website: explain that darcs 2 is required to get the darcs source.
Simon Michael <[EMAIL PROTECTED]>**20080803181216] 
[Canonize Gaetan Lehmann and Daniel Buenzli.
Eric Kow <[EMAIL PROTECTED]>**20080730104357
 (for Daniel B, avoid an accent in his name)
] 
[configure: check for packages needed with split base.
Eric Kow <[EMAIL PROTECTED]>**20080730103840
 Now that all packages must be used explicitly.
] 
[fix type witness compile errors specific to ghc 6.8
Jason Dagit <[EMAIL PROTECTED]>**20080722182729] 
[avoid import of unused function fromMaybe.
David Roundy <[EMAIL PROTECTED]>**20080729172825] 
[configure: suggest regex-compat before text
Eric Kow <[EMAIL PROTECTED]>**20080725095336] 
[configure: mention Haskell in 'try installing' suggestion
Eric Kow <[EMAIL PROTECTED]>**20080725095015] 
[Typo (Text.Regex)
Eric Kow <[EMAIL PROTECTED]>**20080715121708] 
[Use haskeline to have a readline-like behavior when asking something to the user
[EMAIL PROTECTED]
 Unlike the implementations using readline or editline packages, this code
 code doesn't break the Ctrl-C behavior.
] 
[Improve generic rules for English plurals. 
Eric Kow <[EMAIL PROTECTED]>**20080604123728] 
[add configure check for Network.URI.
David Roundy <[EMAIL PROTECTED]>**20080711011914] 
[add -hide-all-packages to default GHCFLAGS.
David Roundy <[EMAIL PROTECTED]>**20080711010952] 
[add support for outputting patch numbers in darcs changes.
David Roundy <[EMAIL PROTECTED]>**20080710011211] 
[add support for matching single patches by index.
David Roundy <[EMAIL PROTECTED]>**20080710004512] 
[add support for matching ranges of patches (counting back from present).
David Roundy <[EMAIL PROTECTED]>**20080710003225] 
[Better avoid silly manpage error.
Trent W. Buck <[EMAIL PROTECTED]>**20080704024920
 
 It turned out only initialize's help string used 'quotes', so just
 remove them.  This makes init's docstring consistent with the others.
] 
[Missing period at end of sentence.
Trent W. Buck <[EMAIL PROTECTED]>**20080704024232] 
[darcs --overview no longer works, so don't document it.
Trent W. Buck <[EMAIL PROTECTED]>**20080704030804] 
[Avoid silly manpage error.
Trent W. Buck <[EMAIL PROTECTED]>**20080703010733
 man (nroff) treats an apostrophe in the first column specially,
 resulting in a syntax error without this patch.
 
 Ideally, all cases of 'foo' in the manpage (i.e. docstrings) should
 become `foo', since man -Tps turns ` and ' into left and right single
 quotes respectively.
] 
[obliterate whitespace in Darcs.Commands.Get
[EMAIL PROTECTED]
 'twas causing lhs/haddock difficulties where a \end{code} wasn't getting recognized.
] 
[rm haddock CPP business
[EMAIL PROTECTED]
 Try as I might, I can't see any reason to special-case some Haddock CPP logic to deal with some *commented-out guards*, unless CPP magically restores and uncomments the code if Haddock isn't being run.
] 
[make pull less verbose when --verbose flag is given.
David Roundy <[EMAIL PROTECTED]>**20080624170035] 
[fix makefile to remember to regenerate version information after running configure.
David Roundy <[EMAIL PROTECTED]>**20080624170001] 
[TAG 2.0.2
David Roundy <[EMAIL PROTECTED]>**20080624012041] 
Patch bundle hash:
be26953d17b58a797ba2ad4a2465bf933f2a9fe1
_______________________________________________
darcs-users mailing list
[email protected]
http://lists.osuosl.org/mailman/listinfo/darcs-users

Reply via email to