Mon Apr 28 23:09:44 EDT 2008  [EMAIL PROTECTED]
  * FastPackedString, OldFastPackedString.hs: add in 'allPS' definition
  This is a missing list utility function; for FPS.hs, it's the usual wrapping, 
while I copy the Bytestring version (swapping 'unsafePeformIO' for 
'inplacePerformIO') into OldFPS. This will be a useful function for the next 
patch.

Tue Apr 29 21:15:51 EDT 2008  [EMAIL PROTECTED]
  *  refactor IsoDate.lhs and OldDate.lhs to push bytestring->string conversion 
down the stack
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512


New patches:

[FastPackedString, OldFastPackedString.hs: add in 'allPS' definition
[EMAIL PROTECTED]
 This is a missing list utility function; for FPS.hs, it's the usual wrapping, while I copy the Bytestring version (swapping 'unsafePeformIO' for 'inplacePerformIO') into OldFPS. This will be a useful function for the next patch.
] hunk ./src/FastPackedString.hs 65
         dropPS,      -- :: Int -> PackedString -> PackedString
         splitAtPS,   -- :: Int -> PackedString -> (PackedString, PackedString)
 
- -        anyPS,
+        anyPS,       -- :: (Char -> Bool) -> PackedString -> Bool
+        allPS,       -- :: (Char -> Bool) -> PackedString -> Bool
+
         takeWhilePS, -- :: (Char -> Bool) -> PackedString -> PackedString
         dropWhilePS, -- :: (Char -> Bool) -> PackedString -> PackedString
         dropWhitePS, -- :: PackedString -> PackedString
hunk ./src/FastPackedString.hs 294
 anyPS :: (Char -> Bool) -> PackedString -> Bool
 anyPS = B.any
 
+{-# INLINE allPS #-}
+allPS :: (Char -> Bool) -> PackedString -> Bool
+allPS = B.all
+
 {-# INLINE takeWhilePS #-}
 takeWhilePS :: (Char -> Bool) -> PackedString -> PackedString
 takeWhilePS = B.takeWhile
hunk ./src/OldFastPackedString.hs 65
         dropPS,      -- :: Int -> PackedString -> PackedString
         splitAtPS,   -- :: Int -> PackedString -> (PackedString, PackedString)
 
- -        anyPS,
+        anyPS,       -- :: (Char -> Bool) -> PackedString -> Bool
+        allPS,       -- :: (Char -> Bool) -> PackedString -> Bool
+
         takeWhilePS, -- :: (Char -> Bool) -> PackedString -> PackedString
         dropWhilePS, -- :: (Char -> Bool) -> PackedString -> PackedString
         dropWhitePS, -- :: PackedString -> PackedString
hunk ./src/OldFastPackedString.hs 402
                                           then return True
                                           else lookat (p `plusPtr` 1) st
 
+{-# INLINE allPS #-}
+allPS :: (Char -> Bool) -> PackedString -> Bool
+allPS _ (PS _ _ 0) = True
+allPS f (PS x s l) = unsafePerformIO $ withForeignPtr x $ \ptr ->
+        go (ptr `plusPtr` s) (ptr `plusPtr` (s+l))
+    where
+        go p q | p == q     = return True  -- end of list
+               | otherwise  = do c <- peek p
+                                 if f c
+                                    then go (p `plusPtr` 1) q
+                                    else return False
+
 findWhenPS :: (Char -> Bool) -> PackedString -> Int
 findWhenPS f ps = seq f $
     if nullPS ps then 0
[ refactor IsoDate.lhs and OldDate.lhs to push bytestring->string conversion down the stack
[EMAIL PROTECTED] hunk ./src/Darcs/Patch/Info.lhs 107
 --   before 1.0.  Fortunately, newer patch dates are written in
 --   UTC, so this timezone truncation is harmless for them.
 readPatchDate :: PackedString -> CalendarTime
- -readPatchDate = ignoreTz . readUTCDate . unpackPS
+readPatchDate = ignoreTz . readUTCDate
   where ignoreTz ct = ct { ctTZ = 0 }
 
 pi_date :: PatchInfo -> CalendarTime
hunk ./src/IsoDate.lhs 32
                  unsetTime,
                ) where
 
- -import Text.ParserCombinators.Parsec
- -import System.Time
- -import System.IO.Unsafe ( unsafePerformIO )
+import Control.Monad ( liftM, liftM2 )
 import Data.Char ( toUpper, isDigit )
 import Data.Maybe ( fromMaybe )
hunk ./src/IsoDate.lhs 35
- -import Control.Monad ( liftM, liftM2 )
+import FastPackedString (PackedString, unpackPS)
+import System.IO.Unsafe ( unsafePerformIO )
+import System.Time
+import Text.ParserCombinators.Parsec
 
 -- | Read/interpret a date string, assuming UTC if timezone
 --   is not specified in the string
hunk ./src/IsoDate.lhs 42
- -readUTCDate :: String -> CalendarTime
- -readUTCDate = readDate 0
+readUTCDate :: PackedString -> CalendarTime
+readUTCDate = readDate 0 . unpackPS
 
 -- | Convert a date string into ISO 8601 format (yyyymmdd variant)
 --   assuming local timezone if not specified in the string
hunk ./src/OldDate.lhs 26
 \begin{code}
 module OldDate ( readUTCDate, showIsoDateTime ) where
 
- -import Text.ParserCombinators.Parsec
- -import System.Time
- -import Data.Char ( toUpper, isDigit )
 import Control.Monad ( liftM, liftM2 )
hunk ./src/OldDate.lhs 27
+import Data.Char ( toUpper, isDigit )
+import FastPackedString (PackedString, unpackPS, lengthPS, allPS, takePS)
+import System.Time
+import Text.ParserCombinators.Parsec
 
 -- | Read/interpret a date string, assuming UTC if timezone
 --   is not specified in the string
hunk ./src/OldDate.lhs 34
- -readUTCDate :: String -> CalendarTime
+readUTCDate :: PackedString -> CalendarTime
 readUTCDate = readDate 0
 
hunk ./src/OldDate.lhs 37
- -readDate :: Int -> String -> CalendarTime
+readDate :: Int -> PackedString -> CalendarTime
 readDate tz d =
              case parseDate tz d of
              Left e -> error e
hunk ./src/OldDate.lhs 43
              Right ct -> ct
 
- -parseDate :: Int -> String -> Either String CalendarTime
- -parseDate tz d =
- -              if length d >= 14 && and (map isDigit $ take 14 d)
- -              then Right $
+parseDate :: Int -> PackedString -> Either String CalendarTime
+parseDate tz c = let d = unpackPS c in
+              if lengthPS c >= 14 && (allPS isDigit $ takePS 14 c)
+              then
+                   Right $
                    CalendarTime (read $ take 4 d)
                                 (toEnum $ (+ (-1)) $ read $ take 2 $ drop 4 d)
                                 (read $ take 2 $ drop 6 d) -- Day

Context:

[Ordered.lhs: explain acronyms
[EMAIL PROTECTED] 
[Prefs.lhs: add cabal intermediates to ignore
[EMAIL PROTECTED]
 Re-send, not depending on rejected patches.
] 
[remove unused function ephemeral.
David Roundy <[EMAIL PROTECTED]>**20080429163057] 
[remove unused compress/uncompress functions.
David Roundy <[EMAIL PROTECTED]>**20080429162552] 
[remove unneeded --verify-hash flag (we always verify hashes).
David Roundy <[EMAIL PROTECTED]>**20080429162303] 
[remove Stringalike module entirely.
David Roundy <[EMAIL PROTECTED]>**20080429155919] 
[cut commented code (that would no longer compile).
David Roundy <[EMAIL PROTECTED]>**20080429155455] 
[eliminate use of Stringalike in ReadMonad and friends.
David Roundy <[EMAIL PROTECTED]>**20080429155158] 
[simplify ParserM
David Roundy <[EMAIL PROTECTED]>**20080429153800] 
[make PatchInfo reading specific to PackedString.
David Roundy <[EMAIL PROTECTED]>**20080429152300] 
[remove unused function test_patch.
David Roundy <[EMAIL PROTECTED]>**20080429150504] 
[remove unused emptyFileContents.
David Roundy <[EMAIL PROTECTED]>**20080429150154] 
[remove unused isExecutable function.
David Roundy <[EMAIL PROTECTED]>**20080429145721] 
[Prefs.lhs: ignore .darcsrepo as well
[EMAIL PROTECTED]
 Add it now, since we're going to get .darcsrepo at some point.
] 
[Prefs.lhs: ignore zsh-compiled files and Gentoo/X leftover files
[EMAIL PROTECTED] 
[Prefs.lhs: ignore .git
[EMAIL PROTECTED] 
[Prefs.lhs: ignore profiling intermediate files
[EMAIL PROTECTED] 
[Diff.lhs, Prefs.lhs: add docs for 4096 optimization
[EMAIL PROTECTED] 
[Diff.lhs: has_bin only inspects first 4096 characters
[EMAIL PROTECTED]
 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
[EMAIL PROTECTED]
 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 <[EMAIL PROTECTED]>**20080424120226] 
[SlurpDirectory.lhs: remove apparently pointless aliases
[EMAIL PROTECTED] 
[implement primitive fixing of removal of non-empty files.
David Roundy <[EMAIL PROTECTED]>**20080428165532] 
[add framework for patch-fixing repair.
David Roundy <[EMAIL PROTECTED]>**20080428153041] 
[correct mmap type signatures
Jason Dagit <[EMAIL PROTECTED]>**20080428190837] 
[grammar fix
Ferenc Wagner <[EMAIL PROTECTED]>**20080426173243] 
[add checks for removal of non-empty files.
David Roundy <[EMAIL PROTECTED]>**20080426120904] 
[remove git section from building_darcs.tex
David Roundy <[EMAIL PROTECTED]>**20080424134245
 Thanks to Nicolas Pouillard for pointing this out.
] 
[clean up genslurp_helper a tad.
David Roundy <[EMAIL PROTECTED]>**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 <[EMAIL PROTECTED]>**20080423214404] 
[Give a clear error message when no suitable haddock is installed
[EMAIL PROTECTED] 
[simplify configure a bit: if we're defining CPP symbols, no need to also use AC_SUBST.
David Roundy <[EMAIL PROTECTED]>**20080423152121] 
[simplify makefile a bit.
David Roundy <[EMAIL PROTECTED]>**20080423150529] 
[give proper error message when slurping fails to identify a file or directory.
David Roundy <[EMAIL PROTECTED]>**20080423141737] 
[default to not coloring hunks.
David Roundy <[EMAIL PROTECTED]>**20080423141725] 
[Use the lineColoring to prettify hunks with colors.
Nicolas Pouillard <[EMAIL PROTECTED]>**20080420135252] 
[Add line coloring support in Printer and ColourPrinter.
Nicolas Pouillard <[EMAIL PROTECTED]>**20080420135238] 
[Export Printer.(<?>).
Nicolas Pouillard <[EMAIL PROTECTED]>**20080420135208] 
[Add two colors (cyan and magenta), but not use them yet.
Nicolas Pouillard <[EMAIL PROTECTED]>**20080420122811] 
[Refactor a little the color handling.
Nicolas Pouillard <[EMAIL PROTECTED]>**20080420122500] 
[slim down the makefile based on Gwern's changes to the configure script.
David Roundy <[EMAIL PROTECTED]>**20080423131854] 
[configure.ac: export -lcurses for cabal
[EMAIL PROTECTED] 
[configure.ac: export Curses as well
[EMAIL PROTECTED] 
[Little style change.
Nicolas Pouillard <[EMAIL PROTECTED]>**20080420122143] 
[Define unDoc as field of Doc.
Nicolas Pouillard <[EMAIL PROTECTED]>**20080416075954] 
[Replace colour by color to uniformise a bit.
Nicolas Pouillard <[EMAIL PROTECTED]>**20080416074742] 
[Canonize G. Branwen, P. Rockai, L. Komolodin and R. Lamers.
Eric Kow <[EMAIL PROTECTED]>**20080422152346
 All anonymous patches get assigned to Gwern. 
] 
[doc tweak
Eric Kow <[EMAIL PROTECTED]>**20080422151420] 
[resolve issue809: doc: darcs get is not lazy by default.
Eric Kow <[EMAIL PROTECTED]>**20080422150809] 
[doc: darcs-2 is no longer experimental.
Eric Kow <[EMAIL PROTECTED]>**20080422150736] 
[Rename ColourPrinter to ColorPrinter.
Eric Kow <[EMAIL PROTECTED]>**20080421154043
 We might as well standardize on American spelling in the code.
] 
[eliminate duplicate get_remote_repo in favor of list comprehensions.
David Roundy <[EMAIL PROTECTED]>**20080421145642] 
[resolve issue792: Account for --remote-repo in defaultrepo code
Eric Kow <[EMAIL PROTECTED]>**20080421144023] 
[Extend command_argdefaults to accept [DarcsFlag].
Eric Kow <[EMAIL PROTECTED]>**20080421143950] 
[Add a --remote-repodir flag (yet unused).
Eric Kow <[EMAIL PROTECTED]>**20080421134352] 
[Account for pre-existing api-doc.
Eric Kow <[EMAIL PROTECTED]>**20080421135155] 
[Create the api-doc dir if it does not exist.
Eric Kow <[EMAIL PROTECTED]>**20080421134800] 
[replace '{-# OPTIONS' with '{-# OPTIONS_GHC'
[EMAIL PROTECTED]
 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.
] 
[configure.ac: export -DHAVE_LIBWWW for CPP
[EMAIL PROTECTED] 
[resolve issue795: Make 'darcs changes -i' behave more like other jobs.
Eric Kow <[EMAIL PROTECTED]>**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 <[EMAIL PROTECTED]>**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 <[EMAIL PROTECTED]>**20080421121716] 
[configure.ac: move HAVE_CURL around
[EMAIL PROTECTED]
 The dependency was inverted; we want to set HAVE_CURL before we test for Curl pipelining.
] 
[optimized get --to-match handling for darcs 1 repositories
[EMAIL PROTECTED] 
[stringify.hs: rw to avoid multi-line string literal
[EMAIL PROTECTED]
 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.
] 
[configure.ac: restructure curl
[EMAIL PROTECTED]
 We want to make sure HAVE_CURL shows up in CPP flags.
] 
[configure.ac: +mention why threaded is not default/doc
[EMAIL PROTECTED] 
[rearrange bytestring tests so if it's not present we're quieter.
David Roundy <[EMAIL PROTECTED]>**20080418212319] 
[configure.ac: fix bytestring checking
[EMAIL PROTECTED]
 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 <[EMAIL PROTECTED]>**20080417172427] 
[configure.ac: rm line
[EMAIL PROTECTED]
 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 <[EMAIL PROTECTED]>**20080417150720] 
[remove hackish attempt to set GC parameters based on available memory.
David Roundy <[EMAIL PROTECTED]>**20080416164105] 
[define forM_ since it is absent on GHC 6.4.1
[EMAIL PROTECTED] 
[make darcs build on win32 by conditionally compiling out a few bits that are unused or meaningless on win32
[EMAIL PROTECTED] 
[Don't let other configure flags change the type witnesses
Lennart Kolmodin <[EMAIL PROTECTED]>**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 <[EMAIL PROTECTED]>**20080415214217] 
[add type witness declarations to Resolution
David Roundy <[EMAIL PROTECTED]>**20080415165457] 
[move -cpp option into source files.
David Roundy <[EMAIL PROTECTED]>**20080415144719] 
[Issue a warning when using --old-fashioned-inventory with a darcs-2 repository.
Nicolas Pouillard <[EMAIL PROTECTED]>**20080414232715] 
[FastPackedString.hs: FastPackedString.hs: redefine linePS/unlinesPS
[EMAIL PROTECTED]
 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 <[EMAIL PROTECTED]>**20080414190738] 
[roll back implementation of joke oops command.
David Roundy <[EMAIL PROTECTED]>**20080414133342
 Apparently it didn't actually work...
 
 rolling back:
 
 Tue Apr  8 07:58:56 PDT 2008  David Roundy <[EMAIL PROTECTED]>
   * 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 <[EMAIL PROTECTED]>**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
[EMAIL PROTECTED]
 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 <[EMAIL PROTECTED]>**20080408232600] 
[Raise a configure error when no Text.Regex module can be found.
[EMAIL PROTECTED] 
[update README url links
[EMAIL PROTECTED] 
[add a bit more debugging info to repository identification.
David Roundy <[EMAIL PROTECTED]>**20080408151912] 
[resolve issue385: don't worry if we can't get local changes.
David Roundy <[EMAIL PROTECTED]>**20080408151823] 
[add test for issue385.
David Roundy <[EMAIL PROTECTED]>**20080408151808] 
[resolve issue786:  implement oops command.
David Roundy <[EMAIL PROTECTED]>**20080408145856] 
[fix URL in network test.
David Roundy <[EMAIL PROTECTED]>**20080408145407] 
[fix manual bug.
David Roundy <[EMAIL PROTECTED]>**20080407191736] 
[add new show bug command (hidden) to see what darcs will report if we encounter a bug.
David Roundy <[EMAIL PROTECTED]>**20080407175410] 
[automatically work out the version of the stable release.
David Roundy <[EMAIL PROTECTED]>**20080407171850] 
[set prefs again (they got lost on convert).
David Roundy <[EMAIL PROTECTED]>**20080407171559] 
[update darcs repository URL.
David Roundy <[EMAIL PROTECTED]>**20080407164601] 
[fix up website for new release.
David Roundy <[EMAIL PROTECTED]>**20080407164010] 
[simplify determine_release_state.pl.
David Roundy <[EMAIL PROTECTED]>**20080407153000] 
[make determine_release_state.pl use changes --count.
David Roundy <[EMAIL PROTECTED]>**20080407152347] 
[add --count output option to changes.
David Roundy <[EMAIL PROTECTED]>**20080407151825] 
[TAG 2.0.0
David Roundy <[EMAIL PROTECTED]>**20080407150638] 
Patch bundle hash:
6ed0567c53422c51f7b5a325e07526315510573e
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.7 (GNU/Linux)

iD8DBQFIF8hvvpDo5Pfl1oIRCu8IAKCCDSY2kAE7HapN4V4yq1/6aUUuEwCeNwFr
PPOLccoxbvjZEPtegkAmJ5s=
=J+uN
-----END PGP SIGNATURE-----
_______________________________________________
darcs-users mailing list
[email protected]
http://lists.osuosl.org/mailman/listinfo/darcs-users

Reply via email to