darcs

Issue 697 darcs apply => bus error (fixed with --disable-bytestring)

Title darcs apply => bus error (fixed with --disable-bytestring)
Priority bug Status resolved
Milestone Resolved in
Superseder Nosy List darcs-devel, dmitry.kurochkin, dons, gwern, kowey, markstos, thorkilnaur, tommy
Assigned To
Topics Darcs2

Created on 2008-02-16.17:33:49 by kowey, last changed 2009-08-27.14:09:06 by admin.

Files
File name Uploaded Type Edit Remove
bytestring.patch gwern, 2008-04-11.03:53:47 application/octet-stream
darcs5aba1e kowey, 2008-02-16.17:33:48 application/octet-stream
minimal-bundle kowey, 2008-02-23.16:50:11 application/octet-stream
restore.patch gwern, 2008-04-11.17:01:10 application/octet-stream
Messages
msg3496 (view) Author: kowey Date: 2008-02-16.17:33:48
Trying to apply this patch gives me a bus error.
Attachments
msg3497 (view) Author: kowey Date: 2008-02-16.18:04:11
I forgot to mention: this was trying to apply to the wxhaskell repository
http://darcs.haskell.org/wxhaskell on MacOS X

If it helps, I see this in my crash log:

PID:    1476
Thread: 0

Exception:  EXC_BAD_ACCESS (0x0001)
Codes:      KERN_PROTECTION_FAILURE (0x0002) at 0x00000000

Thread 0 Crashed:
0   libSystem.B.dylib 	0x9002225c memchr + 28

Thread 0 crashed with X86 Thread State (32-bit):
  eax: 0x0000560f  ebx: 0x003d98e8  ecx: 0x00000000  edx: 0xffffffff
  edi: 0x0000000a  esi: 0x0000560f  ebp: 0xbfffd748  esp: 0xbfffd73c
   ss: 0x0000001f  efl: 0x00010206  eip: 0x9002225c   cs: 0x00000017
   ds: 0x0000001f   es: 0x0000001f   fs: 0x00000000   gs: 0x00000037

Binary Images Description:
    0x1000 -   0x391fff darcs 	/Users/kowey/darcsImpl/unstable-hashed/darcs
  0x770000 -   0x7a2fff libssl.0.9.8.dylib 	/opt/local/lib/libssl.0.9.8.dylib
  0x7b6000 -   0x7c6fff libz.1.dylib 	/opt/local/lib/libz.1.dylib
 0x1008000 -  0x104dfff GMP 	/Library/Frameworks/GMP.framework/Versions/A/GMP
 0x1205000 -  0x1231fff libcurl.3.dylib 	/opt/local/lib/libcurl.3.dylib
 0x140b000 -  0x14fcfff libcrypto.0.9.8.dylib 	/opt/local/lib/libcrypto.0.9.8.dylib
0x8fe00000 - 0x8fe4afff dyld 46.16	/usr/lib/dyld
0x90000000 - 0x90171fff libSystem.B.dylib 	/usr/lib/libSystem.B.dylib
0x901c1000 - 0x901c3fff libmathCommon.A.dylib 	/usr/lib/system/libmathCommon.A.dylib
0x90bd2000 - 0x90bd9fff libgcc_s.1.dylib 	/usr/lib/libgcc_s.1.dylib
0x95d5b000 - 0x95d89fff libncurses.5.4.dylib 	/usr/lib/libncurses.5.4.dylib
msg3498 (view) Author: kowey Date: 2008-02-16.18:25:03
Ok, so it looks like my Data.ByteString stuff is at fault.

The following version of darcs works fine with --disable-bytestring.

Hmmph!  I guess we should try to figure out why this breaks.  It may be wise to
make --disable-bytestring the default for the time being.


darcs compiled on Feb 16 2008, at 18:17:24
# configured Sat Feb 16 18:15:22 GMT 2008
./configure /usr/local/share/config.site /usr/local/etc/config.site

Context:

[Make broken-pipe.sh test fail on MacOS X.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080207220914
 
 1) seq is non-portable, so that had to be replaced with something anyway.
 2) the test worked with 20 items, but failed with a 100
] 

[Pipe 'darcs foo --help' through a pager. 
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080207215526] 

[add more debug messages.
David Roundy <droundy@darcs.net>**20080207200156] 

[speed up pending handling.
David Roundy <droundy@darcs.net>**20080207200051
 In fixing a bug, I thoughtlessly made pending handling O(N^2) more often
 than it needs to be... which was the "safe" choice, because it was
 previously the "fast" code that had the bug.
] 

[add debug output regarding disabling of progress reports.
David Roundy <droundy@darcs.net>**20080207193719] 

[add progress reporting while writing patch file in record.
David Roundy <droundy@darcs.net>**20080207193649] 

[add a few more debug messages in record.
David Roundy <droundy@darcs.net>**20080207193626] 

[fix performance regression in unrecord.
David Roundy <droundy@darcs.net>**20080207193529
 This also reverts to the old behavior of producing unsorted patches when
 asked for record -a, but sorted patches when the -a flag is omitted.  :(
] 

[avoid giving excessive (usually useless) debug info.
David Roundy <droundy@darcs.net>**20080207191129] 

[define filterFL.
David Roundy <droundy@darcs.net>**20080207191113] 

[resolve conflict in Pull.lhs.
David Roundy <droundy@darcs.net>**20080206223143] 

[make Depends.lhs compile with type witnesses
Jason Dagit <dagit@codersbase.com>**20080206214552] 

[ratify another use of hGetContents.
David Roundy <droundy@darcs.net>**20080206184718] 

[cleanup in Pull.lhs.
David Roundy <droundy@darcs.net>**20080206184600] 

[Test for issue436.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080206163057
 As suggested by Edwin Thomson.
] 

[remove use of patchset_complement.
David Roundy <droundy@darcs.net>**20080206182548] 

[change Slurpy to not store the file as list of lines.
David Roundy <droundy@darcs.net>**20080206164113] 

[fix GHCFLAGS, so make ghci will work properly.
David Roundy <droundy@darcs.net>**20080206161052] 

[cut from OldFastPackedString same functions Eric cut from ByteString version.
David Roundy <droundy@darcs.net>**20080206155350] 

[Pipe help text through a pager.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080205210324] 

[Ability to pipe a document through a pager.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080205210313] 

[Remove ununsed functions from FastPackedString.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080205191951
 
   (!) :: PackedString -> Int -> Word8
   consPS :: Char -> PackedString -> PackedString
   mallocedCString2PS :: CString -> IO PackedString
   unpackWords :: PackedString -> [Word8]
   mapPS :: (Char -> Char) -> PackedString -> PackedString
   foldlPS :: (a -> Char -> a) -> a -> PackedString -> a
   foldrPS :: (Char -> a -> a) -> a -> PackedString -> a
   elemPS :: Char -> PackedString -> Bool
   spanPS :: (Char -> Bool) -> PackedString -> (PackedString, PackedString)
   breakFirstPairPS ::
   wordsPS :: PackedString -> [PackedString]
   splitWithPS :: (Char -> Bool) -> PackedString -> [PackedString]
   gzReadFileLazily :: FilePath -> IO LazyFile
   readFileLazily :: FilePath -> IO LazyFile
   readHandleLazily :: Handle -> IO [PackedString]
 
 We don't have any particular 'responsability' to keep FastPackedString
 generic.  If these functions aren't likely to be used in darcs code
 anytime soon, we might as well remove them.
] 

[Upgrade readIntPS to Data.ByteString version.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080205182938] 

[Fix 'patch cannot contain newlines' in broken-pipe.sh test.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080205163541] 

[Ratify Data.ByteString IO imports.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080205162823] 

[Upgrade more FastPackedString functions.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080205162710
 (!), unlinesPS (still concat . intersperse), findLastPS
] 

[Upgrade spanEndPS and breakPS to Data.ByteString version.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080205155420] 

[(Re)upgrade createPS and generatePS to Data.ByteString versions.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080205155322] 

[enable context printing of darcs-2 patches.
David Roundy <droundy@darcs.net>**20080205163917] 

[generalize context viewing a bit.
David Roundy <droundy@darcs.net>**20080205163511] 

[add isHunk method in effect, as precursor to more general context-showing code.
David Roundy <droundy@darcs.net>**20080205162221] 

[add test for issue68.
David Roundy <droundy@darcs.net>**20080205154147
 Note that I haven't been able to reproduce this bug, but from the
 description given by Eric, I expect that this should trigger it.  Or at
 least it'll give us some sort of a hint.
] 

[use bytestring automatically where available.
David Roundy <droundy@darcs.net>**20080205150513
 configure --disable-bytestring to disable this behavior.
] 

[Use DARCS_SSH when calling darcs transfer-mode.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080205144124] 

[Use copyUrl in copyRemotesNormal.
Dmitry Kurochkin <dmitry.kurochkin@gmail.com>**20080205002142] 

[Cleanup libwww configure check.
Dmitry Kurochkin <dmitry.kurochkin@gmail.com>**20080205001841] 

[Cleanup curl pipelining configure check.
Dmitry Kurochkin <dmitry.kurochkin@gmail.com>**20080205000717] 

[Fix configure check for curl_multi_timeout.
Dmitry Kurochkin <dmitry.kurochkin@gmail.com>**20080205000109] 

[Append CPPFLAGS to GHCFLAGS in autoconf.mk.in instead of configure.ac.
Dmitry Kurochkin <dmitry.kurochkin@gmail.com>**20080204235906] 

[Stricter use of BI.toForeignPtr in FastPackedString.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080205093000
 
 I don't know if this actually makes a difference.  Indeed, the intention behind
 this patch is to avoid introducing any extra laziness where none was found before.
] 

[Restore some original FastPackedString code.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080205092829
 It was hanging on some tests, or running out of stack space.
] 

[Restore old FastPackedString version of linesPS and unlinesPS.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080205092719
 They behave slightly differently with respect to newlines.
] 

[Add OldFastPackedString for people without the latest bytestring.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080205090659
 
 Data.ByteString was included with GHC 6.6, but it seems the
Data.ByteString.Internal
 part of the API was only introduced in a later version.
] 

[accept --partial instead of --lazy with warning.
David Roundy <droundy@darcs.net>**20080204175222] 

[Give a shorter help message when user supplies a bad command line.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080204170119
 
   darcs failed:  Missing argument:  [REPOSITORY]
   Usage: darcs send [OPTION]... [REPOSITORY]
   Send by email a bundle of one or more patches.
 
   See darcs help send for details.
 
 As suggested by Mark Stosberg [issue495].
] 

[export information to posthooks in DARCS_PATCHES and DARCS_FILES.
David Roundy <droundy@darcs.net>**20080204160710] 

[issue572: Add Some .waf files to the default boring list.
Mark Stosberg <mark@summersault.com>**20080203031517] 

[issue257: test for "push => incorrect return code when couldn't get lock"
Mark Stosberg <mark@summersault.com>**20080203011036] 

[[issue633] config detection of curl_multi_timeout presence for older curl
libraries.
Kevin Quick <quick@sparq.org>**20080203035602] 

[Start converting FastPackedString into a Data.ByteString wrapper.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080203235111] 

[move failing issue458 test to bugs/
David Roundy <droundy@darcs.net>**20080202202810] 

[issue496: move failing test to ./bugs
Mark Stosberg <mark@summersault.com>**20080202162828] 

[Don't use the builtin !; it has the wrong semantics.
Trent W. Buck <twb@cyber.com.au>**20080202103848] 

[Add functional sh test for issue496.
Trent W. Buck <twb@cyber.com.au>**20080202103816] 

[Add functional sh test for issue458.
Trent W. Buck <twb@cyber.com.au>**20080202095122] 

[Typo.
Trent W. Buck <twb@cyber.com.au>**20080202083642] 

[Typo.
Trent W. Buck <twb@cyber.com.au>**20080202083347] 

[clean up files we only speculatively downloaded.
David Roundy <droundy@darcs.net>**20080202164906] 

[provide nicer output when identifying repository.
David Roundy <droundy@darcs.net>**20080202164843] 

[print progress reports less frequently.
David Roundy <droundy@darcs.net>**20080202161901
 On my laptop this provides a noticeable performance improvement.  And to
 me, having less rapid jumping on the screen is also a bonus.
] 

[improved test for binaries: We now have both a positive and negative test
Mark Stosberg <mark@summersault.com>**20080202150109] 

[issue469: test that _darcs/prefs/binaries matches against full path
Mark Stosberg <mark@summersault.com>**20080202024805] 

[simplify speculation on patch contents.
David Roundy <droundy@darcs.net>**20080202142649] 

[use faster queue type in URL.hs.
David Roundy <droundy@darcs.net>**20080202142619] 

[refactor speculate a bit.
David Roundy <droundy@darcs.net>**20080201202752] 

[try to make speculation and pipelining help us.
David Roundy <droundy@darcs.net>**20080201181524] 

[avoid parsing all patches in darcs get.
David Roundy <droundy@darcs.net>**20080201214747] 

[add friendly interface for speculative pipelining of downloads.
David Roundy <droundy@darcs.net>**20080201154000] 

[Fix --no-ephemeral.
nicolas.pouillard@gmail.com**20080201153821] 

[rename segregate{F,R}L into partition{F,R}L.
nicolas.pouillard@gmail.com**20080201153557] 

[Fix darcs get --lazy (Partial was used instead of Lazy).
nicolas.pouillard@gmail.com**20080201153107] 

[match absolute paths on binaries regexps.
David Roundy <droundy@darcs.net>**20080201152320] 

[avoid needless locking of hashed repositories.
David Roundy <droundy@darcs.net>**20080201150941] 

[don't display "progress" when running --list-options.  (issue635)
David Roundy <droundy@darcs.net>**20080201144458] 

[give feedback after successful push or put.
David Roundy <droundy@darcs.net>**20080131230525] 

[use System.Process when calling darcs apply
David Roundy <droundy@darcs.net>**20080131230305
 This allows us to get immediate feedback as to how the remote apply is
 proceeding.
] 

[use System.Process for running ssh and other commands.
David Roundy <droundy@darcs.net>**20080131223831] 

[fix issue 257 by not ignoring exit code of apply.
David Roundy <droundy@darcs.net>**20080131220054] 

[fix bug in whatsnew when replace is used.
David Roundy <droundy@darcs.net>**20080131201648] 

[Show a replace+whatsnew -s bug.
nicolas.pouillard@gmail.com**20080130142001] 

[define segregateFL and segregateRL utility functions.
David Roundy <droundy@darcs.net>**20080131200620] 

[Fix an error message, in case of using subcommands.
nicolas.pouillard@gmail.com**20080131184422] 

[default to get copying all patches.
David Roundy <droundy@darcs.net>**20080131195151
 You can use --lazy (or ^C) to get a lazy repository.
] 

[add test (failing) for issue257 (from vmiklos, thanks!)
David Roundy <droundy@darcs.net>**20080131195118] 

[fix bug in unrevert.  (issue366)
David Roundy <droundy@darcs.net>**20080131192202] 

[give progress report on initial checking of repository validity.
David Roundy <droundy@darcs.net>**20080131181249
 I'm not sure how much good this will do, since the downloading function
 probably blocks progress output.
] 

[clean up in unrevert_cancel.sh
David Roundy <droundy@darcs.net>**20080131175149] 

[issue366: test when unrevert reports a bug
Mark Stosberg <mark@summersault.com>**20080131042313] 

[make bunchFL compile with type witnesses by adding a signature.
David Roundy <droundy@darcs.net>**20080131155718] 

[refactor convert.
David Roundy <droundy@darcs.net>**20080131155547
 This also makes convert slightly more efficient in cases where there is a
 large first patch.
] 

[make darcs get --hashed safe on case-insensitive filesystems.
David Roundy <droundy@darcs.net>**20080131155112] 

[define handy bunchFL function for grouping patches into batches.
David Roundy <droundy@darcs.net>**20080131154631] 

[fix conflict-doppleganger test to work with change in flags get accepts.
David Roundy <droundy@darcs.net>**20080131153250] 

[oops, the build of the manual broke when I hid convert...
David Roundy <droundy@darcs.net>**20080130230705
 
 rolling back:
 
 Wed Jan 30 16:39:45 EST 2008  David Roundy <droundy@darcs.net>
   * hide convert.
   Since this is a command that *must* be performed only once per group of
   related repositories, I think making it only visible in the documentation
   should reduce errors.
 
     M ./src/Darcs/TheCommands.lhs -1 +1
] 

[roll back foolish file modification time hack.
David Roundy <droundy@darcs.net>**20080130224322
 
  As it turns out, I didn't understand what "ctime" means, thinking that it
  was actually a "creation" time.  But alas, ctime changes whenver mtime
  changes, so we can't use their equality to check if the mtime has been
  set.  Ugh.  I feel silly.
 
 rolling back:
 
 Wed Jan 30 12:12:32 EST 2008  David Roundy <droundy@darcs.net>
   * employ new hack to avoid need to wait for clock to tick.
   The new hack is that if the creation time and modification time of a file
   in the pristine cache are identical, then we don't believe it's meaningful
   if the modification time happens to match that of the file in the working
   directory.
 
     M ./src/Darcs/Lock.lhs -1 +4
     M ./src/Darcs/Repository/Prefs.lhs -4 +8
     M ./src/Darcs/SlurpDirectory.lhs -12 +9
] 

[refactor readPatchInfo using Maybe monad.
David Roundy <droundy@darcs.net>**20080130220306] 

[fix issue46, parsing problem caused by wrong use of error.
David Roundy <droundy@darcs.net>**20080130220129] 

[hide convert.
David Roundy <droundy@darcs.net>**20080130213945
 Since this is a command that *must* be performed only once per group of
 related repositories, I think making it only visible in the documentation
 should reduce errors.
] 

[remove --darcs-2 from get options (issue606)
David Roundy <droundy@darcs.net>**20080130213712] 

[fix imports for win32.
David Roundy <droundy@darcs.net>**20080130212629] 

[make rollback default to a long comment indicating what was rolled back.
David Roundy <droundy@darcs.net>**20080130200814] 

[employ new hack to avoid need to wait for clock to tick.
David Roundy <droundy@darcs.net>**20080130171232
 The new hack is that if the creation time and modification time of a file
 in the pristine cache are identical, then we don't believe it's meaningful
 if the modification time happens to match that of the file in the working
 directory.
] 

[fix build failure under win32 (hopefully).  Sorry!
David Roundy <droundy@darcs.net>**20080130170953] 

[refactor issue154 test to match Eric Kow's echo_to_darcs() refactor. The test
should pass.
Mark Stosberg <mark@summersault.com>**20080129004921] 

[Update docs for echo_to_darcs() to match Eric Kow's code refactor
Mark Stosberg <mark@summersault.com>**20080129004448] 

[Adding Test/Builder/Module.pm to the tree, unmodified.
Mark Stosberg <mark@summersault.com>**20080129003230
     Thanks to Kevin Quick for noticing this was missing.
] 

[Test Suite: make sure to move outside of tmp repo, so it can get cleaned-up
properly
Mark Stosberg <mark@summersault.com>**20080126171642] 

[Update add_in_subdir.pl to work with updated init_tmp_repo()
Mark Stosberg <mark@summersault.com>**20080126164158] 

[Test Suite: Improve init_tmp_repo():
Mark Stosberg <mark@summersault.com>**20080126160916
     - Quit including random chars in the directory name (David's suggestion)
     - Allow DARCS_KEEP_TMPDIR to control whether we keep the tmp repos for
inspection (default: false)
     - More reliably clean-up after ourselves then the "File::Temp" method did. 
     ***END OF DESCRIPTION***
 
 Place the long patch description above the ***END OF DESCRIPTION*** marker.
 The first line of this file will be the patch name.
 
 
 This patch contains the following changes:
 
 M ./tests/lib/perl/Test/Darcs.pm -3 +17
] 

[remove clean-up, which should now happen automatically
Mark Stosberg <mark@summersault.com>**20080126025241] 

[Shave several minutes off test suite runs by pre-building large repos
Mark Stosberg <mark@summersault.com>**20080126184048] 

[make sure we are outside of the tempdir so the auto-cleanup can happen.
Mark Stosberg <mark@summersault.com>**20080124044245] 

[improved tempdir handling-- include the script name in the directory name, and
better auto-cleanup
Mark Stosberg <mark@summersault.com>**20080124044137] 

[issue154: regression test for pull with a directory removal conflict
Mark Stosberg <mark@summersault.com>**20080127053811] 

[rollback features that apparently are needed.
David Roundy <droundy@darcs.net>**20080129203711
 These seem to be needed (at least some of them) to do
 
 darcs get http://darcs.net/repos/unstable
] 

[[issue558] Singular 'do you want to revert this change?'
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080129163633] 

[Refactor SelectChanges English.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080129163619] 

[Add some simple English morphology.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080129163613] 

[fix ssh connection business to work if one darcs command accesses two distinct
repos on same server.
David Roundy <droundy@darcs.net>**20080129162911] 

[Remove features not used in parsing patch dates.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080129092401] 

[[issue625] Non-recursive --repodir.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080128193459] 

[Do not announce recipients in send -O.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080128151812] 

[Test for issue625.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080128150059] 

[[issue457] Check match syntax early.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080128144840] 

[ratify use of hGetContents.
David Roundy <droundy@darcs.net>**20080129150247] 

[Fix curl version check for pipelining.
Dmitry Kurochkin <dmitry.kurochkin@gmail.com>**20080128223731] 

[issue612: regression test demonstrates that hashed and darcs-2 formats resist a
certain kind of corruption.
Mark Stosberg <mark@summersault.com>**20080126031445
    (but the old fashioned repo format does not).  
] 

[Extract external-merge from {apply,pull} conflict options.
nicolas.pouillard@gmail.com**20080128221810] 

[Don't emit \r when the handle is a terminal.
nicolas.pouillard@gmail.com**20080128221705] 

[Replace unpull by obliterate as much as possible.
nicolas.pouillard@gmail.com**20080117152443] 

[Move rollback to another section of TheCommands.
nicolas.pouillard@gmail.com**20080117125340] 

[give progress output when getting over ssh.
David Roundy <droundy@darcs.net>**20080128222133] 

[remove progress output that seems too often to be unhelpful.
David Roundy <droundy@darcs.net>**20080128221922] 

[nicer error message in ssh connection code.
David Roundy <droundy@darcs.net>**20080128221229] 

[use new ssh connection for copySSHs as well (speed my test up by 20% from the
sftp code).
David Roundy <droundy@darcs.net>**20080128220858] 

[fix bug introduced by rewrite of IsoDate module.
David Roundy <droundy@darcs.net>**20080128220647
 The problem was that this module served two functions.  One was to allow
 nice date matching, and the other was to allow parsing of old patches,
 created before we moved to the simple 20080127... format.  I've split the
 latter function into a separate "frozen" module, so that we can safely
 develop more friendly date-parsing code.
] 

[Test infrastructure improvement: Add debug mode to Perl test scripts.
Mark Stosberg <mark@summersault.com>**20080126154444
   Set this to see the output of every 'darcs' call made through this script:
   DARCS_DEBUG=1 ./bin/prove -v add.pl pull.pl
] 

[reuse ssh connection using transfer-mode.
David Roundy <droundy@darcs.net>**20080128201613] 

[try using darcs transfer-mode if available.
David Roundy <droundy@darcs.net>**20080128194406
 Note that this doesn't yet gain us any performance, it's just a step
 towards a faster connection-sharing approach.
] 

[issue227: regression test for get --context with an absolute path
Mark Stosberg <mark@summersault.com>**20080126021139] 

[flush output in transfer-mode.
David Roundy <droundy@darcs.net>**20080128193910] 

[add transfer-mode for faster ssh access.
David Roundy <droundy@darcs.net>**20080128165256] 

[refactor SSH code into own module.
David Roundy <droundy@darcs.net>**20080128172658] 

[remove unneeded export from URL.
David Roundy <droundy@darcs.net>**20080128172534] 

[Fix optimize_relink for POSIX environment (no cp -a or du -l support; now needs
perl)
Kevin Quick <quick@sparq.org>**20080125220119] 

[Test Fix: make test pass when there is a space in the darcs repo path
Mark Stosberg <mark@summersault.com>**20080126170531] 

[Test Fix: replace system calls with quoted function calls
Mark Stosberg <mark@summersault.com>**20080126170253] 

[Test fix: work when darcs repo root has a space in it
Mark Stosberg <mark@summersault.com>**20080126165818] 

[replace system call with Perl for better portability
Mark Stosberg <mark@summersault.com>**20080124013552] 

[Remove more unneeded "--author" flags in the Perl test scripts, because the
harness takes care of them
Mark Stosberg <mark@summersault.com>**20080120010553] 

[remove now-unused perl_harness
Mark Stosberg <mark@summersault.com>**20080120005850] 

[Merge Curl and Libwww to URL module.
Dmitry Kurochkin <dmitry.kurochkin@gmail.com>**20080127182001] 

[Fix darcs version in libwww user agent.
Dmitry Kurochkin <dmitry.kurochkin@gmail.com>**20080127181548] 

[Cleanup libwww module, better error handling, follow redirects (closes issue621).
Dmitry Kurochkin <dmitry.kurochkin@gmail.com>**20080127152710] 

[Rework libcurl module: use multi interface, support pipelining.
Dmitry Kurochkin <dmitry.kurochkin@gmail.com>**20080127151756] 

[Remove TimeDiff experiment.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080128115307] 

[Simplify date matcher and fix tz-related bug.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080128115214
 
 When matching partial dates, we should not trust the ctYear, etc on the
 CalendarTime because it may vary by timezone.  This also leads to a
 simplification in the tentative date matching.
 
 Note: subtle change in matching.  Now all matching is done
 within a range, excluding the latter date.  We check
            date <  end
 instead of date <= end
] 

[Add ability to see skipped/included patches when verbose flag present.
Kevin Quick <quick@sparq.org>**20080127190546] 

[Update patch selection feedback for messages more appropriate to the job being
performed.
Kevin Quick <quick@sparq.org>**20080126035000] 

[Add a comment for Real patches.
nicolas.pouillard@gmail.com**20080128085313] 

[beautify remove_subsequenceFL.
David Roundy <droundy@darcs.net>**20080125225637] 

[beautify remove_subsequenceRL.
David Roundy <droundy@darcs.net>**20080125225440] 

[we removed --modernize-patches, so remove the test case.
David Roundy <droundy@darcs.net>**20080125225423] 

[eliminate --modernize-patches and make --uncompress work (issue620)
David Roundy <droundy@darcs.net>**20080125220624] 

[make hashed repositories respect --dont-compress.
David Roundy <droundy@darcs.net>**20080125210529] 

[More aggressive testing of date parser.
Eric Kow <eric.kow@loria.fr>**20080127164254
 
 Using record --pipe to set patch dates.
] 

[Support more interactive use of echo_to_darcs in test harness.
Eric Kow <eric.kow@loria.fr>**20080127164241] 

[Overhaul date parsing code.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080127163040
 
 - Add the ability to match on partial ISO 8601 dates, for example,
   treating 2008-08 as matching the whole month and not just the
   first day of that month
 - Fix some bugs in the parsing of fancy English dates
 - Fix bugs in the interpretation of English dates (for example,
   the interpretation of '3 days before last week' was for all
   patches since that date, and not for all patches *on* that
   date)
 - Treat user input as being in the local timezone
 - Make the matching code a bit more compact
] 

[Make documentation on dates more explicit.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080127162931] 

[Fix ChangeLog entry.
Eric Kow <eric.kow@loria.fr>**20080125232739] 

[resolve conflict with Eric on controlMasterPath.
David Roundy <droundy@darcs.net>**20080125203903] 

[Refactor y/n prompts.
Eric Kow <eric.kow@gmail.com>**20071019213307] 

[issue578: steve and monica test for rolling back a rollback
Mark Stosberg <mark@summersault.com>**20080118031606] 

[eliminate lazy parsing of patches, which gives bad error messages (issue364)
David Roundy <droundy@darcs.net>**20080125191836] 

[[issue492] Check that context file actually exists in darcs get.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080125183741] 

[[issue227] Platform-independent absolute paths in get --context
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080125181702] 

[make uniqueoptions.sh test give friendlier output.
David Roundy <droundy@darcs.net>**20080125183430] 

[fix code to avoid duplicate --verbose in --help (so tests will pass).
David Roundy <droundy@darcs.net>**20080125183420] 

[Make verbosity flags advanced options universally.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080125181005] 

[adding File::Temp 0.20 to tree for more consistent test results. It is
GPL-licensed.
Mark Stosberg <mark@summersault.com>**20080124033049] 

[update restrictive perms test to run a temporary directory and clean up after
itself.
Mark Stosberg <mark@summersault.com>**20080123000417
     Running in a tru temporary directory allows the potential to run tests in
parallel.
] 

[update some ChangeLog entries to also credit those who contributed through bug
reporting, test writing or feedback. 
Mark Stosberg <mark@summersault.com>**20080122235435] 

[ issue602: part 1: Always prefer our private copy of Test::More over the
system-wide one for more consistent results
Mark Stosberg <mark@summersault.com>**20080124005407] 

[ issue602, part 2: freshen our versions of Test::More and Test::Builder
Mark Stosberg <mark@summersault.com>**20080123013642] 

[More error messages for libwww.
Dmitry Kurochkin <dmitry.kurochkin@gmail.com>**20080124092600] 

[issue608: a new test for 'mv', following Zooko's bug report
Mark Stosberg <mark@summersault.com>**20080124013856] 

[report progress in writing the inventory out for hashed repos.
David Roundy <droundy@darcs.net>**20080125172017] 

[make empty key case of progress reporting fast.
David Roundy <droundy@darcs.net>**20080125171859] 

[fix issue where we overwrote prompt with progress info.
David Roundy <droundy@darcs.net>**20080125164609] 

[fix bug where we used show on an exception (and thus printed "User error").
David Roundy <droundy@darcs.net>**20080125164209
 This partially addresses issue168 by improving the error message.
] 

[add gnulib sha1.c file as a faster sha1 option.
David Roundy <droundy@darcs.net>**20080123212502] 

[fix embarrassing bug in External.
David Roundy <droundy@darcs.net>**20080125152329
 (which demonstrates that I didn't compile before pushing)
] 

[for now, print progress reports to stdout.
David Roundy <droundy@darcs.net>**20080125152105
 My hope is that this will alleviate some of the issues with progress
 reports overwriting prompts.
] 

[revamp progress reporting, making it more efficient and adding more output.
David Roundy <droundy@darcs.net>**20080125151540
 Note that there is still at least one time sink that remains to be identified.
] 

[avoid creating darcs-ssh if we aren't using ControlMaster. (issue613)
David Roundy <droundy@darcs.net>**20080125150846] 

[fix bug where darcs-ssh got even worse name (issue613).
David Roundy <droundy@darcs.net>**20080125150355] 

[provide more detailed progress reports in HashedIO.
David Roundy <droundy@darcs.net>**20080124145156] 

[print additional debug data in Progress.
David Roundy <droundy@darcs.net>**20080124145114] 

[add a few more debug messages in Repository.Internal.
David Roundy <droundy@darcs.net>**20080124144829] 

[fix incorrect report that we were reading patches.
David Roundy <droundy@darcs.net>**20080124125040] 

[reenable mandatory sha1 checks, now that we can link with a faster sha1.
David Roundy <droundy@darcs.net>**20080123203104] 

[remove (broken) git support and add openssl sha1 support.
David Roundy <droundy@darcs.net>**20080123202025
 These two changes got merged together as I was introducing the configure.ac
 changes to support openssl as a sha1 alternative to our Haskell code.
 
 (Yes, I'm lazy.)
] 

[remove redundant hash checks in hashed IO code.
David Roundy <droundy@darcs.net>**20080123173022] 

[output nicer progress in convert.
David Roundy <droundy@darcs.net>**20080123170428] 

[output timings when --timings is specified.
David Roundy <droundy@darcs.net>**20080123170314] 

[remove inaccurate message in convert.
David Roundy <droundy@darcs.net>**20080123170243] 

[use debugMessage in HashedIO.
David Roundy <droundy@darcs.net>**20080123160835] 

[add --timings flag (that as yet does nothing).
David Roundy <droundy@darcs.net>**20080123154931] 

[Major Perl test suite clean-up.
Mark Stosberg <mark@summersault.com>**20080120035651
     The primary purpose of this patch was make sure all the tests are executed in
     randomly named directories, which allows us to run Perl tests in parallel, 
     without the directory names collided. 
 
     This isn't enabled by default for "make test", but it is there to play with.
     In the test directory, you can now do:
 
     ./bin/prove -j9 *.pl 
     
     to run 9 tests in parallel. There is also "--fork"
     option which should be a win on multi-CPU computers. 
     See "perldoc ./bin/prove" for details. 
 
     As part of this, a lot of boiler-plate code at the top and bottom of the
     scripts could be eliminated, and I made few other minor style clean-ups
     while I had the files open. 
 
     There should be no functional changes to the tests. 
] 

[Take advantage of new Perl testing infrastructure by eliminating needless
--ignore-time mentions
Mark Stosberg <mark@summersault.com>**20080120005242] 

[Take advantage of updated Perl testing infrastructure by removing needless
author mentions in tests
Mark Stosberg <mark@summersault.com>**20080120004503] 

[use --ignore-time in tests instead of "sleep", for faster, more reliable results
Mark Stosberg <mark@summersault.com>**20080118030241] 

[Issue395: avoid single letter patch names in the test suite.  
Mark Stosberg <mark@summersault.com>**20080118020634] 

[add regression test for amend-record removed file
Tommy Pettersson <ptp@lysator.liu.se>**20080122223231] 

[use UTC in date matching test untill match handles time zones
Tommy Pettersson <ptp@lysator.liu.se>**20080122134322] 

[fix bug with timestamps and obliterate.
David Roundy <droundy@darcs.net>**20080122224607] 

[Test: unpull may hide changes when using timestamp optimisation.
me@mornfall.net**20080122222513] 

[avoid printing totals that are less than our current progress.
David Roundy <droundy@darcs.net>**20080122210546] 

[TAG 2.0.0pre3
David Roundy <droundy@darcs.net>**20080122200612] 

[fix bug in restrictive_upstream_permissions test, and mark it as passing.
David Roundy <droundy@darcs.net>**20080122200429] 

[match against any repo (not just last) in determining version/state.
David Roundy <droundy@darcs.net>**20080122194501] 

[add a few changelog entries.
David Roundy <droundy@darcs.net>**20080122194307] 

[avoid a withCurrentDirectory if there's nothing to test.
David Roundy <droundy@darcs.net>**20080122192426] 

[Libwww: fix invalid read reported by valgrind.
Dmitry Kurochkin <dmitry.kurochkin@gmail.com>**20080122162936] 

[fix obliterate to work even on old patches before tags.
David Roundy <droundy@darcs.net>**20080122150520] 

[make match_a_patch and friends return true for all patches if no match is
specified.
David Roundy <droundy@darcs.net>**20080122150210] 

[fix changes_moved_files bug.
David Roundy <droundy@darcs.net>**20080122141421] 

[mark optimize-relink as passing now.
David Roundy <droundy@darcs.net>**20080121191822] 

[don't compate pending and pending.tentative in optimize_relink.sh.
David Roundy <droundy@darcs.net>**20080121191656] 

[add patch to repo in optimize_relink.sh.
David Roundy <droundy@darcs.net>**20080121191642] 

[handle relative sibling directory properly.
David Roundy <droundy@darcs.net>**20080121191225] 

[simplify optimize --relink test, always calling directory temp.
David Roundy <droundy@darcs.net>**20080121182231] 

[if fs doesn't support hard links, we should pass the relink test.
David Roundy <droundy@darcs.net>**20080121181647] 

[Libwww new API: waitUrl, copyUrlFirst added; copyUrls removed.
Dmitry Kurochkin <dmitry.kurochkin@gmail.com>**20080120215022] 

[avoid overwriting prompt when waiting for input.
David Roundy <droundy@darcs.net>**20080121162814] 

[add withoutProgress to halt progress messages for a bit.
David Roundy <droundy@darcs.net>**20080121162513] 

[add some changelog entries
Tommy Pettersson <ptp@lysator.liu.se>**20080120003041] 

[attempted fix for: issue597: errors.xml not installed in installserver target
Mark Stosberg <mark@summersault.com>**20080120053617] 

[Add README.test_maintainers.txt as basic test-suite documentation.
Mark Stosberg <mark@summersault.com>**20080120051956
     The "future of testing darcs" section is my own opinion. Others
     are welcome that, wiki-style.
] 

[Add Parallel::Iterator 1.00 to tree, unmodified. It supports parallel testing
and is GPL.
Mark Stosberg <mark@summersault.com>**20080120034627] 

[avoid running an unneceessary test in the "old fashioned" context
Mark Stosberg <mark@summersault.com>**20080120023410] 

[update add_in_subdir.pl to use init_tmp_repo()
Mark Stosberg <mark@summersault.com>**20080120022059] 

[Update add.pl to use init_tmp_repo syntax
Mark Stosberg <mark@summersault.com>**20080120015614] 

[add new "init_tmp_repo" function to Perl test infrastructure, to to further
simplify tests.
Mark Stosberg <mark@summersault.com>**20080120015423] 

[Provide the same default author address for the shell scripts that we do for Perl.
Mark Stosberg <mark@summersault.com>**20080120010824
     This should allow them to be shorter as well. 
] 

[replace "perl_harness" with the more powerful and flexible "prove" script.
Mark Stosberg <mark@summersault.com>**20080120003101
     See "perldoc bin/prove" for feature descriptions. 
] 

[Consolidate Perl test infrastructure by move code out of perl_harness into
Test::Darcs.
Mark Stosberg <mark@summersault.com>**20080120001913
     As part of this, we also explicity set a default author email address in
the environment,
     which will allow us to further simplify Perl test scripts.
] 

[Adding Test::Harness 3.07 to the tree.
Mark Stosberg <mark@summersault.com>**20080119235714
     These are licensed under same terms as Perl, which includes the GPL. 
     These form the foundation of a more flexible and powerful Perl testing harness.
     They are unmodified except for minor changes to the "prove" script
     so that can find the new Perl libraries. 
] 

[issue562: Update the .sh scripts and the shell_harness so the tests can succeed
when the path name has a space in it. 
Mark Stosberg <mark@summersault.com>**20080121031103] 

[issue562: update Perl test infrastructure so all Perl tests pass with a space
in the path to darcs
Mark Stosberg <mark@summersault.com>**20080121014246] 

[issue600: bug fix refinement sent on behalf of twb
Mark Stosberg <mark@summersault.com>**20080121040050] 

[issue600: a test for optimize --relink
Mark Stosberg <mark@summersault.com>**20080121034028] 

[print progress messages to stderr.
David Roundy <droundy@darcs.net>**20080121154515
 Note that to get clean results, we still need to print overwrite spaces to
 stdout, so I'm not sure this is the best of plans.
] 

[make changes show no progess unless debug mode is on.
David Roundy <droundy@darcs.net>**20080121151145] 

[make progress report quieter.
David Roundy <droundy@darcs.net>**20080119171250] 

[no progress reports when running quietly.
David Roundy <droundy@darcs.net>**20080119165947] 

[change directory name in which we run tests.
David Roundy <droundy@darcs.net>**20080119165251] 

[fix bugs driver to not fail on known bugs.
David Roundy <droundy@darcs.net>**20080119164642] 

[issue244: test how 'changes' works with file names moved in the working directory
Mark Stosberg <mark@summersault.com>**20080119051151] 

[Mostly updates to use File::Slurp in more Perl test scripts
Mark Stosberg <mark@summersault.com>**20080119043737
     By avoiding direct system calls, the scripts become more portable. 
] 

[issue157: A test for how rollback handles dependencies and conflicts.
Mark Stosberg <mark@summersault.com>**20080119034531] 

[Adding File-Slurp-9999.12 perl module to tree, to add with testing. 
Mark Stosberg <mark@summersault.com>**20080119032726
     It is licensed under the GPL, and includes easy functions
     to read, write and append to files. 
] 

[issue174: behave better when we want to obliterate a patch that comes before a
tag. (a test)
Mark Stosberg <mark@summersault.com>**20080119053111] 

[issue595: A test when darcs fails with a possibly-avoidable permissions error
Mark Stosberg <mark@summersault.com>**20080119014220] 

[give reasonable answer in impossible cases.
David Roundy <droundy@darcs.net>**20080119161935] 

[add more progress annotations.
David Roundy <droundy@darcs.net>**20080119140141] 

[fix bugs in unrecord.sh.
David Roundy <droundy@darcs.net>**20080119000839] 

[allow debug output from unrecord and friendds.
David Roundy <droundy@darcs.net>**20080119000801] 

[move ApplyPatches to use Progress framework.
David Roundy <droundy@darcs.net>**20080118224309] 

[move get to use new progress framework.
David Roundy <droundy@darcs.net>**20080118220003] 

[add progress-reporting framework.
David Roundy <droundy@darcs.net>**20080118212816] 

[issue549 - Pekka Pessi's rollback test.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080117205705] 

[Add test for issue194.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080117204147
 Prior to darcs2, this triggered a bug in function reconcile_unwindings.
] 

[fix issue381, send allows --edit-description with --output.
David Roundy <droundy@darcs.net>**20080117210250] 

[fix bug in pull.pl test.
David Roundy <droundy@darcs.net>**20080117205042] 

[make progress messages print with debugMessage.
David Roundy <droundy@darcs.net>**20080117203354] 

[Tell user when we are checking for conflicts.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080117201208
 Otherwise we mislead the user into thinking the slow part is the
 'diffing dir...'
] 

[Actually run perl tests.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080117200149
 Fix my harness refactor.
] 

[tiny cleanup in Send.
David Roundy <droundy@darcs.net>**20080117191703] 

[move debugMessage to Darcs.Utils.
David Roundy <droundy@darcs.net>**20080117190043] 

[fix bug in running of test suite with hashed repos and add test for bug.
David Roundy <droundy@darcs.net>**20080117185403] 

[add a couple more debug messages.
David Roundy <droundy@darcs.net>**20080117185059] 

[clean up debug output in record.
David Roundy <droundy@darcs.net>**20080117183922] 

[fix bug where record --look-for-adds left patches in pending.
David Roundy <droundy@darcs.net>**20080117182618] 

[Canonize Andrew J. Kroll and Erik Schnetter.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080117162329
 
 Wrong email address for Erik.  Googled name for Andrew.
] 

[Fix <cannot stat `../tests/{lib,perl_harness}'> in Makefile.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080117172215] 

[Refactor test/bug harness calls in Makefile.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080117171706] 

[Move issue381 test to bugs directory.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080117161704] 

[Added test for issue381.
Marnix Klooster <marnix.klooster@gmail.com>**20070109210835] 

[mark look_for_add.sh as buggy.
David Roundy <droundy@darcs.net>**20080117160348] 

[Check that using 'record --look-for-add --all' left an empty pending patch.
nicolas.pouillard@gmail.com**20080117115159] 

[update docs on rollback.
David Roundy <droundy@darcs.net>**20080117152948] 

[libwww: do not fail when server reports Content-Encoding.
Dmitry Kurochkin <dmitry.kurochkin@gmail.com>**20080117121621] 

[libwww: use waitNextUrl instead of libwww_wait_next_url in copyUrl.
Dmitry Kurochkin <dmitry.kurochkin@gmail.com>**20080117121544] 

[add changelog entry for rollback.
David Roundy <droundy@darcs.net>**20080116212037] 

[rollback my "simplification" of conflict options for pull and apply.
David Roundy <droundy@darcs.net>**20080116211650] 

[eliminate apply_conflict_options and pull_[same] in favor of unified
conflict_options.
David Roundy <droundy@darcs.net>**20080116205623] 

[reimplement rollback.
David Roundy <droundy@darcs.net>**20080116203644] 

[fix pull.pl test to show off rollback error.
David Roundy <droundy@darcs.net>**20080110230904] 

[Use http://darcs.net/repos/stable instead of http://abridgegame.org/darcs.
nicolas.pouillard@gmail.com**20080116191035] 

[Add --{allow,dont-allow,mark}-conflicts to darcs pull.
nicolas.pouillard@gmail.com**20080116193426
 
 This patch also merge the --external option to pull_conflicts_options
 like with apply.
] 

[fix bug where get could produce a darcs-2 repository from a darcs-1 repo
incorrectly.
David Roundy <droundy@darcs.net>**20080116194547] 

[fix replacePristine to work regardless of current working directory.
David Roundy <droundy@darcs.net>**20080116162528
 This is intended to be a property of all Repository functions except those
 that explicitly mention the current directory in their name.
] 

[treat errors in reading current pristine cache as corruption in darcs repair.
David Roundy <droundy@darcs.net>**20080116162427] 

[make withCurrentDirectory succeed even if old directory has been removed.
David Roundy <droundy@darcs.net>**20080116162358] 

[fixed bug triggered by conflict-doppleganger test.
David Roundy <droundy@darcs.net>**20080116161548] 

[make doppelganger test more verbose.
David Roundy <droundy@darcs.net>**20080116161421] 

[Fix darcs repair with darcs1 format.
nicolas.pouillard@gmail.com**20080116024352
 
 Using  withCurentDirectory  was  wrong  because this function wants to restore
 the  current  directory.  In  this  case it no longer exists (.../newpristine)
 because renamed to .../pristine.
] 

[Add a test case for darcs repair.
nicolas.pouillard@gmail.com**20080116023943
 
 In fact both darcs1 and hashed format are broken.
] 

[fix bugs in date parsing pointed out by Mark.
David Roundy <droundy@darcs.net>**20080115235341] 

[treat partially-specified dates as more vague matches.
David Roundy <droundy@darcs.net>**20080115213601
 i.e. if you --match "date 2007" you'll get all the patches in 2007, not
 just those on January 1, 2007.
] 

[issue31, issue187: Update date matching so we test for an actual match in some
cases, not just date parsing.
Mark Stosberg <mark@summersault.com>**20080110030400
 This revealed some bugs which have yet to be fixed, so the test is still failing. 
] 

[fix perl bug script code.
David Roundy <droundy@darcs.net>**20080115215954] 

[add some changelog entries
Tommy Pettersson <ptp@lysator.liu.se>**20080115214838] 

[add some changelog entries
Tommy Pettersson <ptp@lysator.liu.se>**20071111204931] 

[improve existing-bug test suite driver.
David Roundy <droundy@darcs.net>**20080115204455] 

[mark doppleganger test as currently buggy.
David Roundy <droundy@darcs.net>**20080115201835] 

[add directory for unresolved bug test scripts.
David Roundy <droundy@darcs.net>**20080115201733] 

[Issue81: Add test which shows that old and hashed formats consider
dopplegangers a conflict, but the darcs-2 format doesn't.
Mark Stosberg <mark@summersault.com>**20080112233151] 

[major speedup in applyHashed.
David Roundy <droundy@darcs.net>**20080115191825
 This should make darcs pull on very large repositories (i.e. the ghc
 repository) equivalent to the speed of darcs1, possibly faster.
 
 The change is that now each named patch is applied to the pristine cache in
 memory, with writing the changed files and directories to disk happening
 only at the end.  This reduces disk activity, and also reduces the number
 of sha1 hashes that are computed, with a small increase in the worst-case
 memory use.  This is achieved by caching the hashes of slurped files in the
 Slurpy itself, which allows us to identify "dirty" files.
] 

[fix issue588 by simplifying pending handling.
David Roundy <droundy@darcs.net>**20080115162143] 

[add test for issue588 (thanks to Nicolas Pouillard!).
David Roundy <droundy@darcs.net>**20080115152504] 

[add changelog message for issue586.
David Roundy <droundy@darcs.net>**20080115152903] 

[make IO instance of WriteableDirectory fail when creating a file that already
exists.
David Roundy <droundy@darcs.net>**20080115152422] 

[Fix a bug in darcs repair: go to the repo dir and slurp the new pristine dir.
nicolas.pouillard@gmail.com**20080115144751] 

[Fix remote darcs put. Dashes was forgotten before the option name.
nicolas.pouillard@gmail.com**20080115144416] 

[bugfix, call perl's chmod with octal value (instead of string)
Tommy Pettersson <ptp@lysator.liu.se>**20080112153018
 The string value gave the directory very weird permissions.
] 

[use $- in list_authors and make_changelog for ghc 6.4 happiness
Tommy Pettersson <ptp@lysator.liu.se>**20080112150002] 

[more test script clean-ups, modernization
Mark Stosberg <mark@summersault.com>**20080110030955] 

[clean up test script header...no functional changes.
Mark Stosberg <mark@summersault.com>**20080110023044] 

[fix potentially troublesome 'rm -rf temp*' commands in test scripts, which
could have deleted more than intended.
Mark Stosberg <mark@summersault.com>**20080110010218] 

[More concise backup warning.
Eric Kow <eric.kow@gmail.com>**20071105012930] 

[Remove now obsolete wrapper for Map (we now require GHC >= 6.4).
Eric Kow <eric.kow@gmail.com>**20071105192636] 

[Modernise Data.Map import.
Eric Kow <eric.kow@gmail.com>**20071105192530] 

[Give ssh CM socket a unique name for each darcs process.
Eric Kow <eric.kow@gmail.com>**20071105021956
 Delete the socket in the unlikely event that a previous darcs had a socket
 with the same name left over.
] 

[Create ssh CM socket in $HOME/.darcs if possible.
Eric Kow <eric.kow@gmail.com>**20071105015525] 

[fix bug in darcs repair (issue586).
David Roundy <droundy@darcs.net>**20080114204243] 

[A test for unrecording checkpoint tags, inspired by issue517
Mark Stosberg <mark@summersault.com>**20080113025555] 

[resolve conflict.
David Roundy <droundy@darcs.net>**20080111160045] 

[Conflict backup files are boring.
Trent W. Buck <twb@cyber.com.au>**20080110163822] 

[more boring extensions
forge@dr.ea.ms**20080111142046
 Added extensions for CLISP, CMUCL, and "part" files which result in
 failed KDE copy operations.
] 

[resolve conflict in Libwww.
David Roundy <droundy@darcs.net>**20080110234609] 

[Some error reporting for libwww.
Dmitry Kurochkin <dmitry.kurochkin@gmail.com>**20080110221921] 

[add optional support for using the pure haskell Network.HTTP http implementation
John Meacham <john@repetae.net>**20080110215859] 

[make darcs-2 repositories store patches in more-nicely-formated format
David Roundy <droundy@darcs.net>**20080110220413] 

[fix filename encoding issue in ShowFiles.
David Roundy <droundy@darcs.net>**20080110204120] 

[add debug message when grabbing files using libcurl.
David Roundy <droundy@darcs.net>**20080110202200] 

[make using libwww no longer the default, even if it's present.
David Roundy <droundy@darcs.net>**20080110195753
 There is a bug in our libwww bindings that I haven't located... if it isn't
 fixed, we should definitely remove this binding before the darcs 2.0
 release.
] 

[make Libwww.copyUrls provide debug output.
David Roundy <droundy@darcs.net>**20080110195733] 

[test: Exibit a falling test about rollback.
nicolas.pouillard@gmail.com**20080107150224
 Indeed  the only test about rollback was br0ken by a prior test that creates a
 directory  and  remove  read  permissions  to  it.  The  rollback test do some
 records  that  silently  fail  by lack of permissions, finally the rollback is
 cancelled since the named patch doesn't exist.
 This shows that rollback need some care.
] 

[Canonize Gwern Branwen, Nicolas Pouillard, Eric Kow.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080109152727] 

[Eliminate configure test for Text.PrettyPrint.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080109152927] 

[Use our own Printer instead of Text.PrettyPrint (make_changelog).
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080109172910] 

[Add parens functionality to the printer code.
Eric Kow <E.Y.Kow@brighton.ac.uk>**20080109144956] 

[issue567: regression test for moving a file to the same location as itself
Mark Stosberg <mark@summersault.com>**20080109032346] 

[restore behavior where we display conflicts in --summary mode.
David Roundy <droundy@darcs.net>**20080110004605] 

[regression test for issue406
Mark Stosberg <mark@summersault.com>**20080109044500] 

[fix latex bug in docs.
David Roundy <droundy@darcs.net>**20080108211102] 

[fix latex bug in docs.
David Roundy <droundy@darcs.net>**20080108205912] 

[fix bug in show_tags.sh cleanup.
David Roundy <droundy@darcs.net>**20080108204430] 

[doc,typo: some s/darcs commit/darcs record/
nicolas.pouillard@gmail.com**20080107142702] 

[test: Add a test for darcs show tags.
nicolas.pouillard@gmail.com**20080107142628] 

[document the three repo format flags for "darcs init"
Mark Stosberg <mark@summersault.com>**20080108041024] 

[improve the one-paragraph docs for "darcs init"
Mark Stosberg <mark@summersault.com>**20080108040941] 

[Quit defining inventory format options recursively. Provide user-oriented
descriptions.
Mark Stosberg <mark@summersault.com>**20080108035256] 

[update partial.sh to show off improved darcs-2/partial functionality
Mark Stosberg <mark@summersault.com>**20080108024712] 

[typo and bug fix in partial.sh.
Mark Stosberg <mark@summersault.com>**20080108022808
 
 It turned out the call to "darcs optimize" was silently failing to create a
checkpoint
 because there was no tag. This caused the remaining tests for --partial to run
against 
 a full repo, not a partial one. 
] 

[issue55: document that darcs handles some types of binary files automatically. 
Mark Stosberg <mark@summersault.com>**20080108010043] 

[correct apparent typo in test.
Mark Stosberg <mark@summersault.com>**20080108005710
     The fix made more sense than the former behavior of comparing a file to
itself. 
] 

[issue395: eliminate patches with a single character name from shell scripts in
the test suite.
Mark Stosberg <mark@summersault.com>**20080106051821] 

[prevent warning in test script and remove mysterious exit(1) call.
Mark Stosberg <mark@summersault.com>**20080106052622] 

[issue526: improve Perl test suite.
Mark Stosberg <mark@summersault.com>**20080106045548
     - better compatibility when path to darcs includes a space
     - better portability by eliminating some system calls
     - general style improvements
] 

[minor white-space and code style improvements
Mark Stosberg <mark@summersault.com>**20080105183641] 

[typo fix on GNUmakefile comment
Mark Stosberg <mark@summersault.com>**20080105183027] 

[refactor: improve style and portability of pull.pl test script.
Mark Stosberg <mark@summersault.com>**20080105181751
     Many direct system calls were eliminated. No functional changes.  
] 

[issue347 - document that single quotes should be used in .darcs/defaults
Mark Stosberg <mark@summersault.com>**20080101164428] 

[add feature requested in issue576.
David Roundy <droundy@darcs.net>**20080105150125] 

[fix bug in issue576.
David Roundy <droundy@darcs.net>**20080105144929] 

[add test that triggers bug in issue576.
David Roundy <droundy@darcs.net>**20080105144812] 

[Make sure we test the 'darcs' we just built and not one in a global path.
Mark Stosberg <mark@summersault.com>**20080102002235
     This done by using "$DARCS" instead of 'darcs'.
     However, in my case the updated test FAILS unexplainably with 2.0.0pre3,
     by failing to detect that a file has changed. 
     If I follow along in a shell and run the same commands with Darcs 2, 
     the problem does not appear. 
] 

[add configure support for libwww.
David Roundy <droundy@darcs.net>**20080104201255] 

[make bug message more explicit.
David Roundy <droundy@darcs.net>**20080104004253] 

[Initial implementation of HTTP pipelining using libwww.
Dmitry Kurochkin <dmitry.kurochkin@gmail.com>**20071222144902] 

[make indent slightly more concise using lines and unlines.
David Roundy <droundy@darcs.net>**20080104003953] 

[refactor: replace recursive indent with more concise find-and-replace syntax
Mark Stosberg <mark@summersault.com>**20080101200447] 

[simplify (and debug) pending handling.
David Roundy <droundy@darcs.net>**20071227133618
 Note that this change could lead to performance regressions, but I believe
 that these regressions would be strongly bounded (never worse than a
 whatsnew), and this simplification makes the code much easier to safely
 modify.
] 

[make updating of pending on pull much more efficient.
David Roundy <droundy@darcs.net>**20071224131059] 

[simplify a bit of code.
David Roundy <droundy@darcs.net>**20071224131023] 

[fix type-witness bug in HopefullyPrivate.
David Roundy <droundy@darcs.net>**20071223141149] 

[simplify Get
David Roundy <droundy@darcs.net>**20071223025108] 

[simplify tentativelyAddPatch by removing unused return value.
David Roundy <droundy@darcs.net>**20071223024400] 

[simplify away np2prims and nps2prims.
David Roundy <droundy@darcs.net>**20071223022145] 

[try to avoid rewriting patches that we've just read.
David Roundy <droundy@darcs.net>**20071222190029] 

[generalize CommandsAux utility functions.
David Roundy <droundy@darcs.net>**20071222162952] 

[add new instances for PatchInfoAnd.
David Roundy <droundy@darcs.net>**20071222144439] 

[change tentativelyAddPatch to accept a PatchInfoAnd p.
David Roundy <droundy@darcs.net>**20071222140517] 

[internal prepration for optimization saving patch writing.
David Roundy <droundy@darcs.net>**20071222134834] 

[add changelog entry.
David Roundy <droundy@darcs.net>**20071219162646] 

[add fixme indicating where the code could be simplified.
David Roundy <droundy@darcs.net>**20071221135649] 

[make reading of hashed inventories lazier.
David Roundy <droundy@darcs.net>**20071221133453] 

[resolve conflicts in mv_and_remove_tests.sh.
David Roundy <droundy@darcs.net>**20071219144638] 

[Fix !(...|...) in mv_and_remove_tests.sh.
Dave Love <fx@gnu.org>**20071218001826
 Assume the original construct should have been `! ... | ...' and
 replace with a portable version of that.
] 

[[issue571] Redo last HAVE_TERMIO_H fix.
Dave Love <fx@gnu.org>**20071218140508
 Not the most direct fix, but simpler.
] 

[Fix configure test for gadt type witnesses.
Dave Love <fx@gnu.org>**20071218120139] 

[use --ignore-times in all tests.
David Roundy <droundy@darcs.net>**20071217225159
 This is because the hashed repository is a bit pickier, in that
 it no longer checks file lengths when the file modification times
 match.
] 

[enable modification time checking on hashed repositories.
David Roundy <droundy@darcs.net>**20071217220237] 

[Pass two args to `cmp' in tests, following POSIX.
Dave Love <fx@gnu.org>**20071216180503
 Fixes some failures on Solaris.
] 

[resolve silly conflict with myself.
David Roundy <droundy@darcs.net>**20071217200855] 

[clean up SelectChanges (eliminating Bools)
David Roundy <droundy@darcs.net>**20071217191809] 

[make a few more files compile with type witnesses.
David Roundy <droundy@darcs.net>**20071217183234] 

[fix bug in revert (in writing the unrevert file).
David Roundy <droundy@darcs.net>**20071216215225] 

[make a few more files compile with type witnesses.
David Roundy <droundy@darcs.net>**20071217164815] 

[remove tabs.
David Roundy <droundy@darcs.net>**20071216224617] 

[bump version number preemptively to 2.0.0pre3.
David Roundy <droundy@darcs.net>**20071216222823] 

[fix doc bug in show contents.
David Roundy <droundy@darcs.net>**20071216214002] 

[TAG 2.0.0pre2
David Roundy <droundy@darcs.net>**20071216201647]
msg3649 (view) Author: markstos Date: 2008-02-23.03:33:05
I vote for resolving this by making "--disable-bytestring" the default now, and
continuing to pursue this after the Darcs 2.0 release. 

I say this mostly with a focus on wanting to get the release out, and not
knowing the technical aspects of the bytestring option, except that it seems to
cause a serious problem when some cases when it is enabled now, as this bug
report demonstrates.
msg3650 (view) Author: kowey Date: 2008-02-23.15:48:48
Well, I have some dubious good news about this bug.  

It's definitely not just my Mac.  I have reproduced the problem on my Linux box.
 Also, you can reproduce it by just trying to apply this patch on an empty
repository.

Again, it is caused by trying to parse the attached patch (darcs5aba1e).  If you
apply it, for example, on an empty repository, it segfaults on Linux.  (On MacOS
X, you get a bus error).

Another thing is that this patch was generated (I think) by darcs send from
Windows.  If the user uses darcs send -O to generate a patch file and sends that
manually, that applies just fine.

Making Don nosy on this bug.
msg3651 (view) Author: kowey Date: 2008-02-23.16:29:00
Some more help reproducing this bug.  I've boiled it down to a minimal
segfaulting bundle.

Hope it helps.
Attachments
msg3659 (view) Author: droundy Date: 2008-02-25.15:07:28
I'm with Mark here, that we should just make --with-bytestring non-default.  I
don't think we should close this bug, but with that change we can remove it from
FixForDarcs20.

David
msg3748 (view) Author: droundy Date: 2008-03-04.16:40:50
Okay, I'm about to push a patch that makes the default be to not use bytestring.
 That makes this bug non-release-critical.

David
msg4223 (view) Author: gwern Date: 2008-04-10.04:45:44
So, me and sm on #darcs have been investigating this bug. Using traces, we
followed the bug through the darcs apply code. We ultimately tracked it down to
a function in FastPackedString.hs (surprise!): 'wfindPS'.

{-# INLINE wfindPS #-}
wfindPS ∷ Word8 → PackedString → Maybe Int
wfindPS c ps =
   case BI.toForeignPtr ps of
   (x,s,l) →
    unsafePerformIO $ withForeignPtr x $ λp→
    do let p' = p `plusPtr` s
       q ← BI.memchr p' $ (fromIntegral c) (fromIntegral l)
       return $ if (q == nullPtr || p == nullPtr) then Nothing
                                  else Just (q `minusPtr` p')


Specifically, our traces would die roughly in the last two lines, indicating a
problem either with the application of 'minusPtr' or 'memchr'.

I began experimenting with copying over definitions from Data.ByteString. There
were, going by type signatures, only two possibilities. Copying in 'elemIndex'
for wfindPS didn't do anything for the problem. However, copying in elemIndexEnd
http://haskell.org/ghc/docs/latest/html/libraries/bytestring/src/Data-ByteString.html#elemIndexEnd
was interesting. With that definition in place of wfindPS, I could take an empty
repo, 'apply' the minimal-bundle and apparently, it would work (and not crash):


gwern@localhost:23~/foo>apply minimal-bundle                                   
                                                    [12:46AM]
Allocating 0x2ab4ce466718 named mmap short file _darcs/patches/pending (1 left)
"mmap_slurp"
"mmap_slurp"
Allocating 0x2ab4ce46da70 named mmap short file _darcs/patches/pending (2 left)
Allocating 0x2ab4ce46dfc8 named mmap short file _darcs/patches/pending (3 left)
Allocating 0x2ab4ce46c4e8 named mmap short file _darcs/patches/pending (4 left)
"mmap_slurp"
Allocating 0x2ab4ce46cc68 named mmap short file _darcs/patches/pending (5 left)
Allocating 0x2ab4ce4063c0 named mmap short file _darcs/patches/pending.tentative
(6 left)
"mmap_slurp"
Allocating 0x2ab4ce406e70 named mmap short file _darcs/patches/pending.new (7 left)
"mmap_slurp"
Allocating 0x2ab4ce436808 named mmap short file
/home/gwern/foo/_darcs/pristine/a (8 left)
darcs: GHC.ForeignPtr: attempt to add a finalizer to plain pointer
....
gwern@localhost:26~/foo>/usr/bin/darcs changes                                 
                                                    [12:46AM]
Sat Feb 16 10:56:56 EST 2008  moi
  * initial patch


However, the interesting caveat is that darcs changes nor darcs obliterate would
work!

gwern@localhost:25~/foo>changes                                                
                                                    [12:46AM]
"mmap_slurp"
Allocating 0x2acd13e679c8 named mmap short file _darcs/patches/pending (1 left)
Allocating 0x2acd13e67f30 named mmap short file _darcs/patches/pending (2 left)
Allocating 0x2acd13e49b88 named mmap short file
/home/gwern/foo/_darcs/pristine/a (3 left)
darcs: GHC.ForeignPtr: attempt to add a finalizer to plain pointer

gwern@localhost:28~/foo>obliterate                                             
                                                    [12:46AM]
Allocating 0x2aaef9761150 named mmap short file _darcs/patches/pending (1 left)
"mmap_slurp"
"mmap_slurp"
Allocating 0x2aaef974bd98 named mmap short file _darcs/patches/pending (2 left)
Allocating 0x2aaef9735358 named mmap short file _darcs/patches/pending (3 left)
Allocating 0x2aaef972af30 named mmap short file
/home/gwern/foo/_darcs/pristine/a (4 left)
darcs: GHC.ForeignPtr: attempt to add a finalizer to plain pointer

----

So we suspect the problem is an imperfect or outdated copy there; perhaps the
two have been conflated?
msg4226 (view) Author: gwern Date: 2008-04-11.03:53:47
Ok... I decided that while I was messing around with profiling, I should try to
simplify some of FastPackedString.hs.

As it happens, I wound up blowing away and reinstalling my entire Haskell system
to get profiling of Darcs working.

The true irony here is that the moment I went to put the profiling darcs through
its paces using Eric's minimal-bundle - it began working. So I have a repo which
now works, but I have no idea which change does the trick nor do I have the
patience to trackback and find out. :)

I'm sending my bundle of patches. The salient factor to note is that I remove
OldFastPackedString.hs (to prove it's really using ByteString). The ByteString
functions used come from 0.9.0.1 & up, I believe, which limits Darcs to GHC 6.6
and up.

Anyway, I hope y'all can test my bundle and see whether there are any edge-cases
left.
Attachments
msg4227 (view) Author: gwern Date: 2008-04-11.17:01:10
Add a modified version of my bytestring.patch which restores
OldFastPackedString.hs, in case you want it for testing against ByteString/
Attachments
msg4234 (view) Author: gwern Date: 2008-04-14.15:04:20
It's probably worth noting that the definitions of lines/unlinesPS had some bugs
w/r/t empty input and the final bit of output being a newline or no; I've sent a
patch fixing them. I believe that with this patch, all the tests are passed*. If
this is true for everyone else, perhaps we can begin defaulting to bytestring?

*Well, not all the tests seem to pass, technically, but this is true of FPS
darcs as well as bytestring darcs.
msg4564 (view) Author: kowey Date: 2008-05-07.16:26:23
If I understand correctly, Gwern has submitted patches to fix this and to
re-enable bytestring by default.  Please shout otherwise.
History
Date User Action Args
2008-02-16 17:33:49koweycreate
2008-02-16 18:04:13koweysetstatus: unread -> unknown
nosy: droundy, tommy, beschmi, kowey
messages: + msg3497
2008-02-16 18:25:07koweysetnosy: droundy, tommy, beschmi, kowey
messages: + msg3498
2008-02-16 18:47:48markstoslinkissue659 superseder
2008-02-16 23:09:34markstossetstatus: unknown -> has-patch
nosy: droundy, tommy, beschmi, kowey
2008-02-21 03:40:19markstossettopic: + Target-2.0
nosy: droundy, tommy, beschmi, kowey
2008-02-21 03:42:42markstosunlinkissue659 superseder
2008-02-23 03:33:06markstossetnosy: + markstos
messages: + msg3649
title: darcs apply => bus error -> darcs apply => bus error (fixed with --disable-bytestring)
2008-02-23 15:48:50koweysetnosy: + dons
messages: + msg3650
2008-02-23 16:29:01koweysetfiles: + minimal-bundle
nosy: droundy, tommy, beschmi, kowey, markstos, dons
messages: + msg3651
2008-02-23 16:49:31koweysetfiles: - minimal-bundle
nosy: droundy, tommy, beschmi, kowey, markstos, dons
2008-02-23 16:50:12koweysetfiles: + minimal-bundle
nosy: droundy, tommy, beschmi, kowey, markstos, dons
2008-02-25 15:07:29droundysetnosy: droundy, tommy, beschmi, kowey, markstos, dons
messages: + msg3659
2008-03-04 16:40:53droundysettopic: + Darcs2, - Target-2.0
nosy: droundy, tommy, beschmi, kowey, markstos, dons
messages: + msg3748
2008-04-10 04:45:47gwernsetnosy: + gwern
messages: + msg4223
2008-04-10 05:03:23simonsetnosy: + simon
2008-04-11 03:53:49gwernsetfiles: + bytestring.patch
nosy: droundy, tommy, beschmi, kowey, markstos, simon, gwern, dons
messages: + msg4226
2008-04-11 17:01:14gwernsetfiles: + restore.patch
nosy: droundy, tommy, beschmi, kowey, markstos, simon, gwern, dons
messages: + msg4227
2008-04-14 15:04:21gwernsetnosy: droundy, tommy, beschmi, kowey, markstos, simon, gwern, dons
messages: + msg4234
2008-05-07 16:26:25koweysetstatus: has-patch -> resolved-in-unstable
nosy: + dagit
messages: + msg4564
2008-09-04 21:32:39adminsetstatus: resolved-in-unstable -> resolved
nosy: droundy, tommy, beschmi, kowey, markstos, dagit, simon, gwern, dons
2009-08-06 17:54:43adminsetnosy: + jast, Serware, dmitry.kurochkin, darcs-devel, zooko, mornfall, thorkilnaur, - droundy, gwern, dons
2009-08-06 20:58:31adminsetnosy: - beschmi
2009-08-10 22:15:42adminsetnosy: + dons, gwern, - darcs-devel, zooko, jast, Serware, mornfall
2009-08-11 00:07:23adminsetnosy: - dagit
2009-08-25 17:23:47adminsetnosy: + darcs-devel, - simon
2009-08-27 14:09:06adminsetnosy: tommy, kowey, markstos, darcs-devel, thorkilnaur, gwern, dons, dmitry.kurochkin