Thu Aug  7 00:07:15 PDT 2008  Simon Michael <[EMAIL PROTECTED]>
  * add a make index target which generates an INDEX to aid code comprehension
New patches:

[add a make index target which generates an INDEX to aid code comprehension
Simon Michael <[EMAIL PROTECTED]>**20080807070715] addfile ./tools/index.hs
hunk ./GNUmakefile 328
+index INDEX: src/darcs.lhs $(DARCS_FILES) tools/index.hs
+	tools/index.hs $(DARCS_FILES) >INDEX
+
hunk ./tools/index.hs 1
+#!/usr/bin/env runhaskell
+{-
+Print an index of functions in haskell files, to aid code comprehension.
+
+Usage: "make index" in the main darcs directory (or index.hs file1.hs [...])
+
+Tips: for best color-coded viewing, load the INDEX into Emacs. If org mode
+is available, Tab on a heading will hide/show the contents. Do make tags,
+visit-tags-table TAGS, then M-. on a name to jump there.
+
+Simon Michael 2008
+-}
+
+import System
+import System.Process
+import IO
+import Data.List
+import Data.Map hiding (map,split)
+import Text.Printf (printf)
+import Control.Monad (when)
+
+split :: (Eq a) => a -> [a] -> ([a], [a])
+split x xs = (as, drop 1 bs) where (as,bs) = break (== x) xs
+
+main = do
+  files <- getArgs
+  let cmd = "grep -H '^\\w[^=]*::' " ++ (concat $ intersperse " " $ files)
+  (_, out, err, _) <- runInteractiveCommand cmd
+  grepoutput <- hGetContents out
+  let m = fromListWith (flip (++)) [(a,[b]) | (a,b) <- map (split ':') $ lines grepoutput]
+  sequence $ map printgroup $ assocs m
+  when (length files > 0) printemacsfooter
+
+printgroup (k,vs) = do
+  putStr $ "* " ++ k ++ "\n"
+  sequence $ map printline vs
+  putStr "\n"
+
+printline l = do
+  putStrLn l -- $ printf "%-22s %-40s %s" (file++":") code typedecl
+    where
+      (file, rest) = break (== ':') l
+      (code, typedecl) = break (== ':') $ tail rest
+
+printemacsfooter = do
+  putStrLn "\
+\* \n\
+\Local Variables:\n\
+\mode: haskell\n\
+\eval: (condition-case nil (highlight-lines-matching-regexp \"^\\* \" (quote hi-pink)) (error nil))\n\
+\eval: (condition-case nil (orgstruct-mode) (error nil))\n\
+\End:\n\
+\"  -- "

Context:

[make order of running tests consistent
Simon Michael <[EMAIL PROTECTED]>**20080806172123] 
[cleanup and slight rewrite of the test docs
Simon Michael <[EMAIL PROTECTED]>**20080806165949] 
[small makefile refactoring: allow just the normal tests to be run, without bugs/*
Simon Michael <[EMAIL PROTECTED]>**20080805203242] 
[Rectify dist help
[EMAIL PROTECTED]
 Removed the "make dist" suggestion, the manual is a better place for that.
 Instead, make clear that it operates on a clean copy of the tree, and
 mention the "predist" functionality.
] 
[Canonize Gaetan Lehmann and Daniel Buenzli.
Eric Kow <[EMAIL PROTECTED]>**20080730104357
 (for Daniel B, avoid an accent in his name)
] 
[configure: check for packages needed with split base.
Eric Kow <[EMAIL PROTECTED]>**20080730103840
 Now that all packages must be used explicitly.
] 
[fix type witness compile errors specific to ghc 6.8
Jason Dagit <[EMAIL PROTECTED]>**20080722182729] 
[website: explain that darcs 2 is required to get the darcs source.
Simon Michael <[EMAIL PROTECTED]>**20080803181216] 
[avoid import of unused function fromMaybe.
David Roundy <[EMAIL PROTECTED]>**20080729172825] 
[configure: suggest regex-compat before text
Eric Kow <[EMAIL PROTECTED]>**20080725095336] 
[configure: mention Haskell in 'try installing' suggestion
Eric Kow <[EMAIL PROTECTED]>**20080725095015] 
[Typo (Text.Regex)
Eric Kow <[EMAIL PROTECTED]>**20080715121708] 
[Use haskeline to have a readline-like behavior when asking something to the user
[EMAIL PROTECTED]
 Unlike the implementations using readline or editline packages, this code
 code doesn't break the Ctrl-C behavior.
] 
[Improve generic rules for English plurals. 
Eric Kow <[EMAIL PROTECTED]>**20080604123728] 
[add configure check for Network.URI.
David Roundy <[EMAIL PROTECTED]>**20080711011914] 
[add -hide-all-packages to default GHCFLAGS.
David Roundy <[EMAIL PROTECTED]>**20080711010952] 
[add support for outputting patch numbers in darcs changes.
David Roundy <[EMAIL PROTECTED]>**20080710011211] 
[add support for matching single patches by index.
David Roundy <[EMAIL PROTECTED]>**20080710004512] 
[add support for matching ranges of patches (counting back from present).
David Roundy <[EMAIL PROTECTED]>**20080710003225] 
[Better avoid silly manpage error.
Trent W. Buck <[EMAIL PROTECTED]>**20080704024920
 
 It turned out only initialize's help string used 'quotes', so just
 remove them.  This makes init's docstring consistent with the others.
] 
[Missing period at end of sentence.
Trent W. Buck <[EMAIL PROTECTED]>**20080704024232] 
[darcs --overview no longer works, so don't document it.
Trent W. Buck <[EMAIL PROTECTED]>**20080704030804] 
[Avoid silly manpage error.
Trent W. Buck <[EMAIL PROTECTED]>**20080703010733
 man (nroff) treats an apostrophe in the first column specially,
 resulting in a syntax error without this patch.
 
 Ideally, all cases of 'foo' in the manpage (i.e. docstrings) should
 become `foo', since man -Tps turns ` and ' into left and right single
 quotes respectively.
] 
[obliterate whitespace in Darcs.Commands.Get
[EMAIL PROTECTED]
 'twas causing lhs/haddock difficulties where a \end{code} wasn't getting recognized.
] 
[rm haddock CPP business
[EMAIL PROTECTED]
 Try as I might, I can't see any reason to special-case some Haddock CPP logic to deal with some *commented-out guards*, unless CPP magically restores and uncomments the code if Haddock isn't being run.
] 
[make pull less verbose when --verbose flag is given.
David Roundy <[EMAIL PROTECTED]>**20080624170035] 
[fix makefile to remember to regenerate version information after running configure.
David Roundy <[EMAIL PROTECTED]>**20080624170001] 
[TAG 2.0.2
David Roundy <[EMAIL PROTECTED]>**20080624012041] 
Patch bundle hash:
8316c46e56ba60b5e6e20ced048bddf89621469c
_______________________________________________
darcs-users mailing list
[email protected]
http://lists.osuosl.org/mailman/listinfo/darcs-users

Reply via email to