[darcs-users] Unused stuff in UTF8.lhs

Gwern Branwen gwern0 at gmail.com
Thu Aug 7 22:33:58 UTC 2008


So, I was looking at <http://wiki.darcs.net/index.html/DarcsToPloughshares>. In particular, the UTF8 item seemed like a useful little day project.

But when I went to look at UTF8.lhs, as far as I can tell, exactly one function from the entire thing is ever used in the rest of Darcs - 'encode'. That is, ~200 lines of code & documentation & imports seems to be useless.

Am I missing something or is there a reason why one could not record a patch like this? (Attached is a patch demonstrating what I mean.)

----

That said, it seems to me that if all that is being done is using 'encode', then why not switch to the utf8-string library? It seems to be the standard library for Haskell, anyway. I note that utf8-string has an encode with identical type signature: <http://hackage.haskell.org/packages/archive/utf8-string/0.3.1.1/doc/html/Codec-Binary-UTF8-String.html#v%3Aencode>.

In addition, it's worth noting that utf8-string provides IO as well; I understand from Eric that there are plans to start writing and reading patch metadata as UTF, but it doesn't look to me like UTF8.lhs supports any IO.

----

Possible sticky points: in 'encodeOne', there are a number of calls to 'error' whenever the Char argument is illegal somehow. The tricky part is that utf8-string does not call error, but instead inserts a special character. My question is: I've never seen or heard of Darcs crashing due to error on encoding, so is the error here dead code? Does it matter whether on illegal input encode crashes Darcs or just adds funny characters?

--
gwern
condor 877 Keyhole SIG erco server Monica virus Panama emc
-------------- next part --------------
Thu Aug  7 18:18:26 EDT 2008  gwern0 at gmail.com
  * UF8.lhs: remove unusued functions/imports/docs
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512


New patches:

[UF8.lhs: remove unusued functions/imports/docs
gwern0 at gmail.com**20080807221826] hunk ./src/UTF8.lhs 35
- ->   ( encode, decode,
- ->     encodeOne, decodeOne,
- ->   ) where
+>   ( encode ) where
hunk ./src/UTF8.lhs 37
- -> import Data.Char (ord, chr)
+> import Data.Char (ord)
hunk ./src/UTF8.lhs 39
- -> import Data.Bits (Bits, shiftL, shiftR, (.&.), (.|.))
+> import Data.Bits (Bits, shiftR, (.&.), (.|.))
hunk ./src/UTF8.lhs 149
- -
- -
- -
- -///- Decoding -///
- -
- -The decoding is a bit more involved. The byte sequence could contain all
- -sorts of corruptions. The user must be able to either notice or ignore these
- -errors.
- -
- -I will first look at the decoding of a single character. The process
- -consumes a certain number of bytes from the input. It returns the
- -remaining input and either an error and the index of its occurance in the
- -byte sequence or the decoded character.
- -
- -> data Error
- -
- -The first byte in a sequence starts with either zero, two, three, or four
- -ones and one zero to indicate the length of the sequence. If it doesn't,
- -it is invalid. It is dropped and the next byte interpreted as the start
- -of a new sequence.
- -
- ->     = InvalidFirstByte
- -
- -All bytes in the sequence except the first match the bit pattern 10xxxxxx.
- -If one doesn't, it is invalid. The sequence up to that point is dropped
- -and the "invalid" byte interpreted as the start of a new sequence. The error
- -includes the length of the partial sequence and the number of expected bytes.
- -
- ->     | InvalidLaterByte Int      -- the byte at relative index n was invalid
- -
- -If a sequence ends prematurely, it has been truncated. It dropped and
- -decoding stops. The error reports the actual and expected lengths of the
- -sequence.
- -
- ->     | Truncated Int Int         -- only n of m expected bytes were present
- -
- -Some sequences would represent code points which would be encoded as a
- -shorter sequence by a conformant encoder. Such non-shortest sequences are
- -considered erroneous and dropped. The error reports the actual and
- -expected number of bytes used.
- -
- ->     | NonShortest Int Int       -- n instead of m bytes were used
- -
- -Unicode code points are in the range of [0..0x10FFFF]. Any values outside
- -of those bounds are simply invalid.
- -
- ->     | ValueOutOfBounds
- -
- -There is no such thing as "surrogate pairs" any more in UTF-8. The
- -corresponding code points now form illegal byte sequences.
- -
- ->     | Surrogate
- ->       deriving (Show, Eq)
- -
- -
- -Second, third, and fourth bytes share the common requirement to start
- -with the bit sequence 10. So, here's the function to check that property.
- -
- -> first_bits_not_10 :: Word8 -> Bool
- -> first_bits_not_10 b
- ->     | (b.&.0xC0) /= 0x80  = True
- ->     | otherwise           = False
- -
- -
- -Erm, OK, the single-character decoding function's return type is a bit
- -longish. It is a tripel:
- -
- - - The first component contains the decoded character or an error
- -   if the byte sequence was erroneous.
- - - The second component contains the number of bytes that were consumed
- -   from the input.
- - - The third component contains the remaining bytes of input.
- -
- -> decodeOne :: [Word8] -> (Either Error Char, Int, [Word8])
- -> decodeOne bs@(b1:rest)
- ->     | b1 < 0x80   = decodeOne_onebyte bs
- ->     | b1 < 0xC0   = (Left InvalidFirstByte, 1, rest)
- ->     | b1 < 0xE0   = decodeOne_twobyte bs
- ->     | b1 < 0xEE   = decodeOne_threebyte bs
- ->     | b1 < 0xF5   = decodeOne_fourbyte bs
- ->     | otherwise   = (Left ValueOutOfBounds, 1, rest)
- -> decodeOne [] = error "UTF8.decodeOne: No input"
- -
- -
- -0xxxxxxx -> 000000000xxxxxxx
- -
- -> decodeOne_onebyte :: [Word8] -> (Either Error Char, Int, [Word8])
- -> decodeOne_onebyte (b:bs) = (Right (cpToChar b), 1, bs)
- -> decodeOne_onebyte[] = error "UTF8.decodeOne_onebyte: No input (can't happen)"
- -
- -> cpToChar :: Integral a => a -> Char
- -> cpToChar = chr . fromIntegral
- -
- -
- -110yyyyy 10xxxxxx -> 00000yyyyyxxxxxx
- -
- -> decodeOne_twobyte :: [Word8] -> (Either Error Char, Int, [Word8])
- -> decodeOne_twobyte (_:[])
- ->     = (Left (Truncated 1 2), 1, [])
- -> decodeOne_twobyte (b1:b2:bs)
- ->     | b1 < 0xC2            = (Left (NonShortest 2 1), 2, bs)
- ->     | first_bits_not_10 b2 = (Left (InvalidLaterByte 1), 1, (b2:bs))
- ->     | otherwise            = (Right (cpToChar result), 2, bs)
- ->     where
- ->     xs, ys, result :: Word32
- ->     xs = fromIntegral (b2.&.0x3F)
- ->     ys = fromIntegral (b1.&.0x1F)
- ->     result = shiftL ys 6 .|. xs
- -> decodeOne_twobyte[] = error "UTF8.decodeOne_twobyte: No input (can't happen)"
- -
- -
- -1110zzzz 10yyyyyy 10xxxxxx -> zzzzyyyyyyxxxxxx
- -
- -> decodeOne_threebyte :: [Word8] -> (Either Error Char, Int, [Word8])
- -> decodeOne_threebyte (_:[])   = threebyte_truncated 1
- -> decodeOne_threebyte (_:_:[]) = threebyte_truncated 2
- -> decodeOne_threebyte bs@(b1:b2:b3:rest)
- ->     | first_bits_not_10 b2
- ->         = (Left (InvalidLaterByte 1), 1, drop 1 bs)
- ->     | first_bits_not_10 b3
- ->         = (Left (InvalidLaterByte 2), 2, drop 2 bs)
- ->     | result < 0x0080
- ->         = (Left (NonShortest 3 1), 3, rest)
- ->     | result < 0x0800
- ->         = (Left (NonShortest 3 2), 3, rest)
- ->     | result >= 0xD800 && result < 0xE000
- ->         = (Left Surrogate, 3, rest)
- ->     | otherwise
- ->         = (Right (cpToChar result), 3, rest)
- ->     where
- ->     xs, ys, zs, result :: Word32
- ->     xs = fromIntegral (b3.&.0x3F)
- ->     ys = fromIntegral (b2.&.0x3F)
- ->     zs = fromIntegral (b1.&.0x0F)
- ->     result = shiftL zs 12 .|. shiftL ys 6 .|. xs
- -> decodeOne_threebyte[]
- ->  = error "UTF8.decodeOne_threebyte: No input (can't happen)"
- -
- -> threebyte_truncated :: Int -> (Either Error Char, Int, [Word8])
- -> threebyte_truncated n = (Left (Truncated n 3), n, [])
- -
- -
- -11110uuu 10zzzzzz 10yyyyyy 10xxxxxx -> 000uuuzzzzzzyyyyyyxxxxxx
- -
- -> decodeOne_fourbyte :: [Word8] -> (Either Error Char, Int, [Word8])
- -> decodeOne_fourbyte (_:[])     = fourbyte_truncated 1
- -> decodeOne_fourbyte (_:_:[])   = fourbyte_truncated 2
- -> decodeOne_fourbyte (_:_:_:[]) = fourbyte_truncated 3
- -> decodeOne_fourbyte bs@(b1:b2:b3:b4:rest)
- ->     | first_bits_not_10 b2
- ->         = (Left (InvalidLaterByte 1), 1, drop 1 bs)
- ->     | first_bits_not_10 b3
- ->         = (Left (InvalidLaterByte 2), 2, drop 2 bs)
- ->     | first_bits_not_10 b4
- ->         = (Left (InvalidLaterByte 3), 3, drop 3 bs)
- ->     | result < 0x0080
- ->         = (Left (NonShortest 4 1), 4, rest)
- ->     | result < 0x0800
- ->         = (Left (NonShortest 4 2), 4, rest)
- ->     | result < 0x10000
- ->         = (Left (NonShortest 4 3), 4, rest)
- ->     | result > 0x10FFFF
- ->         = (Left ValueOutOfBounds, 4, rest)
- ->     | otherwise
- ->         = (Right (cpToChar result), 4, rest)
- ->     where
- ->     xs, ys, zs, us, result :: Word32
- ->     xs = fromIntegral (b4 .&. 0x3F)
- ->     ys = fromIntegral (b3 .&. 0x3F)
- ->     zs = fromIntegral (b2 .&. 0x3F)
- ->     us = fromIntegral (b1 .&. 0x07)
- ->     result = xs .|. shiftL ys 6 .|. shiftL zs 12 .|. shiftL us 18
- -> decodeOne_fourbyte[]
- ->  = error "UTF8.decodeOne_fourbyte: No input (can't happen)"
- -
- -> fourbyte_truncated :: Int -> (Either Error Char, Int, [Word8])
- -> fourbyte_truncated n = (Left (Truncated n 4), n, [])
- -
- -
- -The decoder examines all input, recording decoded characters as well as
- -error-index pairs along the way.
- -
- -> decode :: [Word8] -> ([Char], [(Error,Int)])
- -> decode bytes = iter 0 [] [] bytes
- ->     where
- ->     iter :: Int -> [Char] -> [(Error,Int)] -> [Word8]
- ->          -> ([Char], [(Error,Int)])
- ->     iter _ cs es [] = (reverse cs, reverse es)
- ->     iter idx cs es bs
- ->         = case decodeOne bs of
- ->           (Left e, n, rest)  -> iter (idx+n) cs     ((e,idx):es) rest
- ->           (Right c, n, rest) -> iter (idx+n) (c:cs) es           rest
- -

Context:

[Downplay quantum mechanics link.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080806124109
 Besides, darcs has far more than 3 users by now.
] 
[Make patch theory intro more inviting to math people.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080806123411] 
[cleanup and slight rewrite of the test docs
Simon Michael <simon at joyful.com>**20080806165949] 
[make order of running tests consistent
Simon Michael <simon at joyful.com>**20080806172123] 
[small makefile refactoring: allow just the normal tests to be run, without bugs/*
Simon Michael <simon at joyful.com>**20080805203242] 
[Rectify dist help
lele at nautilus.homeip.net**20080804080322
 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 <simon at joyful.com>**20080803181216] 
[Canonize Gaetan Lehmann and Daniel Buenzli.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080730104357
 (for Daniel B, avoid an accent in his name)
] 
[configure: check for packages needed with split base.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080730103840
 Now that all packages must be used explicitly.
] 
[fix type witness compile errors specific to ghc 6.8
Jason Dagit <dagit at codersbase.com>**20080722182729] 
[avoid import of unused function fromMaybe.
David Roundy <droundy at darcs.net>**20080729172825] 
[configure: suggest regex-compat before text
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080725095336] 
[configure: mention Haskell in 'try installing' suggestion
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080725095015] 
[Typo (Text.Regex)
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080715121708] 
[Use haskeline to have a readline-like behavior when asking something to the user
gaetan.lehmann at jouy.inra.fr**20080719065033
 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 <E.Y.Kow at brighton.ac.uk>**20080604123728] 
[add configure check for Network.URI.
David Roundy <droundy at darcs.net>**20080711011914] 
[add -hide-all-packages to default GHCFLAGS.
David Roundy <droundy at darcs.net>**20080711010952] 
[add support for outputting patch numbers in darcs changes.
David Roundy <droundy at darcs.net>**20080710011211] 
[add support for matching single patches by index.
David Roundy <droundy at darcs.net>**20080710004512] 
[add support for matching ranges of patches (counting back from present).
David Roundy <droundy at darcs.net>**20080710003225] 
[Better avoid silly manpage error.
Trent W. Buck <trentbuck at gmail.com>**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 <trentbuck at gmail.com>**20080704024232] 
[darcs --overview no longer works, so don't document it.
Trent W. Buck <trentbuck at gmail.com>**20080704030804] 
[Avoid silly manpage error.
Trent W. Buck <trentbuck at gmail.com>**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
gwern0 at gmail.com**20080627192026
 'twas causing lhs/haddock difficulties where a \end{code} wasn't getting recognized.
] 
[rm haddock CPP business
gwern0 at gmail.com**20080627191413
 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 <droundy at darcs.net>**20080624170035] 
[fix makefile to remember to regenerate version information after running configure.
David Roundy <droundy at darcs.net>**20080624170001] 
[TAG 2.0.2
David Roundy <droundy at darcs.net>**20080624012041] 
[bump version number again (brown bag!)
David Roundy <droundy at darcs.net>**20080624011914] 
[add script to check that "make dist" actually works.
David Roundy <droundy at darcs.net>**20080624011817] 
[fix buggy and inconsistent release-determining scripts.
David Roundy <droundy at darcs.net>**20080624011759] 
[ignore boring changelog entry patches when constructing ChangeLog.
David Roundy <droundy at darcs.net>**20080623224504] 
[add changelog entry for fix of version-numbering bug.
David Roundy <droundy at darcs.net>**20080623223901] 
[fix bug in determine_release_state.pl.
David Roundy <droundy at darcs.net>**20080623223739] 
[TAG 2.0.1
David Roundy <droundy at darcs.net>**20080623214707] 
[bump version to 2.0.1.
David Roundy <droundy at darcs.net>**20080623214646] 
[determine_release_state.pl: use regexp to determine patch count if "darcs changes" does not support --count argument.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080621122305] 
[Delete haddock documentation on constructor arguments; see Issue935
Michael De La Rue <gneqbgqnepfqbgarg.yeuhc at spamgourmet.com>**20080622182644] 
[Add configure options for libcurl and libwww debugging.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080620221237] 
[aclocal.m4: add library to $LIBS instead of $GHCFLAGS in GHC_CHECK_LIBRARY.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080620214538] 
[resolve issue930: remove broken link from webpage.
David Roundy <droundy at darcs.net>**20080620172635] 
[add threadWaitRead trick as suggested by Simon (issue916).
David Roundy <droundy at darcs.net>**20080620172119
 Apparently this should solve the ctrl-C issues on posix systems, but
 windows remains only partially-solved (it requires multiple ctrl-C's
 to exit).
] 
[resolve issue916: use separate thread for reading from stdin.
David Roundy <droundy at darcs.net>**20080618210110] 
[Set up configure to build an rpm spec file for building rpm packages with.
Michael De La Rue <gneqbgqnepfqbgarg.yeuhc at spamgourmet.com>**20080616231617] 
[hscurl.c: fix harmless warning with curl >= 7.18.1.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080613125607] 
[Even more changelog entries for 2.0.1.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080614091045] 
[Use changes -s style for unlogged patches (make_changelog).
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080614072632
 This make it easier to tell what a patch is at a glance.
] 
[Still more changelog entries for 2.0.1.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080613181548] 
[Canonize Benjamin Fraksen.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080613171147] 
[More changelog entries for 2.0.1.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080613165729] 
[Clarify intent of ignored changelog entries.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080613162537] 
[Ignore tags in make_changelog warning about unlogged patches.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080613162213] 
[Support comments on ignored changelog entries.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080613161742
 
 Parsec wibble: the problem was that it would start parsing the
 emptyLine as a 'match' and not backtrack.
] 
[fix potential redundancy in version name.
David Roundy <droundy at darcs.net>**20080613162019] 
[Exceptions to GPL granted as of 2008-06-13 morning.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080613072749] 
[Add test for case-insensitive backup bug.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080613070918] 
[Fix a backup bug on case-insensitive file systems.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080613070213
 
 Avoids this scenario.  The task: move foo to FOO and modify FOO
 1. FOO (foo) already exists, so I'll back it up
    (moves FOO [foo] to FOO.darcs-backup0)
 2. Now I can move foo to FOO
    foo no longer exists, but that's ok
    (nothing happens)
 3. Now I can FOO
    hey, where did FOO go?
    (crash!)
] 
[Check for bash before running shell tests.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080612145509
 MSYS, for instance, does not provide bash by default.
 [note: or rather, only under the guise of sh.exe]
] 
[fix issue #918: use simplePrinters for xml output in "darcs changes" command
benjamin.franksen at bessy.de**20080613110922] 
[make darcs send always provide context.
David Roundy <droundy at darcs.net>**20080613155550
 I've just gotten sick of telling folks to add send --unified to their
 defaults file.  It's hard to see who wouldn't want context included.
] 
[ChangeLog entries by Eric.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080613151200
 Some ChangeLog entries for 2.0.1
] 
[Add 'ignored' changelog entries (no warnings).
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080613150620] 
[Resolve issue705: warn about patches which are not changelogged.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080613145443
 Mostly by Tommy Pettersson.
] 
[Add ability to ignore patches for ChangeLog.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080613142540
 This would be useful if make_changelog could point out which patches
 are not being changelogged.
] 
[TAG 2.0.1rc2
David Roundy <droundy at darcs.net>**20080613011745] 
[bump version number up to 2.0.1rc2.
David Roundy <droundy at darcs.net>**20080613011731] 
[Resolve issue913: Use Data.Bytestring for IO, not Data.Bytestring.Char8
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080612125719
 
 This solution comes from Ian Lynagh, who points out that the
 difference between the two is:
 
 Data.Bytestring.Char8
 ---------------------
 writeFile :: FilePath -> ByteString -> IO ()
 writeFile f txt = bracket (openFile f WriteMode) hClose
    (\h -> hPut h txt)
 
 Data.Bytestring
 ---------------
 writeFile :: FilePath -> ByteString -> IO ()
 writeFile f txt = bracket (openBinaryFile f WriteMode) hClose
    (\h -> hPut h txt)
 
 We want this change because, as the System.IO docs say:
 
   On Windows, reading a file in text mode (which is the default) will
   translate CRLF to LF, and writing will translate LF to CRLF. This is
   usually what you want with text files. With binary files this is
   undesirable; also, as usual under Microsoft operating systems, text
   mode treats control-Z as EOF. Binary mode turns off all special
   treatment of end-of-line and end-of-file characters.
 
] 
[fix OPTLLIBS filtering
Karel Gardas <kgardas at objectsecurity.com>**20080607210701] 
[Darcs.Repository.Prefs: +boring filters for MS Visual Studio (see -users discussion)
gwern0 at gmail.com**20080607080336] 
[Demonstrate 'hidden conflicts' bug (old format).
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080606151534] 
[fix regression introduced by using Data.List.isInfixOf.
David Roundy <droundy at darcs.net>**20080606102519] 
[resolve issue783: propose 'edit' as a default Windows editor
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080605165812
 
 I think every Windows box has this.  Advantages over notepad are that
 - it's a console app
 - it appears to support Unix newlines
] 
[fix bug in test when there's a space in test directory.
David Roundy <droundy at darcs.net>**20080605151104] 
[Makefile: prefix -optl only on $(LIBS) that start with '-'
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080605105539
 
 Otherwise, on Windows, if you try to build --with-static-libs, the
 linker will be passed /usr/local/lib/libcurl.a as an argument, which
 makes gcc complain.
] 
[resolve issue770: catch 'does not exist' when running external programs
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080604143100
 Convert these errors into ExitCode 127 (for Windows)
] 
[translate pull.pl into shell.
David Roundy <droundy at darcs.net>**20080605124106] 
[make test suite smarter about cleaning up test directories.
David Roundy <droundy at darcs.net>**20080605124025] 
[darcs put now support --{no-,}set-default.
Nicolas Pouillard <nicolas.pouillard at gmail.com>**20080604214551] 
[fix regression in index.html.in.
David Roundy <droundy at darcs.net>**20080605114356] 
[TAG 2.0.1rc1
David Roundy <droundy at darcs.net>**20080603124331] 
[bump version number.
David Roundy <droundy at darcs.net>**20080603124245] 
[try a bit harder to identify windows systems in perl tests.
David Roundy <droundy at darcs.net>**20080603123558] 
[fix test for windows (maybe?)
David Roundy <droundy at darcs.net>**20080603122003] 
[clean up after test.
David Roundy <droundy at darcs.net>**20080603121601] 
[remove  buggy use of tempdir in pull.pl.
David Roundy <droundy at darcs.net>**20080603121347] 
[resolve issue873: always optimize inventory when adding a tag to old-format repositories.
David Roundy <droundy at darcs.net>**20080603114707] 
[maybe fix windows check in set_scripts_executable.pl?
David Roundy <droundy at darcs.net>**20080603104644] 
[skip uniqueoptions.sh test on windows.
David Roundy <droundy at darcs.net>**20080602112250
 since we don't know how to handle newlines on windows.
] 
[skip issue538.sh on windows, since I don't know how to run tests
David Roundy <droundy at darcs.net>**20080602112155
 since ./test.sh isn't accepted on windows.
] 
[avoid using "./editor" in test, as this syntax fails under windows.
David Roundy <droundy at darcs.net>**20080602111359] 
[exempt issue458.sh test from windows.
David Roundy <droundy at darcs.net>**20080602111043] 
[note that we don't support hard links under windows.
David Roundy <droundy at darcs.net>**20080602110601] 
[don't redirect output of test to file in repository while running --look-for-adds.
David Roundy <droundy at darcs.net>**20080602105333] 
[Remove unwanted verbosity from pull --xml-output
lele at nautilus.homeip.net**20080601005416] 
[Make an undefined a bit more informative
Ian Lynagh <igloo at earth.li>**20080529015202] 
[Demonstrate issue885, a regression of "darcs get --to-match"
lele at nautilus.homeip.net**20080529140027] 
[avoid repeatedly checking whether stdout is a terminal.
David Roundy <droundy at darcs.net>**20080528160309] 
[don't clear progress messages on stdout if it's not a terminal
Bertram Felgenhauer <int-e at gmx.de>**20080526225026
 This helps when the output of the command is processed further by other tools.
] 
[switch pull_compl.sh test to perl.
David Roundy <droundy at darcs.net>**20080526112020] 
[Add a partial test for issue525.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080523135851
 I say that this is a partial test because I do not know how to
 reproduce it without amend-record yet.
] 
[Canonize Pekka Pessi once more.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080523104127] 
[reduce memory use of put
David Roundy <droundy at darcs.net>**20080523105555
 But apply still hogs memory, so there's not really much point.
] 
[Remove a timezone-sensitive date matching test.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080522194706] 
[Resolve issue187: Extend partial date matching to hours, minutes, secs.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080522194248] 
[Refactor DateMatcher and add debugging code.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080522193336
 Hopefully, the results are less convoluted.
] 
[Return ParseError instead of String in parseDate.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080522191429
 This helps a little bit for debugging.
] 
[Fix typo.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080522143857] 
[bump optimization level up to -O2.
David Roundy <droundy at darcs.net>**20080522160617
 I'm not quite sure why we ever dropped it down... presumably someone was
 impatient with compile times.
] 
[remove unneeded parens and clean up then/else alignment in Lcs.
David Roundy <droundy at darcs.net>**20080522110602] 
[making sure hunk is not shifted beyond end of file in shiftBoundaries
Pekka Pessi <pekka at pessi.fi>**20080522062553
 
 fix bug introduced in diffArr - dontShiftLast does not prevent shifting
] 
[add --with-curl=<DIR> configure option to be able to choose appropriate curl installation
Karel Gardas <kgardas at objectsecurity.com>**20080522085828] 
[move threaded and profile tests earlier, and check whether threaded actually works.
David Roundy <droundy at darcs.net>**20080522102402
 This is inspired by Gwern's patch, only trying to do things right (e.g. to
 support a future ghc that works with profiling and the threaded runtime
 together).
] 
[hpc.README for collecting hpc data.  Requires ghc >= 6.8.3, otherwise tests will break.
Christopher Lane Hinson <lane at downstairspeople.org>**20080521201003] 
[Add --enable-hpc to configure.
Christopher Lane Hinson <lane at downstairspeople.org>**20080429035758] 
[Add a list of authors that allow the OpenSSL exception.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080522094603
 
 Issue176 seems to block because Zooko seems to keep losing access
 to his list of authors who have granted permission.  Perhaps it will
 be easier to keep track of as part of the darcs repository.
] 
[Resolve issue763: provide logo without 'darcs' text.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080521153006] 
[Get rid of extra newline in uniqueoptions test.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080521140222
 
 Otherwise, on Windows/Cygwin, the test tries to run: darcs "help\n"
 And darcs complains that it cannot find the "help\n" command.
] 
[getChanges with better shifting of first and last hunk with shiftBoundaries
Pekka Pessi <pekka.pessi at nokia.com>**20080521113655
 
 The one-line context left with old dropStart and dropEnd is not always
 enough. As a consequence first and last hunk in the file got treated
 inconsistently by shiftBoundaries.
 
 The refactored code converts lists into PArrays already by getChanges,
 dropStart and dropEnd advance bounds within PArray. 
 
 getChanges' handles PArrays, and refactored code introduces minor
 optimizations to hash handling (collisions within one file are not
 propagated to diffArr).
] 
[Generalise test for rollback with no changes.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080521120856] 
[Fix UI bug in rollback.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080521120359
 It did not notice if you do not select any changes to roll back.
] 
[resolve issue855: fix bug where we were calling revertRepository when running with --dry-run.
David Roundy <droundy at darcs.net>**20080521131419] 
[Undo overoptimistic move of issue855 bug to tests.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080521102935
 
 The test had some errors (some of which I introduced during the move)
 which caused it to pass for the wrong reason.  This patch also
 corrects those bugs so that it fails like it should.
] 
[resolve issue687: don't clean out pristine cache except when optimizing.
David Roundy <droundy at darcs.net>**20080521120834
 The trouble is that we can never tell when someone might be waiting to grab
 one of these older files.  Atomicity doesn't gain us much if we drop the
 old files immediately.  The downside is that now repositories will
 monotonically grow until an optimize is performed.  :(
] 
[simplify setpref.sh
David Roundy <droundy at darcs.net>**20080521113817] 
[resolve issue870: it was a bug in the test script.
David Roundy <droundy at darcs.net>**20080521113233] 
[Add failing test for issue870.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080521102151] 
[Move issue855 bug to tests.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080520152055] 
[Resolve issue855: avoid taking lock if using --dry-run
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080519143535] 
[add some checks that repo isn't modified when --dry-run is used.
David Roundy <droundy at darcs.net>**20080520143945] 
[Add (passing) test for issue709.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080519144425] 
[Canonize Pekka Pessi (yet again).
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080519143516] 
[Replace presumably non-portable use of fgrep in issue864 bug
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080519143303] 
[Add a test for issue855 (push --dry-run)
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080517154246] 
[Add a test to show a bug with --look-for-adds that corrupt pending.
Nicolas Pouillard <nicolas.pouillard at gmail.com>**20080520105715] 
[Added bugs/replace-in-moved.sh for bug 864.
Pekka.Pessi at nokia.com**20080519141801] 
[Fix import warnings for Windows.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080517160935
 They are caused by Lele's recent patches.
] 
[English: only use singular for 1 (we have 0 foos, but 1 bar, and 2 quuxes)
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080517152737] 
[automatically include --xml support on commands supporting --dry-run.
David Roundy <droundy at darcs.net>**20080517123224] 
[Honour --xml-output when printing the patches in the "will do"/"would do" message
lele at nautilus.homeip.net**20080517110820] 
[Wrap ShowRepo output within a <repository> tag, when asked for XML output
lele at nautilus.homeip.net**20080514174050] 
[remove unused GHC_LIBDIR
David Roundy <droundy at darcs.net>**20080516161816] 
[we don't need a reminder when there are no patches to pull.
David Roundy <droundy at darcs.net>**20080516115858] 
[simplify init_tmp_repo.
David Roundy <droundy at darcs.net>**20080516113713] 
[simplify calling of darcs in perl harness.
David Roundy <droundy at darcs.net>**20080516113619] 
[clean up shell_harness just a tad.
David Roundy <droundy at darcs.net>**20080516111416] 
[fix perl harness to use the right darcs.
David Roundy <droundy at darcs.net>**20080516111316] 
[make pull_compl.sh a bit more verbose.
David Roundy <droundy at darcs.net>**20080516110235] 
[remove unnecessary defaults-setting in pull_compl.sh
David Roundy <droundy at darcs.net>**20080516105618] 
[Fixed problems with --with-static-libs
Pekka Pessi <pekka.pessi at nokia.com>**20080515175414
 
 When linking statically, the libraries must be listed last. 
 
 Using LIBS/OPTLLIBS to collect libraries.
] 
[Zapped bash-ism from configure.ac.
Pekka Pessi <pekka.pessi at nokia.com>**20080515150932] 
[Not using awk in configure.ac
Pekka Pessi <pekka.pessi at nokia.com>**20080515131700
 
 Plain sed does not grok +, use xx* instead of x+
] 
[Resolve issue738: When pushing, remind user of patches to pull.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080515184714] 
[simplify update_roundup.pl.
David Roundy <droundy at darcs.net>**20080515160802
 This change also fixes the bug where a capitalized message such as
 "Resolved issue123:" would try to set a capitalized status.  We just don't
 so that much generality, and the generality lead to bugs.
] 
[Resolve issue712: Rename --extended-help to --overview.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080515151414] 
[Do not react to darcs help --verbose
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080515143125
 
 It used to be the same as darcs --extended-help, but since we're
 renaming that to be darcs --overview, it seemed silly to be calling
 it 'verbose'
] 
[+strictness comment in FPS.hs
gwern0 at gmail.com**20080515043031] 
[Resolve issue845: Pass ssh's stderr to our stderr.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080514135504
 
 This may have the side effect that users get *a lot* of scp output dumped
 on their screen, but false 'hanging' that Zooko reported seems like the
 greater evil.  Note that darcs transfer-mode is not affected by this, so
 the only users that would see the extra output are those who are interacting
 with servers that don't have darcs 2 installed.
] 
[Canonize Pekka Pessi (again).
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080513122318] 
[Use nilPS wherever possible
Spencer Janssen <sjanssen at cse.unl.edu>**20080513122834] 
[Remove unused UnsafeCatch module
Spencer Janssen <sjanssen at cse.unl.edu>**20080416090542] 
[pipeDocToPager runs no pager if pager is "".
Pekka Pessi <pekka.pessi at nokia.com>**20080512154347
 
 Darcs does not run pager if DARCS_PAGER environment variable has empty value
 (or PAGER, if DARCS_PAGER is not set).
 
 This is like man uses MANPAGER or PAGER environment variables.
] 
[Do pipeDocToPager withoutNonBlock.
Pekka Pessi <pekka.pessi at nokia.com>**20080512154126
 
 Pagers tend to fail if terminal is in non-blocking mode.
] 
[Added withoutNonBlock to Exec.
Pekka Pessi <pekka.pessi at nokia.com>**20080512134145
 
 Now pipeDoc runs pager process without non-blocking IO mode.
] 
[consistently indent index.html and make it validate
Simon Michael <simon at joyful.com>**20080418012452] 
[Do not fix DarcsFlag (Output "-").
Pekka Pessi <pekka.pessi at nokia.com>**20080512162005
 
 -o- is used for output to stdout.
] 
[don't inline darcs_version.
David Roundy <droundy at darcs.net>**20080511115315
 There's no need to inline it, and doing so requires extra recompiles every
 time it changes.
] 
[use viewDocWith in printPatchPager and cut view_file function.
David Roundy <droundy at darcs.net>**20080511115112] 
[only use pager on longer data.
David Roundy <droundy at darcs.net>**20080511114957
 This change also allows to print Docs to pager with whichever Printers we
 choose.
] 
[Restore creation of temporary file when calling a pager.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080510233252
 
 The way runProcess works now, we have to redirect the pager's stdout (?).
 For the pager, since it's not writing to a terminal, the sane thing for it
 to do is to just behave like cat.
 
 For now we just go back to the old behaviour of calling the pager with a
 temporary file as an argument.  The only difference here is that we
 create the temporary file in /tmp to avoid some of issue770.  This is
 safe because it's only the pager that uses the file, not us.
] 
[resolve Issue803: add files back in that were manually moved on darcs mv.
David Roundy <droundy at darcs.net>**20080509202630] 
[tiny wibble to make code a little more symmetric.
David Roundy <droundy at darcs.net>**20080509195930] 
[resolve Issue739: compile with threaded runtime by default.
David Roundy <droundy at darcs.net>**20080509195833
 It turns out that the tempfile-removal cleanup wasn't particularly feasible
 without the threaded runtime.
] 
[resolve Issue776: add code to wait for forkIO error-reporting threads to exit.
David Roundy <droundy at darcs.net>**20080509195804] 
[make pipeDoc use System.Process.
David Roundy <droundy at darcs.net>**20080509193137
 This one was tricky, because we need to forward stderr and stdout from the
 process.  This ugly because of the limited API provided by System.Process.
 Ideally we'd let the child inherit both stderr and stdout, and we wouldn't
 need to have any of this forkIO and MVar complexity.
] 
[clean up execPipeIgnoreError to use System.Process.
David Roundy <droundy at darcs.net>**20080509165812] 
[Create temporary files in the current directory.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080509153406
 We don't know how openBinaryTempFile behaves with an empty string
 as the directory.
] 
[Create temporary files with openBinaryTempFile.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080509145636
 Remove some mkstemp-related code which is no longer used.
] 
[Use System.Directory.getTemporaryDirectory to determine tmp location.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080509143035
 
 This is more portable.  For instance, it understands Windows's
 conventions.
] 
[corrected ratification...
David Roundy <droundy at darcs.net>**20080509155411] 
[ratify Eric's use of readFile.
David Roundy <droundy at darcs.net>**20080509150447] 
[Fall back to stdout if viewing a file with a pager fails.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080509122756
 
 This is related to issue770.  Note also that there is another
 function Darcs.External.viewDoc which does something similar.
] 
[simplify pull_compl.sh just a tad.
David Roundy <droundy at darcs.net>**20080509120623] 
[ignore any errors in clean_pristine.
David Roundy <droundy at darcs.net>**20080508203823
 This will now be triggered when running repair, and should be essentially
 harmless.
] 
[cause check to fail if there are patches that remove non-empty files.
David Roundy <droundy at darcs.net>**20080508201818] 
[resolve Issue815: enable rempair of "rm" patches that don't remove file contents.
David Roundy <droundy at darcs.net>**20080508201713
 Note that this doesn't fix the underlying bug that allowed these patches to
 be created, but at least it can help users with corrupt repositories.
] 
[support patch fixing in PatchInfoAnd.
David Roundy <droundy at darcs.net>**20080507190933] 
[avoid using "which" command, which is buggy on SunOS.
David Roundy <droundy at darcs.net>**20080507190521] 
[make patchSetToRepository work on hashed repositories.
David Roundy <droundy at darcs.net>**20080507183543] 
[move comment to last line of compile attempts in aclocal.m4.
David Roundy <droundy at darcs.net>**20080507145339] 
[resolve Issue817: fix bug in conflict-handling with darcs-2 semantics.
David Roundy <droundy at darcs.net>**20080507144950
 This bug was due to the buggy use of a buggy function called
 depends_uponFL.  I've removed this function, and am making this note
 explicit so that noone else (including myself) will make the mistake of
 resurrecting this function from the past.
] 
[update copyright info in aclocal.m4
David Roundy <droundy at darcs.net>**20080507144721] 
[make conflict-fight-failure test a little more legible and verbose.
David Roundy <droundy at darcs.net>**20080507134927] 
[Canonize Pekka Pessi.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080507130033] 
[Demonstrate conflict fight bug #817
Pekka Pessi <first.last at nokia.com>**20080507113647
 
 Too deep conflict fight ends with Inconsistent patch w/ conflictor.
 
 Use make bugs_shell_format2 for demonstration.
 
] 
[Fix space issue in issue803.sh
lele at nautilus.homeip.net**20080507121137] 
[fix weird bug in harness.sh maybe?
David Roundy <droundy at darcs.net>**20080506210002] 
[make harness.sh a little more verbose.
David Roundy <droundy at darcs.net>**20080506191708] 
[translate whatsnew.pl into shell.
David Roundy <droundy at darcs.net>**20080506145907] 
[document running a couple of tests.
David Roundy <droundy at darcs.net>**20080506145001] 
[document that we now can just use "darcs" in shell tests.
David Roundy <droundy at darcs.net>**20080506144944] 
[remove darcs wrapper from tests.
David Roundy <droundy at darcs.net>**20080506144610] 
[don't set the IFS variable to null in harness.
David Roundy <droundy at darcs.net>**20080506142954] 
[simplify uniqueoptions.sh
David Roundy <droundy at darcs.net>**20080506142716] 
[simplify tests a bit more.
David Roundy <droundy at darcs.net>**20080506141913] 
[clean up before running issue436.sh.
David Roundy <droundy at darcs.net>**20080506135341] 
[fix space issue in test.
David Roundy <droundy at darcs.net>**20080506135217] 
[avoid unnecessary complexity in tests.
David Roundy <droundy at darcs.net>**20080506111116] 
[modernize steve-and-monica test.
David Roundy <droundy at darcs.net>**20080506110739] 
[simplify code to avoid having to worry about spaces in test path.
David Roundy <droundy at darcs.net>**20080506110534] 
[fix pull_many_files.pl test to search for GNU tar first
Karel Gardas <kgardas at objectsecurity.com>**20080506065321] 
[bugfix, --ask-deps needs with_selected_changes_reversed to ask the right questions
Tommy Pettersson <ptp at lysator.liu.se>**20080504161526] 
[(re-)add with_selected_changes_reversed to SelectChanges
Tommy Pettersson <ptp at lysator.liu.se>**20080504161412
 This function is needed for the --ask-deps options to Record.
] 
[add test for --ask-deps
Tommy Pettersson <ptp at lysator.liu.se>**20080501095450] 
[slightly-prettier way to avoid using system shell's test function.
David Roundy <droundy at darcs.net>**20080505203320] 
[simplify workaround for broken cp.
David Roundy <droundy at darcs.net>**20080505201614] 
[add testsuite workarounds for Solaris `cp' and `test' commands issues
Karel Gardas <kgardas at objectsecurity.com>**20080505195605] 
[included files reordering to fix build warning on Solaris
Karel Gardas <kgardas at objectsecurity.com>**20080505185453] 
[make issue538 test work with spaces in directories.
David Roundy <droundy at darcs.net>**20080505184459] 
[de-tapify issue538.sh test.
David Roundy <droundy at darcs.net>**20080505184239] 
[remove recommendation to use TAP output for shell tests.
David Roundy <droundy at darcs.net>**20080505165808] 
[resolve Issue832: quote all instances of "$DARCS", "$ACTUAL_DARCS", "$PWD", and "$HOME" in the sh tests and test harness, as well as all other shell variables that get expanded in test scripts (a cursory glance suggested that none of them were actually intended to be split on whitespace and so are probably best quoted).
zooko at zooko.com**20080503181651] 
[Make curl_multi_timeout check work for static builds.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080503212935] 
[Move curl_multi_timeout check outside of pipelining check.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080503212708] 
[get rid of stupid debug messages.
David Roundy <droundy at darcs.net>**20080503203650] 
[resolve conflict in aclocal.m4
David Roundy <droundy at darcs.net>**20080503195800] 
[Do LDFLAGS conversion without calling out to GHC, avoiding nasty characters in GHC commands
Reinier Lamers <tux_rocker at reinier.de>**20080503192456] 
[avoid putting a newline into GHCLIBS and/or GHCLDFLAGS.
David Roundy <droundy at darcs.net>**20080503180805] 
[even more stupid debug messages.
David Roundy <droundy at darcs.net>**20080503171055] 
[insert stupid debug code into configure script.
David Roundy <droundy at darcs.net>**20080503162856] 
[resolve issue793: fix regression in 'before X' date matching
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080502213535
 
 It was probably introduced by trying to convert CalendarTimes to
 ClockTimes; when converting a zero CalendarTime to ClockTime, we get
 something before zero.
] 
[resolve issue245: more precise 'Bad token spec' error messages.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080502204426
 I think this resolves issue371 as well.
] 
[Slight tidy up of English module.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080502201151] 
[mark issue803.sh test as a currently-failing bug.
David Roundy <droundy at darcs.net>**20080502185438] 
[Added test for issue 803
lele at nautilus.homeip.net**20080501233629] 
[use bash in test.
David Roundy <droundy at darcs.net>**20080502184149] 
[Fix test for issue 538
tux_rocker at reinier.de**20080502154349] 
[Added test for issue 538
tux_rocker at reinier.de**20080501221528] 
[issue 538: set scripts executable before test if user desires
tux_rocker at reinier.de**20080501203644] 
[resolve Issue813: make configure test consult LDFLAGS and LIBS.
David Roundy <droundy at darcs.net>**20080502160200] 
[add another test for Issue794.
David Roundy <droundy at darcs.net>**20080502160111] 
[Correct how darcs treats identical changes under darcs-2 format
lele at nautilus.homeip.net**20080502084118] 
[prefer catMaybes over list comprehension.
David Roundy <droundy at darcs.net>**20080502153330] 
[Move repoformat bug to passing tests.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080501223603] 
[resolve issue794: don't stop on first repoformat success.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080501223923
 
 Unfortunately, this bug means that older versions darcs might not be
 aware of potential forwards-compatibility issues, where the new,
 unrecognised lines in repoformat come after a familiar one.
] 
[doc: msmtp -t (for multiple recipients)
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080501224701
 
 When I used --sendmail-command="msmtp %t %<" to send a patch to the darcs
 darcs repository, I got the following error:
 
   PERM_FAILURE: Probe failed: Illegal To: address (invalid domain name):
   droundy at darcs.net, darcs-users at darcs.net          
 
 Using -t in sendmail mode causes msmtp to read the recipients from the
 message itself, which I suppose works better than passing them in via
 the command line.
] 
[resolve issue827: correct changes -i behaviour
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080502090907
 
 Promised old behaviour:
     Shall I view this patch?
      y - view this patch; keep going
      n - do not view this patch; keep going [DEFAULT]
      v - view this patch; keep going
      q - quit
 
 Actual old behaviour:
     Shall I view this patch?
      y - view this patch; stay put 
      n - do not view this patch; keep going [DEFAULT]
      v - view this patch; stay put 
      q - quit
 
 New behaviour:
     Shall I view this patch?
      y - view this patch; keep going 
      n - do not view this patch; keep going [DEFAULT]
      v - view this patch; stay put 
      q - quit
] 
[Correct changes -i help message.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080502090655] 
[Use `curl-config --static-libs` when building with static libs.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20080502115703] 
[resolve issue283: Make darcs help <cmd> consistent with darcs <cmd> --help.
Nicolas Pouillard <nicolas.pouillard at gmail.com>**20080502123521
 
 darcs help <cmd>, no longer print the darcs version.
] 
[reorder test suite around fact that test_unit takes so long.
David Roundy <droundy at darcs.net>**20080501113207] 
[remove gitlib.{c,h.in} as it appears to be unused
Jason Dagit <dagit at codersbase.com>**20080501002306] 
[refactor "_darcs" to darcsdir variable
Jason Dagit <dagit at codersbase.com>**20080501042650] 
[change handling of hi files to use silly make rule as ghc docs suggest.
David Roundy <droundy at darcs.net>**20080501105800] 
[enable automatic running of additional tests, as Gwern suggested.
David Roundy <droundy at darcs.net>**20080501105606] 
[generalize the testing for external libraries.
David Roundy <droundy at darcs.net>**20080430232912] 
[Use GHC instead of GCC to check for zlib availability (issue 813)
tux_rocker at reinier.de**20080430220105] 
[resolve issue76: update docs on temp directory creation.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080430175713] 
[Add test for issue794.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080430165251] 
[doc: encourage new users to use --darcs-2 repositories.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080425172110
 Note that this is sans explanation (in the getting started section).
 Maybe new users might be put off by the mystery flag?
] 
[doc: tell users about darcs-2 handling of identical patches.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080425172104
 Do not bother talking about darcs-1 behaviour.
] 
[add test for darcs show bug.
David Roundy <droundy at darcs.net>**20080430165425] 
[fix bug in configure script wrt HTTP package.
David Roundy <droundy at darcs.net>**20080430165350] 
[cleanup in ShowAuthors: "as" is a bad variable name, since it's also a haskell keyword.
David Roundy <droundy at darcs.net>**20080430161237] 
[add very simple test for show authors.
David Roundy <droundy at darcs.net>**20080430161222] 
[Ordered.lhs: explain acronyms
gwern0 at gmail.com**20080429203213] 
[Prefs.lhs: add cabal intermediates to ignore
gwern0 at gmail.com**20080429201917
 Re-send, not depending on rejected patches.
] 
[remove unused function ephemeral.
David Roundy <droundy at darcs.net>**20080429163057] 
[remove unused compress/uncompress functions.
David Roundy <droundy at darcs.net>**20080429162552] 
[remove unneeded --verify-hash flag (we always verify hashes).
David Roundy <droundy at darcs.net>**20080429162303] 
[remove Stringalike module entirely.
David Roundy <droundy at darcs.net>**20080429155919] 
[cut commented code (that would no longer compile).
David Roundy <droundy at darcs.net>**20080429155455] 
[eliminate use of Stringalike in ReadMonad and friends.
David Roundy <droundy at darcs.net>**20080429155158] 
[simplify ParserM
David Roundy <droundy at darcs.net>**20080429153800] 
[make PatchInfo reading specific to PackedString.
David Roundy <droundy at darcs.net>**20080429152300] 
[remove unused function test_patch.
David Roundy <droundy at darcs.net>**20080429150504] 
[remove unused emptyFileContents.
David Roundy <droundy at darcs.net>**20080429150154] 
[remove unused isExecutable function.
David Roundy <droundy at darcs.net>**20080429145721] 
[Prefs.lhs: ignore .darcsrepo as well
gwern0 at gmail.com**20080429012932
 Add it now, since we're going to get .darcsrepo at some point.
] 
[Prefs.lhs: ignore zsh-compiled files and Gentoo/X leftover files
gwern0 at gmail.com**20080429010201] 
[Prefs.lhs: ignore .git
gwern0 at gmail.com**20080429010115] 
[Prefs.lhs: ignore profiling intermediate files
gwern0 at gmail.com**20080429010050] 
[Diff.lhs, Prefs.lhs: add docs for 4096 optimization
gwern0 at gmail.com**20080427234109] 
[Diff.lhs: has_bin only inspects first 4096 characters
gwern0 at gmail.com**20080427233947
 This is an optimization for large files, it saves running has_funky on gigs and gigs of data when pretty much all binary files give the truth away within a few characters.
] 
[fpstring.c: switch a memchr for memrchr
gwern0 at gmail.com**20080425200153
 See <http://bugs.darcs.net/issue814>; memrchr speeds up is_funky quite a bit and thus helps whatsnew -s. It doesn't seem to break (any more) tests.
] 
[configure: more precise error messages about packages.
Nicolas Pouillard <nicolas.pouillard at gmail.com>**20080424120226] 
[SlurpDirectory.lhs: remove apparently pointless aliases
gwern0 at gmail.com**20080428010950] 
[implement primitive fixing of removal of non-empty files.
David Roundy <droundy at darcs.net>**20080428165532] 
[add framework for patch-fixing repair.
David Roundy <droundy at darcs.net>**20080428153041] 
[correct mmap type signatures
Jason Dagit <dagit at codersbase.com>**20080428190837] 
[grammar fix
Ferenc Wagner <wferi at niif.hu>**20080426173243] 
[add checks for removal of non-empty files.
David Roundy <droundy at darcs.net>**20080426120904] 
[remove git section from building_darcs.tex
David Roundy <droundy at darcs.net>**20080424134245
 Thanks to Nicolas Pouillard for pointing this out.
] 
[clean up genslurp_helper a tad.
David Roundy <droundy at darcs.net>**20080423214457
 I'm removing an unneeded unsafeInterleaveIO and am reformatting some of the
 indentation to make it clearer which else goes with which if.
] 
[remove unneeded redundant adding of -lcurses (done by AC_SEARCH_LIBS).
David Roundy <droundy at darcs.net>**20080423214404] 
[Give a clear error message when no suitable haddock is installed
tux_rocker at reinier.de**20080423172834] 
[simplify configure a bit: if we're defining CPP symbols, no need to also use AC_SUBST.
David Roundy <droundy at darcs.net>**20080423152121] 
[simplify makefile a bit.
David Roundy <droundy at darcs.net>**20080423150529] 
[give proper error message when slurping fails to identify a file or directory.
David Roundy <droundy at darcs.net>**20080423141737] 
[default to not coloring hunks.
David Roundy <droundy at darcs.net>**20080423141725] 
[Use the lineColoring to prettify hunks with colors.
Nicolas Pouillard <nicolas.pouillard at gmail.com>**20080420135252] 
[Add line coloring support in Printer and ColourPrinter.
Nicolas Pouillard <nicolas.pouillard at gmail.com>**20080420135238] 
[Export Printer.(<?>).
Nicolas Pouillard <nicolas.pouillard at gmail.com>**20080420135208] 
[Add two colors (cyan and magenta), but not use them yet.
Nicolas Pouillard <nicolas.pouillard at gmail.com>**20080420122811] 
[Refactor a little the color handling.
Nicolas Pouillard <nicolas.pouillard at gmail.com>**20080420122500] 
[slim down the makefile based on Gwern's changes to the configure script.
David Roundy <droundy at darcs.net>**20080423131854] 
[Little style change.
Nicolas Pouillard <nicolas.pouillard at gmail.com>**20080420122143] 
[Define unDoc as field of Doc.
Nicolas Pouillard <nicolas.pouillard at gmail.com>**20080416075954] 
[Replace colour by color to uniformise a bit.
Nicolas Pouillard <nicolas.pouillard at gmail.com>**20080416074742] 
[Canonize G. Branwen, P. Rockai, L. Komolodin and R. Lamers.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080422152346
 All anonymous patches get assigned to Gwern. 
] 
[doc tweak
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080422151420] 
[resolve issue809: doc: darcs get is not lazy by default.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080422150809] 
[doc: darcs-2 is no longer experimental.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080422150736] 
[Rename ColourPrinter to ColorPrinter.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080421154043
 We might as well standardize on American spelling in the code.
] 
[eliminate duplicate get_remote_repo in favor of list comprehensions.
David Roundy <droundy at darcs.net>**20080421145642] 
[resolve issue792: Account for --remote-repo in defaultrepo code
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080421144023] 
[Extend command_argdefaults to accept [DarcsFlag].
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080421143950] 
[Add a --remote-repodir flag (yet unused).
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080421134352] 
[Account for pre-existing api-doc.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080421135155] 
[Create the api-doc dir if it does not exist.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080421134800] 
[resolve issue795: Make 'darcs changes -i' behave more like other jobs.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080421105247
 
 Old behaviour:
  Shall I continue to view changes?
    y - do not view this patch; keep going [DEFAULT]
    n - quit
    v - view this patch; keep going
    q - quit
 
 New behaviour:
   Shall I view this patch?
    y - view this patch; keep going
    n - do not view this patch; keep going [DEFAULT]
    v - view this patch; keep going
    q - quit
] 
[Undo a false refactor in SelectChanges.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080421104106
 
 The new old code makes it clearer that text_view is only used by
 'view changes'
] 
[Fix pluralization of patches using English module.
David Roundy <droundy at darcs.net>**20080421121716] 
[optimized get --to-match handling for darcs 1 repositories
tux_rocker at reinier.de**20080420152608] 
[configure.ac: export -lcurses for cabal
gwern0 at gmail.com**20080420221056] 
[configure.ac: move HAVE_CURL around
gwern0 at gmail.com**20080420220800
 The dependency was inverted; we want to set HAVE_CURL before we test for Curl pipelining.
] 
[configure.ac: export Curses as well
gwern0 at gmail.com**20080420214353] 
[configure.ac: export -DHAVE_LIBWWW for CPP
gwern0 at gmail.com**20080420213108] 
[configure.ac: +mention why threaded is not default/doc
gwern0 at gmail.com**20080420023752] 
[stringify.hs: rw to avoid multi-line string literal
gwern0 at gmail.com**20080419025648
 The reason we want to avoid multi-line string literals is because GHC and CPP can break them quite badly if accidentally applied.
 In addition, no one is going to read Context.hs - it exists solely to be compiled. So removing the multi-line business in favor of one long string which will look exactly the same in the compiled binary causes no problems. And it can fix a big one - if Context.hs can't be compiled, obviously Darcs cannot.
] 
[replace '{-# OPTIONS' with '{-# OPTIONS_GHC'
gwern0 at gmail.com**20080419024027
 These OPTIONS pragmas use GHC-isms; best practice is to make them GHC specific if they are GHC specific.
 Specifically: -fglasgow-exts is obviously GHC only. -cpp is used only by GHC AFAIK - hugs uses some hugscpp, YHC uses '--cpp' as does presumably NHC, JHC doesn't support cpp, and no idea about the others.
 However, this patch omits modifying "src/Darcs/ColourPrinter.lhs", "src/Workaround.hs", and "src/win32/CtrlC.hs" because I was uncertain whether '-fno-warn-orphans', '-w', and '-ffi' are actually GHC-only.
] 
[rearrange bytestring tests so if it's not present we're quieter.
David Roundy <droundy at darcs.net>**20080418212319] 
[configure.ac: restructure curl
gwern0 at gmail.com**20080419020619
 We want to make sure HAVE_CURL shows up in CPP flags.
] 
[configure.ac: fix bytestring checking
gwern0 at gmail.com**20080418205704
 This changes bytestring to be default. However it checks twice: if either --disable-bytestring is set or bytestring can't be found, it won't pass on CPP -DHAVE_BYTESTRING. So this should work for Dr. Roundy's lack of bytestring.
] 
[remove unneeded check for termio.h.
David Roundy <droundy at darcs.net>**20080417172427] 
[configure.ac: rm line
gwern0 at gmail.com**20080416184604
 I can't even figure out how long ago Control.Monad was in a 'util' package.
] 
[we don't need Darcs.Patch.Check for darcs itself.
David Roundy <droundy at darcs.net>**20080417150720] 
[remove hackish attempt to set GC parameters based on available memory.
David Roundy <droundy at darcs.net>**20080416164105] 
[define forM_ since it is absent on GHC 6.4.1
zooko at zooko.com**20080409234512] 
[make darcs build on win32 by conditionally compiling out a few bits that are unused or meaningless on win32
zooko at zooko.com**20080410204830] 
[Don't let other configure flags change the type witnesses
Lennart Kolmodin <kolmodin at gentoo.org>**20080415210614
 For example, when using --with-docs the type witnesses would be turned on,
 while with --without-docs they would not. This patch adresses this issue.
] 
[eliminate use of Haskell 98 library modules.
David Roundy <droundy at darcs.net>**20080415214217] 
[add type witness declarations to Resolution
David Roundy <droundy at darcs.net>**20080415165457] 
[move -cpp option into source files.
David Roundy <droundy at darcs.net>**20080415144719] 
[Issue a warning when using --old-fashioned-inventory with a darcs-2 repository.
Nicolas Pouillard <nicolas.pouillard at gmail.com>**20080414232715] 
[FastPackedString.hs: FastPackedString.hs: redefine linePS/unlinesPS
gwern0 at gmail.com**20080414150839
 Turns out that my definitions were wrong - they differed and added a newline where the old FPS versions didn't. So I've rewritten the wrapper versions around ByteString, and checked them against the old ones with QuickCheck. With these fixes, a bytestring darcs seems to pass all the tests as a fps darcs.
] 
[remove unused Setup.lhs.
David Roundy <droundy at darcs.net>**20080414190738] 
[roll back implementation of joke oops command.
David Roundy <droundy at darcs.net>**20080414133342
 Apparently it didn't actually work...
 
 rolling back:
 
 Tue Apr  8 07:58:56 PDT 2008  David Roundy <droundy at darcs.net>
   * resolve issue786:  implement oops command.
 
     M ./src/Darcs/Commands/Tag.lhs -5 +47
     M ./src/Darcs/TheCommands.lhs -1 +2
] 
[just remove concatLenPS
David Roundy <droundy at darcs.net>**20080411205303
 It is never used in a performance-critical situation, so I'm voting to just
 trash it.  I'd rather have fewer unsafe operations.
] 
[FastPackedString.hs: simplify concatLenPS, although this removes its strictness properties
**20080411035327] 
[FastPackedString.hs: remove wfindPS
**20080411035046
 With better imports from bytestring, I believe it to be superfluous, and dangerous to leave around.
] 
[FastPackedString.hs: grmmr/sp
**20080411034730] 
[FastPackedString.hs: rw linesPS using ByteString split
**20080411032229] 
[doc updates
gwern0 at gmail.com**20080409170824
 Convert all uses of 'http://darcs.net/repos/stable' to just darcs.net, since unstable and stable were merged together, and the old URL is a 404 for darcs getting. This is a real problem, see for example <http://reddit.com/info/6ewbq/comments/c03o6d5>.
] 
[fix typo in show_bug_help
Matyas Janos <mjanos5 at gmail.com>**20080408232600] 
[Raise a configure error when no Text.Regex module can be found.
nicolas.pouillard at gmail.com**20080409085522] 
[update README url links
gwern0 at gmail.com**20080407201333] 
[add a bit more debugging info to repository identification.
David Roundy <droundy at darcs.net>**20080408151912] 
[resolve issue385: don't worry if we can't get local changes.
David Roundy <droundy at darcs.net>**20080408151823] 
[add test for issue385.
David Roundy <droundy at darcs.net>**20080408151808] 
[resolve issue786:  implement oops command.
David Roundy <droundy at darcs.net>**20080408145856] 
[fix URL in network test.
David Roundy <droundy at darcs.net>**20080408145407] 
[fix manual bug.
David Roundy <droundy at darcs.net>**20080407191736] 
[add new show bug command (hidden) to see what darcs will report if we encounter a bug.
David Roundy <droundy at darcs.net>**20080407175410] 
[automatically work out the version of the stable release.
David Roundy <droundy at darcs.net>**20080407171850] 
[set prefs again (they got lost on convert).
David Roundy <droundy at darcs.net>**20080407171559] 
[update darcs repository URL.
David Roundy <droundy at darcs.net>**20080407164601] 
[fix up website for new release.
David Roundy <droundy at darcs.net>**20080407164010] 
[simplify determine_release_state.pl.
David Roundy <droundy at darcs.net>**20080407153000] 
[make determine_release_state.pl use changes --count.
David Roundy <droundy at darcs.net>**20080407152347] 
[add --count output option to changes.
David Roundy <droundy at darcs.net>**20080407151825] 
[TAG 2.0.0
David Roundy <droundy at darcs.net>**20080407150638] 
Patch bundle hash:
91aa5167bf3d759048468f3be5e240d51b973aae
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFIm3TrvpDo5Pfl1oIRCmAWAJ0aj7TFCHWjHXNRCx2HopJDuF3amACfaucI
mxyzJXvF+pBelqqXyTMsMpA=
=fAn2
-----END PGP SIGNATURE-----
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://lists.osuosl.org/pipermail/darcs-users/attachments/20080807/abe808b8/attachment-0001.pgp 


More information about the darcs-users mailing list