Fri Apr 25 16:01:53 EDT 2008  [EMAIL PROTECTED]
  * fpstring.c: switch a memchr for memrchr
  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.

Sun Apr 27 19:39:47 EDT 2008  [EMAIL PROTECTED]
  * Diff.lhs: has_bin only inspects first 4096 characters
  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.

Sun Apr 27 19:41:09 EDT 2008  [EMAIL PROTECTED]
  * Diff.lhs, Prefs.lhs: add docs for 4096 optimization
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512


New patches:

[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.
] hunk ./src/fpstring.c 59
 {
     /* We'll assume memchr(3) is faster than a simplistic loop that
      * checks each char against the two sought values, and NUL is more
- -     * likely than DOS's Ctrl-Z. */
- -    return !!(memchr(s, 0, len) || memchr(s, 26, len));
+     * likely than DOS's Ctrl-Z.
+     * We go forward through the string using memchr, then we reverse and
+     * iterate backwards through the string; using memrchr instead of memchr
+     * gives us better cache locality, which makes a difference on big files. */
+    return !!(memchr(s, 0, len) || memrchr(s, 26, len));
 }
 
 // mmapping...
[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.
] hunk ./src/Darcs/Diff.lhs 45
 import FastPackedString ( hGetPS, lengthPS
 #ifndef GADT_WITNESSES
                         , PackedString, is_funky, nilPS
- -                        , linesPS, nullPS, lastPS,
+                        , linesPS, nullPS, lastPS, takePS,
 #endif
                         )
 
hunk ./src/Darcs/Diff.lhs 204
          in (inv p:>:)
 
 has_bin :: FileContents -> Bool
- -has_bin b = is_funky b
+has_bin = is_funky . takePS 4096
 #endif
 \end{code}
 
hunk ./src/fpstring.c 57
 
 int has_funky_char(const char *s, int len)
 {
- -    /* We'll assume memchr(3) is faster than a simplistic loop that
- -     * checks each char against the two sought values, and NUL is more
- -     * likely than DOS's Ctrl-Z.
- -     * We go forward through the string using memchr, then we reverse and
- -     * iterate backwards through the string; using memrchr instead of memchr
- -     * gives us better cache locality, which makes a difference on big files. */
- -    return !!(memchr(s, 0, len) || memrchr(s, 26, len));
+  // We check first for the more likely \0 so we can break out of
+  // memchr that much sooner.
+  return !!(memchr(s, 0, len) || memchr(s, 26, len));
+
 }
 
 // mmapping...
[Diff.lhs, Prefs.lhs: add docs for 4096 optimization
[EMAIL PROTECTED] hunk ./src/Darcs/Diff.lhs 203
                       else hunk f 1 [nilPS] $ linesPS b
          in (inv p:>:)
 
+{- | We take a PackedString which represents a file's contents, and we check to see
+whether it is a 'binary' file or a 'textual' file. We define a textual file as any file
+which does not contain two magic characters, '\0' (the NULL character on Unix) and '^Z'
+(Control-Z, a DOS convention).
+
+Note that to improve performance, we won't examine *all* of the string, because that
+falls down on large files, but just the first 4096 characters. -}
 has_bin :: FileContents -> Bool
 has_bin = is_funky . takePS 4096
 #endif
hunk ./src/Darcs/Repository/Prefs.lhs 248
 The \verb!_darcs/prefs/binaries! file may contain a list of regular
 expressions describing files that should be treated as binary files rather
 than text files. Darcs automatically treats files containing
- -\verb!^Z\! or \verb!'\0'! as binary.
+\verb!^Z\! or \verb!'\0'! within the first 4096 bytes as being binary files.
 You probably will want to have the binaries file under
 version control.  To do this you can use darcs setpref to set the value
 ``binariesfile'' to the name of your desired binaries file

Context:

[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:
214b90184eecef77d47b81450245bbe956425b26
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.7 (GNU/Linux)

iD8DBQFIFjwjvpDo5Pfl1oIRCjv3AKCZCa1/ij836QbSCy0S9OjMLlZYgwCeLAvG
CcGXH1URcM4stPHLhL6mLdY=
=L4Sa
-----END PGP SIGNATURE-----
_______________________________________________
darcs-users mailing list
[email protected]
http://lists.osuosl.org/mailman/listinfo/darcs-users

Reply via email to