-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512


New patches:

[spellcheck Check.hs
gwern0@gmail.com**20080402014018] {
hunk ./Distribution/PackageDescription/Check.hs 78
 
 -- | Results of some kind of failed package check.
 --
- --- There are a range of severities, from merely dubious to totally insane.
+-- There is a range of severity, from merely dubious to totally insane.
 -- All of them come with a human readable explanation. In future we may augment
 -- them with more machine readable explanations, for example to help an IDE
 -- suggest automatic corrections.
hunk ./Distribution/PackageDescription/Check.hs 82
- ---
 data PackageCheck =
 
        -- | This package description is no good. There's no way it's going to
hunk ./Distribution/PackageDescription/Check.hs 94
      | PackageBuildWarning { explanation :: String }
 
        -- | An issue that might not be a problem for the package author but
- -       -- might be annoying or determental when the package is distributed to
+       -- might be annoying or detrimental when the package is distributed to
        -- users. We should encourage distributed packages to be free from these
        -- issues, but occasionally there are justifiable reasons so we cannot
        -- ban them entirely.
hunk ./Distribution/PackageDescription/Check.hs 100
      | PackageDistSuspicious { explanation :: String }
 
- -       -- | An issue that is ok in the author's environment but is almost
+       -- | An issue that is OK in the author's environment but is almost
        -- certain to be a portability problem for other environments. We can
        -- quite legitimately refuse to publicly distribute packages with these
        -- problems.
merger 0.0 (
hunk ./Distribution/PackageDescription/Check.hs 197
- -         "Dulicate modules in library: " ++ commaSep moduleDuplicates
+         "Duplicate modules in library: " ++ commaSep moduleDuplicates
hunk ./Distribution/PackageDescription/Check.hs 197
- -         "Dulicate modules in library: " ++ commaSep moduleDuplicates
+         "Duplicate modules in library: " ++ commaSep moduleDuplicates
)
merger 0.0 (
hunk ./Distribution/PackageDescription/Check.hs 221
- -            "Dulicate modules in executable '" ++ exeName exe ++ "': "
+            "Duplicate modules in executable '" ++ exeName exe ++ "': "
hunk ./Distribution/PackageDescription/Check.hs 221
- -            "Dulicate modules in executable '" ++ exeName exe ++ "': "
+            "Duplicate modules in executable '" ++ exeName exe ++ "': "
)
hunk ./Distribution/PackageDescription/Check.hs 555
 
 -- | Sanity check things that requires IO. It looks at the files in the package
 -- and expects to find the package unpacked in at the given filepath.
- ---
 checkPackageFiles :: PackageDescription -> FilePath -> IO [PackageCheck]
 checkPackageFiles pkg root = do
     licenseError   <- checkLicenseExists pkg root
}

Context:

[Add PackageIndex.reverseDependencyClosure
Duncan Coutts <duncan@haskell.org>**20080506234902
 It's similar to dependencyClosure but looks at reverse dependencies.
 For example it's useful to find all packages that depend on broken
 packages and are thus themselves broken.
] 
[Improve style and performance of PackageIndex.dependencyClosure
Duncan Coutts <duncan@haskell.org>**20080506234447
 Keep the completed set as another PackageIndex rather than a list.
 We want to return an index at the end anyway and in the mean time
 we want to do lots of lookups to see if we've visited previously.
] 
[Add PackageIndex.dependencyGraph that builds a Graph
Duncan Coutts <duncan@haskell.org>**20080506234326
 Useful for some more tricky queries.
] 
[Add PackageIndex.delete
Duncan Coutts <duncan@haskell.org>**20080506131603
 We occasionally need to remove packages from an index
 eg to restrict the choices of a dependency resolver.
] 
[Remove a test for the specific kind of exception for nhc98 compatibility
Duncan Coutts <duncan@haskell.org>**20080506102804
 This was the check for ghc-pkg failing. We cannot check for the
 exception being an ExitException since that assumes ghc's
 representation of the Exception type, whereas nhc98 defines:
 type Exception = IOError
] 
[Cope better with ghc bug #2201, display a better error message
Duncan Coutts <duncan@haskell.org>**20080505085746
 Otherwise it can (and does) really confuse people.
 The problem is that the command $ ghc-pkg-6.9 describe '*' --user
 returns a non-zero exit code if the user package db is empty.
 ghc-pkg intends this exit code to tell us if the query returned
 any results (one can use more complex queries as tests) but Cabal
 interprets it as failure. Indeed we cannot distinguish it from
 any other kind of failure from ghc-pkg.
] 
[Add PackageIndex.dependencyCycles
Duncan Coutts <duncan@haskell.org>**20080504131626
 Finds any cycles (strongly connected components) in the dependencies
 of set of packages. This is useful for checking the correctness of
 installation plans.
] 
[Change dependencyInconsistencies to not take the pseudo top package
Duncan Coutts <duncan@haskell.org>**20080504130802
 The one case where we need the pseudo top package we can use
 PackageIndex.insert instead to get the same effect and there
 are other cases in cabal-install where we do not want a pseudo
 top package.
] 
[Reverse the order of the args to PackageIndex.insert
Duncan Coutts <duncan@haskell.org>**20080504130317
 To take the index last like the other functions and like Data.Map.
 It is actually more convenient that way round.
] 
[Revert the change about the --internal flag and a warning about haddock
Duncan Coutts <duncan@haskell.org>**20080501223131
 Just a bit of confusion over the behaviour of the --executable flag.
] 
[Document --internal in Cabal.xml
Joachim Breitner <mail@joachim-breitner.de>**20080501153356] 
[With --executable, --internal just adds --ignore-all-exports
Joachim Breitner <mail@joachim-breitner.de>**20080501152544] 
[Implement --internal flag
Joachim Breitner <mail@joachim-breitner.de>**20080501152421
 Passing --internal to the haddock stage does these things:
  * Does not pass --hide parameter to haddock
  * Passes --ignore-all-exports parameter
  * Appends "(internal documentation)" to the title
] 
[Add an --internal flag to HaddockFlags
Joachim Breitner <mail@joachim-breitner.de>**20080501145103] 
[Revert the other `fmap` to (.)
Malcolm.Wallace@cs.york.ac.uk**20080501110006
 To avoid needing a non-H'98 instance of Functor for (->).
] 
[Revert one change of (.) to fmap. It was not necessary and broke nhc98.
Duncan Coutts <duncan@haskell.org>**20080501104620
 The other one was needed as we changed a type from Bool to Maybe Bool.
] 
[Add help command as per ticket #272
Duncan Coutts <duncan@haskell.org>**20080430133740
 "cabal help" behaves like "cabal --help"
 "cabal help cmd" behaves like "cabal cmd --help"
 Should still work with command line completion.
] 
[Change handling of bool command line args to allow an unset state
Duncan Coutts <duncan@haskell.org>**20080429201123
 For bool valued flags we were always producing the command line
 string corresponding to a false flag value, even if the flag was
 not set. For example we'd always get "--disable-shared".
 It is important for cabal-install to be able to take an empty set
 of flags, override a few flags and turn the flags back into
 command line strings without getting a lot of extra defaults.
 Partly this is because we have to work with older versions of the
 Cabal library command line which does not recognise the new options.
] 
[Remove the feature for highlighting the default cases in --help output
Duncan Coutts <duncan@haskell.org>**20080429191206
 Turns out it doesn't help us much because in many cases the initial/default
 flags are actually empty so we cannot identify the default values.
] 
[Make the old test code compile
Duncan Coutts <duncan@haskell.org>**20080428225729
 Still a lot of bit rot, many of the full tests fail due to changed paths
] 
[Fix license parsing
Duncan Coutts <duncan@haskell.org>**20080428192255
 Spotted by the testsuite which I'm trying to resurrect.
] 
[Fix fix for #224.
Thomas Schilling <nominolo@gmail.com>**20080426164537
 
 Changing from list of Dependencies to Maps resulted in the wrong Monoid 
 instance being used.  I'd still like to be able to run a test suite on 
 this but that'd require a lot more work to do properly...
] 
[When multiple specifying list fields in the same section combine them
Duncan Coutts <duncan@haskell.org>**20080423201519
 eg if you had:
 extensions: Foo
 extensions: Bar, Baz
 then previously we only ended up with [Bar, Baz]. Now we get them all.
 Only applies to list fields, for single fields the second value is taken
 and the first is silently discarded. This isn't good of course but the
 fix is harder since we're not in a context where we can report errors.
 Really we should just declare up front what kind of field it is and
 inherit the right behaviour automagically, either duplicates disallowed
 or allowed and combined with mappend.
] 
[Normalise file names in warning messages
Duncan Coutts <duncan@haskell.org>**20080423190457
 We already do this for error messages.
] 
[Fix the check for -XFooBar ghc-options flags to be more permissive
Duncan Coutts <duncan@haskell.org>**20080423190243
 Previously we rejected all such flags but that posed the problem that older
 versions of Cabal, like 1.1.6 did not understand new extensions so we
 could not actually follow the advice and use the extenion. So now we only
 warn about -X flags if they refer to old extensions that Cabal 1.1.6 knew
 about. If the .cabal file specifies cabal-version: >= 1.2 or similar
 (anything that excludes 1.1.6) then we warn about all -X flags.
] 
[Add checks for unknown OS Arch and Compiler names
Duncan Coutts <duncan@haskell.org>**20080423151410
 They're ok locally but for distribution they need to be known.
] 
[Package check now take a GenericPackageDescription
Duncan Coutts <duncan@haskell.org>**20080423150354
 Unfortunately in some cases we only have a already-configured
 PackageDescription to we have to expose a checkConfiguredPackage.
 We should refactor things so that we keep all the information
 even in a configured PackageDescription.
] 
[Make warning messages show the file name
Duncan Coutts <duncan@haskell.org>**20080422141909] 
[Update UTF8 code
Duncan Coutts <duncan@haskell.org>**20080422141539
 Some code and test cases taken from the utf8-string package.
 Updated copyright notice appropriately (I think).
] 
[fix import for nhc98
Malcolm.Wallace@cs.york.ac.uk**20080422133009] 
[Don't nub extra-libs in unionBuildInfo
Duncan Coutts <duncan@haskell.org>**20080420192312
 It's possible that we sometimes need to list the same library
 more than once if there are circular symbol references.
] 
[Fix unionBuildInfo
Duncan Coutts <duncan@haskell.org>**20080420180520
 Fix ticket #264 to use nub only on the fields which are treated as sets.
 Probably we should be using the right types and mappend for each field.
 Change to construct a new value from scratch rather than overriding one
 of the two args. This helps to make sure we're updating all the field
 as we get a warning if we miss any. Turns out we were missing the ghc
 profiling and shared libs options which meant they were getting dropped.
 That had the effect of ghc-prof-options: in .cabal files being ignored.
 Thanks to 'midfield' from #haskell for spotting this.
] 
[Add newtype FlagName and FlagAssignment type alias
Duncan Coutts <duncan@haskell.org>**20080415204854
 and use them in the appropriate places.
] 
[Add PackageIndex.insert and reverse merge/mappend
Duncan Coutts <duncan@haskell.org>**20080415203637
 Packages in the second argument to merge now mask those in the first.
] 
[Make finalizePackageDescription use CompilerId type
Duncan Coutts <duncan@haskell.org>**20080413224111
 Use the proper data type rather than a tuple (CompilerFlavor, Version)
] 
[Fix #224.  We do not yet warn if the user specified a dependency that
Thomas Schilling <nominolo@gmail.com>**20080413182659
 did not occur in the package (it is just silently ignored.)
] 
[Add 'readP_to_E' function that takes the longest parse.
Thomas Schilling <nominolo@gmail.com>**20080413182042] 
[Add simple test case for the dependency resolution case.  This should
Thomas Schilling <nominolo@gmail.com>**20080413132002
 go into the test suite one day.
] 
[Fix/Add documentation.
Thomas Schilling <nominolo@gmail.com>**20080413131839] 
[Change dependency resolution algorithm.
Thomas Schilling <nominolo@gmail.com>**20080413131807
 
 There were two reasons to do this.  Firstly, this formulation makes it
 easier to add the --constraint command line flag that adds additional
 constraints on the packages that should be used.
 
 Secondly, with the orgininal algorithm it was possible to satisfy the
 constraint "foo < 1, foo > 2" if we had two versions of package "foo"
 which each satisfy one constraint.  This patch fixes this by requiring
 the same package to satisfy both constraints (which of course is
 impossible in this case).
] 
[expose ghcOptions
jeanphilippe.bernardy@gmail.com**20080417211221
 This helps finding the options to pass to GHC API in various tools
] 
[expose tryGetConfigStateFile
jeanphilippe.bernardy@gmail.com**20080417180248
 This is needed by Yi to (try to) load an arbitrary
 project.
] 
[fix for #187 -- directory of Paths_packagename is included when looking for source files
Andres Loeh <mail@andres-loeh.de>**20080412204904] 
[Check for the required cabal version early in parsing
Duncan Coutts <duncan@haskell.org>**20080409154655
 Previously we only checked the "cabal-version" field after parsing
 and all other configure processing. If the package really needs a
 later Cabal version it is of course highly likely that parsing or
 configure are going to fail and the user is not going to get the
 helpful error message about the version of Cabal required. So now
 we do the check early during parsing. If a later version is
 required and parsing subsequently fails, we now report the version
 issue, not the subsequent parse error. If parsing succeeds we
 still issue a warning which should be a useful hint to the user if
 subsequent configure processing fails.
] 
[Use relative file paths in .cabal parse error messages
Duncan Coutts <duncan@haskell.org>**20080409154030
 Do this by normalising the file path in the error message
 and when looking for .cabal files, by looking in '.' rather
 than the absolute path of the current directory.
] 
[Remove unused import
Duncan Coutts <duncan@haskell.org>**20080409073352] 
[Fix for detecting ~/.cabal/ dir as a .cabal file
Duncan Coutts <duncan@haskell.org>**20080409073236
 Which happened if you use cabal configure in your home dir.
 Now produced the right error message, or if you actually put
 a cabal project in your home dir, it might actually work.
 Also, do the same fix for findHookedPackageDesc.
] 
[Fix spelling in error message
Duncan Coutts <duncan@haskell.org>**20080408134610] 
[Fix names of profiling libs
Duncan Coutts <duncan@haskell.org>**20080407013449
 I broke this recently when refactoring. Restore the original behaviour.
 Was generating "libHSfoo_p-1.0.a" when it should be "libHSfoo-1.0_p.a".
] 
[TAG 1.5.1
Duncan Coutts <duncan@haskell.org>**20080329181329] 
[Bump version to 1.5.1 -- the next development series
Duncan Coutts <duncan@haskell.org>**20080329181146
 Though we should try and limit divergence until 1.4.0 is released.
] 
[factor out showPWarning function
Ross Paterson <ross@soi.city.ac.uk>**20080328115612] 
[Tweak warning message about bool fields to include the field name
Duncan Coutts <duncan@haskell.org>**20080328012006
 Warning: The 'buildable' field is case sensitive, use 'True' or 'False'.
] 
[Simplify the parser for flags in conditions
Duncan Coutts <duncan@haskell.org>**20080327221632
 It's a bit more consistent.
] 
[We do not show the field value on a parse error so don't pretend we do.
Duncan Coutts <duncan@haskell.org>**20080327221442
 Drop the trailing ": " on the error message. We could provide the field
 value but they're often multi-line and we cannot pin-point where the
 error is exactly.
] 
[Use the Text Bool instance for parsing literals in conditions
Duncan Coutts <duncan@haskell.org>**20080327215501
 Since it exactly matches what the previous condition parser did.
 So we have two different ways of parsing Bool depending on
 context. Sigh. Both match exactly what was done in Cabal-1.2.
] 
[Parse Bool fields using more cunning, allow new parses with a warning
Duncan Coutts <duncan@haskell.org>**20080327213411
 We want to allow case-insensitive parsing however we don't want
 packages being uploaded to hackage that will break older versions of
 Cabal. If we allow new valid parses then we will end up breaking
 stuff. So what we really want to do is allow new parses but warn if
 they're not ones that older versions of Cabal would have allowed. So
 long as hackage rejects pakcages that have parse warnings then we can
 prevent new .cabal files appearing on hackage that would break older
 Cabal versions. Our current parser (ReadP) does not support warnings
 so we have to handle the bool fields specially in the parser wrapper
 layer that we added to handle errors and warnings. This can go away
 when we use a parser with support for error and warning messages.
] 
[Add scripts for testing compatability with hackage packages
Duncan Coutts <duncan@haskell.org>**20080327161540
 So far just a test that all the non-trivial Setup.(l)hs scripts
 compile. This only tests the latest versions, though if one were
 to download a complete archive then one could test them all.
 To speed up the check we skip Setup.hs scripts that have fewer
 than 22 words. Below this cutoff there are no custom hooks and
 it catches the great majority of scripts which greatly speeds up
 the check.
] 
[Rename various *Verbose fields to *Verbosity instead
Duncan Coutts <duncan@haskell.org>**20080327034815
 Despite appearances this is actually not completely pointless.
 For the Cabal-1.4 branch we need the *Verbose fields to have the
 same types as they did in Cabal-1.2, becuase lots of Setup.hs
 scripts use them and our change to make them all have type Flag
 makes many Setup.hs scripts fail. A solution for the 1.4 branch
 is to rename the real field and to add the old field back in.
 To keep as much similarity as possible between the HEAD and 1.4
 branches I'm applying the name change in both.
 On the plus side it's a better name anyway.
] 
[Make UTF-8 decoding errors in .cabal files non-fatal
Duncan Coutts <duncan@haskell.org>**20080327031740
 Previously we checked for invalid UTF-8 in the first phase of the
 parser, which splitting the file up into nested sections and fields.
 This meant the whole parser falls over if there is invalid UTF-8
 anywhere in the file. Sadly there are already packages on hackage
 with invalid UTF-8 so we would fail when parsing the hackage index.
 The solution is to move the check into the parsing of the individual
 fields and making it a warning not an error. We most typically get
 invalid UTF-8 in free text fields like author name, copyright,
 description etc so this should work out ok usually.
 We now get pretty decent error messages, like:
   Warning: hsx.cabal:5: Invalid UTF-8 text in the 'author' field.
 The warning type is now structured so that hackage will be able to
 distinguish general non-fatal warnings from UTF-8 decoding problems
 which really should be fatal errors for package uploads. 
] 
[Separate the OS/Arch classifiation used for different purposes
Duncan Coutts <duncan@haskell.org>**20080327005321
 We have to classify System.Info.{os,arch} strings into the OS and Arch
 enums. For that purpose we have to be quite permissive since there are
 lots of ailases that the various Haskell implementations use. However
 for parsing os and arch names in .cabal files we'd prefer to use
 canonical names, though we do have to allow the couple aliases already
 in common use.
] 
[Arch and OS names were previously allowed to contain "_-", restore that.
Duncan Coutts <duncan@haskell.org>**20080327004631
 That is the arch and os strings in conditionals in .cabal files, like:
   if arch(x86_64)
 Previously the parser used isAlphaNum c || (c `elem` "_-"). This is
 crucial for arch names like "x86_64". So make the new parser for OS
 and Arch types use the same string parser as before (there is a string
 parse part and a separate classification of known OS/Arch values).
] 
[allow underscores in arch names
Ross Paterson <ross@soi.city.ac.uk>**20080326165912
 
 Stops it barfing on arch(x86_64).
] 
[TAG 1.3.9
Duncan Coutts <duncan@haskell.org>**20080326142629] 
[Bump version to 1.3.9
Duncan Coutts <duncan@haskell.org>**20080326142603] 
[It appears that the ReadS variants reqArg'' and optArg'' are unused
Duncan Coutts <duncan@haskell.org>**20080326132534] 
[Replace three separate copies of no_extra_flags with one version
Duncan Coutts <duncan@haskell.org>**20080326132351] 
[help nhc98 to find Ix(inRange)
Malcolm.Wallace@cs.york.ac.uk**20080326113624] 
[Remove the need for instance Functor ((->) r)
Duncan Coutts <duncan@haskell.org>**20080325204154
 I think. It's hard to test since with base as it is we cannot
 easily compile without that instance being in scope.
] 
[remove ugly nhc98 cpp+defaulting hack - use explicit typesig instead
Malcolm.Wallace@cs.york.ac.uk**20080325134032] 
[cpp language pragmas required
Malcolm.Wallace@cs.york.ac.uk**20080325132705] 
[help nhc98 to disambiguate class methods
Malcolm.Wallace@cs.york.ac.uk**20080325124523] 
[disambiguate some imports
Malcolm.Wallace@cs.york.ac.uk**20080325124157] 
[needs an import of non-H'98 instance Functor ((->) r)
Malcolm.Wallace@cs.york.ac.uk**20080325123213] 
[help nhc98 decipher ambiguous class methods
Malcolm.Wallace@cs.york.ac.uk**20080325112506] 
[make indentation H'98 compliant
Malcolm.Wallace@cs.york.ac.uk**20080325110746] 
[Switch a few debug Show instances to use derived Show
Duncan Coutts <duncan@haskell.org>**20080325022703
 The pretty printer version should be using Text but I've left them as
 comments for the moment as they do not have corresponding parsers yet.
] 
[Use disp/display in a couple more places instead of show
Duncan Coutts <duncan@haskell.org>**20080325010754] 
[Remove last uses of parseReadS
Duncan Coutts <duncan@haskell.org>**20080324232804
 One use was for parsing bools in the installed package info. We can
 go with the more liberal Text instance for that. The other use is for
 parsing Haskell strings in quoted string fields. So we keep it for
 that purpose but restrict the type and rename to parseHaskellString.
] 
[Add parseCompilerFlavorCompat and use it instead of parseReadS
Duncan Coutts <duncan@haskell.org>**20080324232112
 So it accepts the same valid values as parseReadS did, but doesn't
 fall over on unknown values, returning (OtherCompiler "the_name").
] 
[Prserve case when parsing unknown/other enum values for OS,Arch and Compiler
Duncan Coutts <duncan@haskell.org>**20080324232000] 
[Add warning about the use of ghc-options: -optl-Wl,-s
Duncan Coutts <duncan@haskell.org>**20080324201417] 
[Check for unknown build-type, extensions, licenses and compilers
Duncan Coutts <duncan@haskell.org>**20080324193001] 
[Parse extension names in .cabal files using Text rather than Read
Duncan Coutts <duncan@haskell.org>**20080324191622
 This means we can now parse unknown extensions without falling over.
 Indeed if the compiler supports the unknown extension then we can
 even successfully use it. This gives us some forwards compatability
 for new extensions.
] 
[Improve the warning message about unsupported extensions.
Duncan Coutts <duncan@haskell.org>**20080324191421
 That is, extensions the compiler does not support, as opposed to
 extensions that are unknown to Cabal.
] 
[Convert a couple uses of read/reads in the GHC module
Duncan Coutts <duncan@haskell.org>**20080324191026
 Read the ghc --supported-languages list using simpleParse rather than
 reads. It now parses extensions that GHC recognises but Cabal does
 not as (UnknownExtension theExtensionName). For example this allows
 people to use the PArr extension which ghc currently supports but
 which is not a finalised registered extension.
] 
[Add Text instance for Extension and add UnknownExtension constructor
Duncan Coutts <duncan@haskell.org>**20080324150027
 The parse function is ~15x faster than using reads by using a simple
 hash table :: Array Char [(String, Extension)]. The hash function is
 then just 'head' -- the first letter of the extension name.
] 
[Remove another reminant of support for ghc-6.2
Duncan Coutts <duncan@haskell.org>**20080324145637] 
[Add Text instance for BuildType and add UnknownBuildType constructor
Duncan Coutts <duncan@haskell.org>**20080324141400
 Drop parseReadSQ as that was the last use of it.
 Still need to add a build warning for UnknownBuildTypes
] 
[FIX #166 by setting the right buildDir when preprocessing in sdist
Andrea Vezzosi <sanzhiyan@gmail.com>**20080323145452] 
[Make parsing of licenses more robust
Duncan Coutts <duncan@haskell.org>**20080321181300
 Added an UnknownLicense String constructor so that we can remember
 unknown license names and report them and prevent them from being
 uploaded to hackage, but not fail hard with a parse error upon
 encountering an unknown license. This does not add any new licesnes
 or and new valid parses of existing licenses. The parsing phase
 now allows an optional version like "GPL-3" however that would still
 be classified as an unknown license at the moment. The point is it's
 no longer a parse error but a semantic error instead.
] 
[-Wall police
Duncan Coutts <duncan@haskell.org>**20080321193300] 
[Automatically highlight default options of a CommandUI when converting it to a list of GetOpts
Pepe Iborra <mnislaih@gmail.com>**20080321105210
 
 I shamelessly stole some code from GHCi for the highlighting.
] 
[wibbles (some more)
Pepe Iborra <mnislaih@gmail.com>**20080320171144] 
[Fix a non-total function definition warning
Pepe Iborra <mnislaih@gmail.com>**20080319165526] 
[Add Text instance for License
Duncan Coutts <duncan@haskell.org>**20080321053811
 Initially it's exactly the same format as Read/Show.
 We can make it more liberal later.
] 
[Add Text instance for CompilerFlavor and CompilerId
Duncan Coutts <duncan@haskell.org>**20080321051250
 This is a tad subtle since we actually have two ways of parsing
 compiler flavours. One expects, or at least allows lower case names
 like "ghc" and "nhc98", the other uses Read/Show which gives "GHC"
 and "NHC". What we're doing here is only changing the first variety.
 The cases where we parse using Read (and display using Show) are not
 changed. At some point we'll switch those over to the more liberal
 parser, but not yet as we don't want to cause compatibility problems.
] 
[Add Text instances for OS and Arch
Duncan Coutts <duncan@haskell.org>**20080321041255] 
[Add Text instances for PackageIdentifier and Dependency
Duncan Coutts <duncan@haskell.org>**20080321035013
 And change all uses.
] 
[Add Text instances for Version and VersionRange
Duncan Coutts <duncan@haskell.org>**20080321031416
 The instance for Version is in the Text module itself because the
 Version type is defined in base. This avoids an orphan instance.
] 
[Add Text class for displaying and parsing values
Duncan Coutts <duncan@haskell.org>**20080321015414
 This is intended to replace all these showFoo read/parseFoo functions
 we have all over the place. It's like the Read/Show classes but uses
 a half decent parser and pretty printer:
 class Text a where
   disp  :: a -> Doc
   parse :: ReadP a
 This patch just adds the class and an instance for Bool, replacing
 the parseBool function used in a few places. More to follow...
] 
[Bump version number due to recent api changes
Duncan Coutts <duncan@haskell.org>**20080319221643] 
[Update a couple things in the README and update changelog
Duncan Coutts <duncan@haskell.org>**20080319123712] 
[Documentation the --enable/disable-executable-stripping options
Duncan Coutts <duncan@haskell.org>**20080319121212] 
[Add --enable/disable-executable-stripping option
Duncan Coutts <duncan@haskell.org>**20080319120924
 The default is enabled
] 
[Allow '_' char in buld tool names
Duncan Coutts <duncan@haskell.org>**20080319115323
 eg we have build-tools like "pg_config"
] 
[Wibbles
Pepe Iborra <mnislaih@gmail.com>**20080318203230] 
[#223 part 1: Extend Distribution.Command.Simple.Option
Pepe Iborra <mnislaih@gmail.com>**20080317203015
      so that it really represents an option and not just a flag.
      It's been renamed to OptionField as it models a field in a flags-like data structure. 
      
         data OptionField a = OptionField {
           optionName        :: Name,
           optionDescr       :: [OptDescr a] }
       
         data OptDescr a  = ReqArg Description OptFlags ArgDescr (ReadE (a->a))         (a -> [String])
                          | OptArg Description OptFlags ArgDescr (ReadE (a->a)) (a->a)  (a -> [Maybe String])
                          | ChoiceOpt [(Description, OptFlags, a->a, a -> Bool)]
 			 | BoolOpt Description OptFlags{-True-} OptFlags{-False-} (Bool -> a -> a) (a -> Bool)
       
       An option field can expand to several command line options, which are all defined together.
       For example, the compiler flag is defined as follows.
       
             option [] ["compiler"] "compiler"
                configHcFlavor (\v flags -> flags { configHcFlavor = v })
                (choiceOpt [ (Flag GHC, ("g", ["ghc"]), "compile with GHC")
                           , (Flag NHC, ([] , ["nhc98"]), "compile with NHC")
                           , (Flag JHC, ([] , ["jhc"]), "compile with JHC")
                           , (Flag Hugs,([] , ["hugs"]), "compile with Hugs")])
       
       We can need to use several kinds of OptDescr for the same option, as in the 
       optimization Option (really a extreme case):
       
             ,multiOption "optimization"
                configOptimization (\v flags -> flags { configOptimization = v })
                [optArg' "n" (Flag . flagToOptimisationLevel)
                 ....
                 ....
                         "Build with optimization (n is 0--2, default is 1)",
                 noArg (Flag NoOptimisation) []
 
] 
[Refactor sdist code a bit
Duncan Coutts <duncan@haskell.org>**20080318235916
 Separate the phases of sdist better so that they can be reused in
 cabal-install. This part is similar to Andrea Vezzosi's patch.
 Separate the snapshot code rather than mixing it all in with prepareTree.
 Use a proper withTempDirectory which fixes one FIXME.
 Better separate UI code from actions, move the notices to sdist.
] 
[fix 'clean' bug on windows caused by leaked Handle.
Andrea Vezzosi <sanzhiyan@gmail.com>**20080318161237
 Using readFile to read dist/setup-config keeps the Handle open when we try to delete the file, causing an error. 
 So we instead read the file strictly and close the Handle early.
] 
[Change mkLibName and friends to take a package id and not take the dir
Duncan Coutts <duncan@haskell.org>**20080317221259
 So now it really gives just the lib name and not its location as well.
 It turned out that we more often want just the name since we're copying
 the same named file from one directory to another.
 Taking a PackageIdentifier means we do the conversion to string in one
 place rather than all over the place.
 It also means we're chaning the lib names for nhc98 to include the lib
 version number. This should not make any real difference to nhc98.
] 
[Document the --extra-include-dirs and --extra-lib-dirs options
Duncan Coutts <duncan@haskell.org>**20080318134913
 Though they actually only take one dir each so perhaps they should be
 renamed to just --extra-include-dir and --extra-lib-dir. You can of
 course use them multiple times to get a list of dirs.
] 
[#221: specific include and library search paths options
Pepe Iborra <mnislaih@gmail.com>**20080317181203
 
   This patch adds two new command line options to configure,
   --extra-include-dirs and extra-lib-dirs.
   These have effect over all the buildables in a project.
 
   What is missing now is support for reading these from the .cabal/config file.
   That will be done as part of ticket #223.
 
 
] 
[Move the call to ranlib out into a separate function
Duncan Coutts <duncan@haskell.org>**20080317193258
 It's a bit more readable that way.
] 
[Strip executables during installation for ghc
Duncan Coutts <duncan@haskell.org>**20080317193214
 Does not yet have a configure flag to turn this behaviour on and off.
 That can wait until after the command line flag infrastructure changes.
] 
[Add a CompilerId type and use it in appropriate places
Duncan Coutts <duncan@haskell.org>**20080312031247
 Especially instead of abusing a PackageIdentifier for the purpose.
] 
[Move Dependency and it's show and parser into Package module
Duncan Coutts <duncan@haskell.org>**20080312020042
 Rather than having it in Version and its parser elsewhere.
 The Package module already imports the Version module which exports the
 VersionRange type.
] 
[Fix search dirs used for pre-processing executables
Duncan Coutts <duncan@haskell.org>**20080312203947
 It was combining the executable's hs-source-dirs with the library's
 hs-source-dirs when pre-processing executables. This was inconsistent
 with the search path used for finding ordinary .hs files and with
 sdist and lead to confusing behaviour. See ticket #161.
 If an executable needs source files from the library then it must specify
 the right hs-source-dirs, including '.' if appropriate.
 The behaviour is that if hs-source-dirs is not specified then the default
 is '.' however if hs-source-dirs is specified then '.' is not implicitly
 added. If it's needed then it must be added explicitly. This was always
 the case for ordinary .hs files, this patch just brings things into line
 for files that need pre-processing.
] 
[move inDir to Distribution.Simple.Utils
Andrea Vezzosi <sanzhiyan@gmail.com>**20080306155316] 
[Remove manual formatting and line breaking from error messages
Duncan Coutts <duncan@haskell.org>**20080311125022
 It now gets line wrapped automatically by the logging functions
] 
[Fix rejection of non-ambigious options
Duncan Coutts <duncan@haskell.org>**20080308120902
 This GetOpt patch was sent the the libraries list by Eelis van der Weegen
 with the explanation:
 There is a bug in System.Console.GetOpt causing it to mistakenly reject
 options as ambiguous. Example:
   optsDesc = [Option "" ["color", "colour"] (ReqArg id "color") ""]
 Output:
   option `--col' is ambiguous; could be one of:
       --color=color, --colour=color  Foreground color
       --color=color, --colour=color  Foreground color
 This error is silly, because the two alternatives listed are the same option.
] 
[Add packageName, packageVersion and use them
Duncan Coutts <duncan@haskell.org>**20080307115838
 (pkgName . packageId) and (pkgVersion . packageId)
 turn out to be very common so give them names.
] 
[Make BuildInfo an instance of Monoid
Duncan Coutts <duncan@haskell.org>**20080307115659] 
[Use the right program config when reporting found programs
Duncan Coutts <duncan@haskell.org>**20080306124735] 
[Remove the #ifdef'ed unit test code from several modules
Duncan Coutts <duncan@haskell.org>**20080310191806
 They have all been moved to tests/UnitTest/
 So we don't need so much CPP in the ordinary modules now.
] 
[Use the same ReadP for all compilers, remove CPP hacks
Duncan Coutts <duncan@haskell.org>**20080310191422
 If we're bundling a whole copy of ReadP then why bother trying to use
 the version from the base package, especially when that requires hacks
 to use the H98 version with some compilers and the non-H98 version in
 base. It just makes testing harder because we're using different versions
 with different compilers.
 As a bonus, hugs should no longer need the -98 flag to use Cabal.
 Added all the type signatures back in and fixed some warnings.
] 
[Rearange unit tests some more add extract more tests from the other modules
Duncan Coutts <duncan@haskell.org>**20080310190651] 
[Reorganise and prune tests/
Duncan Coutts <duncan@haskell.org>**20080310183938
 Split them into unit tests and system tests. Also remove the rather large
 bundled HSQL and HUnit packages. We can just depend on HUnit for the tests
 rather than bundling it. HSQL is very large for a system test and we can
 just as easily get it and others from hackage.
] 
[Import Data.Tree rather than defining it locally
Duncan Coutts <duncan@haskell.org>**20080310164343
 Since we've dropped ghc-6.2 compatibility we can now use Data.Tree directly.
] 
[When generating default Setup.hs use defaultMain
Duncan Coutts <duncan@haskell.org>**20080307021350
 not defaultMainWithHooks defaultUserHooks since the latter is deprecated
] 
[Add test for ticket #257
Duncan Coutts <duncan@haskell.org>**20080307021233
 Not automated yet, the testsuite needs resurrecting first.
] 
[Fix sdist to ignore the buildable attribute
Duncan Coutts <duncan@haskell.org>**20080307020933
 Fixes ticket #257
] 
[Check that the --prefix is always specified as an absolute path
Duncan Coutts <duncan@haskell.org>**20080306113532
 Should eliminate confusion with doing: cabal configure --prefix=~/local
 Instead use --prefix ~/local or --prefix=$HOME/local
] 
[Use CompilerFlavor rather than String in configurations expressions
Duncan Coutts <duncan@haskell.org>**20080305011046
 Better type safety and more robust parsing.
] 
[Add read/show for CompilerFlavour like for OS and Arch
Duncan Coutts <duncan@haskell.org>**20080305010820
 Also add YHC compiler flavour.
] 
[Rename Distribution.System.os to .buildOS and eliminate Windows sub-type
Duncan Coutts <duncan@haskell.org>**20080304234358] 
[Make an Arch enum like we have for OS and use it
Duncan Coutts <duncan@haskell.org>**20080304203802
 We get more robust parsing and comparisons of arch names this way
 and it'll allows us to detect and warn about unknown arches.
] 
[Fix configure for hugs where we don't know what packages are installed
Duncan Coutts <duncan@haskell.org>**20080305023626
 For Hugs, nhc98 and other compilers we do not know what packages are
 already installed, so we just make some up, pretend that they do exist
 and just hope for the best. We make them up based on what other package
 the package we're currently building happens to depend on.
 See inventBogusPackageId. Let's hope they really are installed... :-)
 One could see this as all rather redundant - carefully making up bogus
 information to satisfy a careful check. I prefer to see it as making
 explicit something that was previously implicit. The proper solution is
 to discover what packages are currently installed.
] 
[Restore using 30k max command line sizes when linking
Duncan Coutts <duncan@haskell.org>**20080305020857
 See http://hackage.haskell.org/trac/hackage/ticket/98#comment:17
] 
[Include .hs-boot files into the sdist tarball
Duncan Coutts <duncan@haskell.org>**20080304015334
 Tested using Agda which uses several .hs-boot files.
] 
[Fix speling.
Thomas Schilling <nominolo@gmail.com>**20080303221735] 
[Clarify commenting rule for package description files.
Thomas Schilling <nominolo@gmail.com>**20080303221657] 
[Actually we don't need wrapText'
Duncan Coutts <duncan@haskell.org>**20080303214150
 Any users of custom wrapText versions can go from the underlying wrapLine
] 
[Bump version to 1.3.7
Duncan Coutts <duncan@haskell.org>**20080303204000
 Keep up with recent minor api changes
] 
[Put a header in the dist/setup-config file and check it on loading
Duncan Coutts <duncan@haskell.org>**20080303202855
 This should fix ticket #120 in future which is the problem where you do
 something like "sudo runghc Setup install" and you accidentally end up
 using a different version of the compiler or of the Cabal lib and you get
 an unhelpful error message:
 > Setup.hs: error reading ./.setup-config; run "setup configure" command?
 Well now you'll get a helpful error message:
 > setup: You need to re-run the 'configure' command. The version of Cabal
 > being used has changed (was Cabal-1.3.6, now Cabal-1.3.7).
 If the compiler version being used has changed too we get the extra helpful:
 > setup: You need to re-run the 'configure' command. The version of Cabal
 > being used has changed (was Cabal-1.3.6, now Cabal-1.3.7). Additionally
 > the compiler is different (was ghc-6.8, now ghc-6.9) which is probably
 > the cause of the problem.
 Of course this does not help for older versions of Cabal but there's not a
 lot we can do about that.
] 
[Extend and use the OS data type in the package description
Duncan Coutts <duncan@haskell.org>**20080303200338
 Rather than just using a string. This makes comparing OSs easier since
 we can normalise them once when we parse rather than every time we compare.
 Also makes it easy to discover when a package mentions an unknown OS since
 it's marked as Other "whatever".
] 
[Wrap the output of the logging functions
Duncan Coutts <duncan@haskell.org>**20080303182623
 So we'll not have to keep adjusting newline breaks.
] 
[Warn about use of the BSD4 license
Duncan Coutts <duncan@haskell.org>**20080301000344] 
[-Wall clean, remove unused import
Duncan Coutts <duncan@haskell.org>**20080229232129] 
[Document configure --package-db flag
Duncan Coutts <duncan@haskell.org>**20080229230614] 
[Reformat License declaration and add related TODOs
Duncan Coutts <duncan@haskell.org>**20080229224932
 The real difficulty with changing the license stuff is the parser in current
 and older cabal versions is very fragile, it parses using Read so only
 recognises those exact enum values and if parsing fails, then parsing the
 whole .cabal file fails. We really need to make this more permissive for all
 the enumerations so that we can make changes in future.
] 
[fix import-breakage for non-GHC
Malcolm.Wallace@cs.york.ac.uk**20080228095403] 
[Document the new parameter to configure -O
Duncan Coutts <duncan@haskell.org>**20080227183000] 
[Add optional 'n' parameter to configure -O flag, ie -O0 -O1 -O2
Duncan Coutts <duncan@haskell.org>**20080227181257
 No change to the defaults.
] 
[Don't yet treat package registration files as UTF8
Duncan Coutts <duncan@haskell.org>**20080227020734
 Though we'll probably need to do so eventually because they contain many of
 the same fields as the .cabal files which are UTF8. This will need agreement
 with ghc-pkg.
] 
[Read captured process output as text
Duncan Coutts <duncan@haskell.org>**20080227020115
 So we get windows cr/lf conversion and don't need a special lines'
 implementation to deal with it. I'm guessing this is the problem that
 Satoshi Kodama encountered with ghc-6.9 on Windows.
] 
[Fix typos reported by Satoshi Kodama
Duncan Coutts <duncan@haskell.org>**20080227014735
 Not applying that patch as a whole since part of it
 needs to be done differently.
] 
[Revert some of the UTF8 changes, use UTF8 only for files we know are UTF8
Duncan Coutts <duncan@haskell.org>**20080227014549
 So we use ordinary read/writeFile for ordinary text files. For console
 output we use ordinary putStr etc and we'll just hope that haskell
 implementations catch up and deal with that sensibly. Don't assume
 captured program output is UTF8, use the default encoding.
 So we use binary mode IO along with UTF8 encoding and decoding only for 
 file types that we specify to be UTF8, which are .cabal files and
 .hs/.lhs files only.
] 
[Add liftOption for making derived command parsers
Duncan Coutts <duncan@haskell.org>**20080226200215
 liftOption :: (b -> a) -> (a -> (b -> b)) -> Option a -> Option b
 For example:
 liftOption fst (\a (_,b) -> (a,b)) :: Option a -> Option (a,b)
 Needed to be able to make a CommandUI (a, b) using an existing CommandUI a.
 That's what we want to do in cabal-install where the 'install' command
 to support all the 'configure' flags and some extra of it's own, for example
 --dry-run and probably several more in future.
] 
[GHC's package db files are actually ascii, not UTF8
Duncan Coutts <duncan@haskell.org>**20080225133255
 Because they're in Haskell Read/Show format which escapes non-ascii chars
 in Strings.
] 
[Check for invalid UTF8 when parsing .cabal files
Duncan Coutts <duncan@haskell.org>**20080225132824
 This assumes a permissive UTF8 decoder has inserted '\xfffd' as a replacement
 character. We should check strictly for errors when we decode instead, though
 it's nice to do that where we have some kind of error reporting infrastructure
 which is why I've added it to the parser for the moment. The current error
 message is not too bad, as it reports the line number.
] 
[Don't include the version number in the xsl-stylesheets path
Duncan Coutts <duncan@haskell.org>**20080225131838
 This is still shockingly platform dependent. Sigh.
] 
[Specify in the user guide that .cabal files must be valid UTF-8
Duncan Coutts <duncan@haskell.org>**20080225131756] 
[Don't warn about missing license file for public domain packages
Duncan Coutts <duncan@haskell.org>**20080225130228
 Fixes ticket #247.
 The whole concept of public domain as a license is also rather dodgy. In
 many legal jurisdictions it has no legal meaning and where it does one
 usually has to disclaim any copyright interest explicitly.
] 
[help nhc98 by hinting an import decl
Malcolm.Wallace@cs.york.ac.uk**20080225102450] 
[Switch all file read/writes and process output to use UTF8
Duncan Coutts <duncan@haskell.org>**20080224175524
 Added readTextFile and writeTextFile which use UTF8. rawSystemStdout now
 assumes the programs are producing output in UTF8 encoding.
] 
[Fix oversight in imports
Duncan Coutts <duncan@haskell.org>**20080224014631] 
[Bump version to 1.3.6
Duncan Coutts <duncan@haskell.org>**20080223184242
 Due to recent api changes
] 
[First pass at parsing .cabal files as UTF8
Duncan Coutts <duncan@haskell.org>**20080223184025
 Also print output and error messages etc in UTF8.
] 
[Make the user guide docbook xml validate
Duncan Coutts <duncan@haskell.org>**20080223183920] 
[Remove the old attic file
Duncan Coutts <duncan@haskell.org>**20080222205939] 
[Add writeFileAtomic to and use it everywhere in place of ordinary writeFile
Duncan Coutts <duncan@haskell.org>**20080222205735
 It uses the renaming trick to make the write atomic.
 Not yet tested on Windows.
] 
[Use withTempFile for the prelude file we pass to haddock
Duncan Coutts <duncan@haskell.org>**20080222205215] 
[Remove some more ghc pre-6.4 support and common up some showPackageId uses
Duncan Coutts <duncan@haskell.org>**20080222174227] 
[Import ReadP qualified and factor out parseFreeText
Duncan Coutts <duncan@haskell.org>**20080222174124] 
[Use packageId from the Package class in more places
Duncan Coutts <duncan@haskell.org>**20080222170923
 Using 'packageId' seems a bit clearer that it's just the PackageIdentifier 
 rather than 'package' which might indicate something containing more info.
 contain
] 
[Move Package class to Distribution.Package
Duncan Coutts <duncan@haskell.org>**20080222141910] 
[Export the PackageFixedDeps class
Duncan Coutts <duncan@haskell.org>**20080221204426
 and make GenericPackageDescription an instance of the Package class
] 
[Avoid a rare problem where we fail to find the haddock program
Duncan Coutts <duncan@haskell.org>**20080221204351] 
[Remove a coule unused imports
Duncan Coutts <duncan@haskell.org>**20080221204315] 
[more import/qualified name hints to help nhc98
Malcolm.Wallace@cs.york.ac.uk**20080221162700] 
[Use PackageIndex in finalisePackageDescription
Duncan Coutts <duncan@haskell.org>**20080220212741
 rather than [PackageIdentifier]
] 
[generalise remaining PackageIndex functions over class of pkgs with fixed deps
Duncan Coutts <duncan@haskell.org>**20080220195143
 Add a class for packages with fixed deps, like InstalledPackageInfo and
 generalise the few functions that used PackageIndex InstalledPackageInfo
 specifically to use PackageFixedDeps pkg => PackageIndex pkg
 This will be helpful in cabal-install for configured but not-yet-installed
 packages.
] 
[Generalise InstalledPackageIndex over all Package instances
Duncan Coutts <duncan@haskell.org>**20080220191031
 New Package class of things that can be identified by a PackageIdentifier
 so that covers at least PackageIdentifier, PackageDescription and
 InstalledPackageInfo. Most PackageIndex operations work for any package type.
] 
[Fix haddock markup
Duncan Coutts <duncan@haskell.org>**20080219132543] 
[Use the InstalledPackageIndex rather than calling ghc-pkg in Haddock module
Duncan Coutts <duncan@haskell.org>**20080219125050
 Previously we made two calls to ghc-pkg per-dependent package which starts
 to get very slow once you have 100's of installed packages and the package
 you're building depends on several of them. Now we use the cached information
 about the installed packages. Also refactored the code to generate the haddock
 package flags so we can export it and use it elsewhere more easily.
] 
[Add the InstalledPackageIndex to the LocalBuildInfo
Duncan Coutts <duncan@haskell.org>**20080219124932
 So now all the info about installed packages is available to all the
 verious build phases.
] 
[Detect broken and inconsistent package deps
Duncan Coutts <duncan@haskell.org>**20080219000139
 We now check for packages that are broken due to their dependencies having
 been unregistered. We fail and print a fairly sensible message in this case.
 We also check for inconsistent dependencies and give a warning saying which
 packages are depending on inconsistent versions of a third. This is a warning
 not an error because it does not always lead to failure. Hopefully it'll help
 people who are otherwise just running into random compile errors.
 This fixes ticket #220.
] 
[Save horazontal space in the --help output by omitting options to short flags
Duncan Coutts <duncan@haskell.org>**20080218235744
 So instead of "-f FLAGS --flags=FLAGS" we get just "-f --flags=FLAGS"
 This makes rather better use of 80 cols and means the flag descriptsion
 are not squeesed into such a narrow column.
] 
[Add warnings about missing and out-of-tree relative paths
Duncan Coutts <duncan@haskell.org>**20080218203242] 
[Eliminate use of cpp in Distribution.Compiler
Duncan Coutts <duncan@haskell.org>**20080218182338] 
[Fix: Distribution.Make's configure doesn't work on Windows.
shelarcy <shelarcy@gmail.com>**20080216062433] 
[help nhc98 to disambiguate imports
Malcolm.Wallace@cs.york.ac.uk**20080218103907] 
[Bump version to 1.3.5 due to more api changes
Duncan Coutts <duncan@haskell.org>**20080215130513] 
[Make the GHC.Makefile private
Duncan Coutts <duncan@haskell.org>**20080215130459] 
[Add InstalledPackageIndex type and use it in place of [InstalledPackageInfo]
Duncan Coutts <duncan@haskell.org>**20080215124051
 The new index module is adapted from the similar module in cabal-install but
 with renamed functions and extended to work with full InstalledPackageInfo
 rather than just PackageIdentifier. So the getInstalledPackages functions now
 return an InstalledPackageIndex.
] 
[Simplify configure code by relying on ghc >= 6.4
Duncan Coutts <duncan@haskell.org>**20080215092628
 We changed to require ghc >= 6.4 a while ago, this is just a simplification
 that was missed at the time.
] 
[Add some more common utils we'll need in a sec and make use of intercalate
Duncan Coutts <duncan@haskell.org>**20080215092443
 Have to define it locally since it only appeared in Data.List recently.
] 
[getInstalledPackages now returns full InstalledPackageInfo
Duncan Coutts <duncan@haskell.org>**20080215091536
 rather than just PackageIdentifier. This will enable us to do lots more in
 future, for example detecting inconsistent package depends, doing our
 own cpp pre-processing or module chasing.
] 
[Don't re-export Compiler from Distribution.Simple.Setup
Duncan Coutts <duncan@haskell.org>**20080213192756] 
[Add x-* extension field parsing (trac #210)
Brent Yorgey <byorgey@gmail.com>**20080212174138] 
[Moved --program-prefix and --program-suffix out of InstallDirs
phigley@gmail.com**20080212042631
 The program prefix and suffix have been moved out of InstallDirs so that InstallDirs is now all directories.  The prefix and suffix have been moved into LocalBuildInfo as stand-alone PathTemplate flags.
] 
[Allow lower-case spellings for boolean fields.
Thomas Schilling <nominolo@gmail.com>**20080211175117] 
[Add lots of new package checks
Duncan Coutts <duncan@haskell.org>**20080211162831
 Check that Setup.(l)hs exists.
 Check for ./configure file if build-type: Configure
 Check for duplicate modules in library and executables.
 Check ghc-options and cc-options for -I -l -L flags that should be elsewhere
 Check for lots of insane ghc-options that people have used in real packages.
 Check for old ghc -f flags that correspond to extensions
] 
[Document main-is behaviour with preprocessors
Duncan Coutts <duncan@haskell.org>**20080211161854] 
[Bump version to 1.3.4
Duncan Coutts <duncan@haskell.org>**20080211012054
 Various recent api changes
] 
[Move ppField(s) utils into ParseUtils module
Duncan Coutts <duncan@haskell.org>**20080211004605
 and stop exporting various internal stuff from PackageDescription.Parse
 which was previously being used by the sanity checking code.
] 
[Note the form of jhc --version output
Duncan Coutts <duncan@haskell.org>**20080211004423] 
[Unify sanity and other checks and separate IO checks
Duncan Coutts <duncan@haskell.org>**20080211003830
 And rename from QA so we no longer pretend to assure anything :-)
 We now distinguish different kinds of tests with a PackageCheck type so the
 caller gets to decide which kinds of checks are relevant to the context.
 This PackageCheck type should be extensible if we want to add more kinds or
 more info besides a brief human readable explanation.
] 
[Fix a bug where the destdir prefix got included in the prog prefix and suffix
Duncan Coutts <duncan@haskell.org>**20080208192613
 Previously all members of InstallDirs were paths so it was safe to prefix
 them all with the destdir, but now we've also got these two non-paths, so
 we have to not apply the prefix to them. Perhaps the program prefix and suffix
 should just be PathTemplates on their own and not part of InstallDirs.
 Reported by MarcWeber while hacking on Haskell packages for Nix.
] 
[Fix --package-conf= for unregister too
Duncan Coutts <duncan@haskell.org>**20080206142023] 
[fix --package-conf=<file> is correct when creating register.sh
marco-oweber@gmx.de**20080205210221] 
[Replace moduleToFilePath with findFileWithExtension
Duncan Coutts <duncan@haskell.org>**20080206014554
 moduleToFilePath encouraged bad error handling and becuase it was specific
 to module names it made it hard to treat modules and main.hs files uniformly.
 This is one step towards using the same code paths for modules and main.hs
 files so that main.hs files always work properly with pre-processors etc.
] 
[Fix up Cabal.cabal after module renaming
Duncan Coutts <duncan@haskell.org>**20080205195316] 
[Finish moving GenericPackageDescription into PackageDescription module
Duncan Coutts <duncan@haskell.org>**20080205195051
 and fix up remaing imports.
 hcOptions is back in the PackageDescription module but with a different type.
 GenericPackageDescription now derives Show as having the separate pretty
 printer is inconvenient and in any case it is incomplete.
] 
[Rearrange PackageDescription some more
Duncan Coutts <duncan@haskell.org>**20080205194341
 Previously we moved the types into Distribution.PackageDescription.Types.
 Now all the remaining utils have been removed from D.PackageDescription we
 can move D.PackageDescription.Types back to D.PackageDescription. Also move
 D.Configuration to be D.PackageDescription.Configuration and move the types
 used for GenericPackageDescription into D.PackageDescription and move the
 functions that convert GenericPackageDescription -> PackageDescription into
 the D.PackageDescription.Configuration module.
] 
[Finish moving build path functions
Duncan Coutts <duncan@haskell.org>**20080205192439] 
[Move cabalVersion, setupMessage and a bunch of paths into differnt modules
Duncan Coutts <duncan@haskell.org>**20080205190230
 New Distribution.Simple.BuildPaths module similar to the .InstallDirs module
 to hold all the paths and filenames used during a build.
 It's currently somewhat of a miscellaneous collection.
] 
[nhc98 does not have System.Posix.Internals
Malcolm.Wallace@cs.york.ac.uk**20080205120516] 
[Move PackageDescription unit tests into a dedicated module
Duncan Coutts <duncan@haskell.org>**20080204221028
 and make the unit test module build again.
 The PackageDescription module no longer needs CPP.
] 
[Split Distribution.PackageDescription into three other modules
Duncan Coutts <duncan@haskell.org>**20080204213306
 New D.PackageDescription.Types with the types and simple utils
 New D.PackageDescription.Parse module for parsing and printing functions.
 The sanity check code is moved into the existing QA module.
 The public api of Distribution.PackageDescription remains the same.
] 
[Rewrite the Makefile and build the user-guide using xsltproc like ghc does
Duncan Coutts <duncan@haskell.org>**20080204172634] 
[Fudge comment indentation in unliting to work with haddock
Duncan Coutts <duncan@haskell.org>**20080203042308
 The rule is, if we see any bird track style code then we will indent all
 comments by two spaces so that it should line up with the code. Otherwise
 we use no indentation so that it'll work with latex style literate files.
 This makes it work for takusen (once you change the '.' lines to be blank).
] 
[Tweak the ghc-options: -O -O2 messages again
Duncan Coutts <duncan@haskell.org>**20080201113121] 
[Fix haddock markup
Duncan Coutts <duncan@haskell.org>**20080131193804] 
[Improve wording of -O and -O2 QA tests.
Duncan Coutts <duncan@haskell.org>**20080131143933
 Including a typo noted by Johan Tibell.
] 
[Adjust unlit's behaviour on continuing comments
Duncan Coutts <duncan@haskell.org>**20080131142901
 This behaviour is not set in stone, there is not full agreement yet.
 The previous code was deciding wether to continue a comment based on wether
 the intervenienting lines were completely blank or had at least one space in.
 The other suggestion was to use a '.' to continue a comment line.
 Instead, this change uses a single blank line between comments to continue
 a comment and anything else terminates it with a blank line.
] 
[Use Setup.hs like everyone else does
Duncan Coutts <duncan@haskell.org>**20080131115953
 and note the issue about custom vs simple build-type for Cabal itself.
] 
[Improve the QA messages a bit, use the same style as the sanity check messages
Duncan Coutts <duncan@haskell.org>**20080131115739
 Slightly more like full sentances and using '' quotes for field names etc.
] 
[Find original sources for main-is when creating sdist
Duncan Coutts <duncan@haskell.org>**20080131114909
 Also add a package sanity check that main-is must specify a .hs or .lhs file.
 So the bahaviour is now that main-is specifies the main source file, even if
 that is generated by a pre-processor. This isn't really a change in behaviour
 since previously if you specified main-is: main.hsc then it would try to
 pass the .hsc file to ghc dirctly which would not work. For ticket #14 things
 were fixed to that it would look for main.hsc if you used main-is: main.hs an
 that file did not exist directy. This completes the other half, of actually
 being able to make a src distribution. So this should fix bug #217.
 Note that this still needs some work, we do not run platform-independent
 preprocessors and put the result into the tarball for main-is files.
 Generally, main-is has been the second class citizen compared to normal
 modules. We should try and refactor so both use the same code paths.
] 
[Eliminate now-redundant Bool flag on smartCopySources
Duncan Coutts <duncan@haskell.org>**20080131114511
 and simplfy the implementation to be a simple composition of
 findFileWithExtension' and copyFiles with some additonal error checking.
] 
[Stop using smartCopySources in SrcDist
Duncan Coutts <duncan@haskell.org>**20080131114143
 This was the old module using it in with preserveDirs = True.
 Anyway, we should be using smartCopySources for each lib and exe, we should be
 collecting all the files to copy together into one list, then eliminating
 duplicates and doing a single copyFiles operation. Yes, there can be
 duplicates because for example exes can specify the libbrary's modules or 
 even the other exe's main module as other-modules.
] 
[findPackageDesc has to return a relative path for SrcDist
Duncan Coutts <duncan@haskell.org>**20080131113726
 otherwise we fail to copy the .cabal file when into the src tree
] 
[Remove one Bool parameter to smartCopySources which was True in all uses
Duncan Coutts <duncan@haskell.org>**20080130112842
 The remaining Bool parameter is False for all uses except in SrcDirs
] 
[Remove handling for .hi-boot files, which was only needed for ghc-6.2
Duncan Coutts <duncan@haskell.org>**20080130001845
 which we have removed support for. It is not clear if we need any similar
 handling for .hs-boot files. These were also the only uses of smartCopySources
 which used exitIfNone set to False.
] 
[Remove utils testing code for functions that are being removed
Duncan Coutts <duncan@haskell.org>**20080130000848] 
[Simplify smartCopySources using findFileWithExtension' and copyFiles
Duncan Coutts <duncan@haskell.org>**20080130000129
 Previously it used moduleToFilePath2 which returns all the locations in which
 a source file is found, in different search dirs and with different extensions
 and it just collected all these locations. This is totally bogus since we do
 not want to copy multiple source files per-module, only one of them could have
 been used to be pre-processed into the final source module. This is one
 example of how almost every use of moduleToFilePath is convoluted or broken.
 This function it still used for too many different purposes, witness the two
 flags to customise its behaviour which at all call sites are constants.
] 
[Add utils functions copyFiles, findFileWithExtension, findFileWithExtension'
Duncan Coutts <duncan@haskell.org>**20080129235559
 and rewrite findFile in a similar style. These are to help simplify and
 replace the existing functions smartCopySources, moduleToFilePath and
 moduleToFilePath2.
] 
[Update testsuite for unlit changes
Duncan Coutts <duncan@haskell.org>**20071230013843
 Follow the H98 report and replace ">" with " " not "".
 Output the whitespace for blank lines rather than "".
 Adjust to changes in unlit error handling, now more explicit.
] 
[Add Alistair Bayley's unlit test suite
Duncan Coutts <duncan@haskell.org>**20071230013723] 
[Refactor unlit code to improve error and line pragma handling
Duncan Coutts <duncan@haskell.org>**20071230012530
 And to make it more like the original code that classified lines
 separately from checking and transforming them.
] 
[haddock: run unlit before cpp, like ghc does.
alistair@abayley.org**20071204211356] 
[unlit preserves comments for Haddock's benefit. More complex algorithm to handle cases where we want blank lines (containing whitespace) to become comment lines in the output.
alistair@abayley.org**20071204211550] 
[Document --program-prefix and --program-suffix
Duncan Coutts <duncan@haskell.org>**20080130205011
 and a couple other trivial tidyups
] 
[Add --program-prefix and --program-suffix options to configure (#208)
phigley@gmail.com**20080129054940] 
[Remove programatica support
Duncan Coutts <duncan@haskell.org>**20080127171629
 I doubt it works or that anyone uses it.
 If anyone genuinely does use it we can add it back in cabal-install.
] 
[Simplify findPackageDesc code, removing old checks
Duncan Coutts <duncan@haskell.org>**20080127165139
 It used to look for and warn about Setup.description files.
 That's from a very very old transition which is now complete.
 We can just ignore any files like that now.
] 
[Add configure --package-db= flag to use specific package db
Duncan Coutts <duncan@haskell.org>**20080113232536
 Should allow satisfying deps from the given package db and should register
 into that db. It is not thoroughly tested however.
] 
[fix build for Hugs and nhc98
Ross Paterson <ross@soi.city.ac.uk>**20080129005105] 
[rawSystemStdout': do hGetContents synchonously, to avoid a race condition
Simon Marlow <simonmar@microsoft.com>**20080128150644] 
[PackageDescription.hs: add check for existence of license file
Brent Yorgey <byorgey@gmail.com>**20080127031033
 Added a check for the existence of the license file (if one is
 specified in a license-file: field) during description file
 sanity checking.  If a license is specified but does not exist,
 a warning is generated.  This patch resolves issue #180.
] 
[Tweak flags error message and use monad failure rather than error
Duncan Coutts <duncan@haskell.org>**20080127001137] 
[fix for Trac #164: better error reporting for undefined flags
Brent Yorgey <byorgey@gmail.com>**20080126233057] 
[Fix warnings in Distribution.Simple.hs, clean no longer takes LocalBuildInfo
Duncan Coutts <duncan@haskell.org>**20080127000125
 Though of course we cannot yet change the UserHooks interface so that it is
 never given the LocalBuildInfo.
] 
[Delete rawSystemPathExit, use rawSystemExit
Duncan Coutts <duncan@haskell.org>**20080126235620
 There was only one use and no point since rawSystem uses the path anyway.
] 
[Remove the debian/ and debianTemplate/ files since they never get updated
Duncan Coutts <duncan@haskell.org>**20080126233914
 so they are almost certainly useless to the debian folks anyway.
] 
[Simplify default Setup.hs example
Duncan Coutts <duncan@haskell.org>**20080126233427
 make it a .hs like everyone else uses
] 
[Remove examples dir which seemed rather pointless
Duncan Coutts <duncan@haskell.org>**20080126233308] 
[Remove TODO, all remaining items were transfered into the trac (see bug #2)
Duncan Coutts <duncan@haskell.org>**20080126232936] 
[delete removePreprocessed function, it's unused except for cleaning jhc files
Duncan Coutts <duncan@haskell.org>**20080126230256
 and jhc should just be putting its generated files under dist/ anyway.
 The latter issue is filed as bug #219.
] 
[Check if dist/ exists before trying to delete it
Duncan Coutts <duncan@haskell.org>**20080126223528
 Saves printing an error message when it fails.
] 
[Rewrite rawSystemStdout to not use runInteractiveProcess with ghc
Duncan Coutts <duncan@haskell.org>**20080125175517
 So it doesn't use a temp file to capture the output.
 Since runInteractiveProcess is only available on ghc we
 use the temp file method for other implementations.
] 
[Add a Distribution.Setup module that re-exports Distribution.Simple.Setup
Duncan Coutts <duncan@haskell.org>**20070920121125
 Many Setup.hs files import Distribution.Setup so this unbreaks them.
 It's marked DEPRECATED so will generate a warning for scripts that use it.
 This patch is only going to the cabal-1.2 branch, not HEAD.
] 
[Document the fact that --user now changes the default --prefix
Duncan Coutts <duncan@haskell.org>**20080124025352
 to $HOME/.cabal on unix and on WinXP: (not sure about vista)
 C:\Documents And Settings\user\Application Data\cabal
] 
[flush stdout before running subprograms
Ross Paterson <ross@soi.city.ac.uk>**20080125102053
 
 This is needed to separate Cabal and subprogram output if stdout is
 buffered (e.g. a file), especially if stdout and stderr are the same.
] 
[Update user guide on reporting bugs and stability of cabal interfaces
Duncan Coutts <duncan@haskell.org>**20080124201250
 Fixes ticket #11. Though the section could do with a bit more detail.
 It corresponds to what's on the wiki:
 http://hackage.haskell.org/trac/hackage/wiki/StableInterfaces
] 
[Rework withTempFile code and use System.IO.openTempFile where available
Duncan Coutts <duncan@haskell.org>**20080123235847
 The System.IO.openTempFile is much better because it opens the temp files
 securely. Howver it is only available in base-2 and only of GHC. In base-3
 it is available for all implementations. So in practice that means it's only
 for GHC and we have to use our compatability implementation for hugs and
 nhc98. Not sure of the status for jhc.
] 
[bootstrapping setup does not need -cpp, all the files that need it say so.
Duncan Coutts <duncan@haskell.org>**20080123212224] 
[Replace remaining OPTIONS pragmas with LANGUAGE + OPTIONS_GHC/JHC/NHC98
Duncan Coutts <duncan@haskell.org>**20080123211923
 ghc-6.4 and above recognise the OPTIONS_GHC pragma.
 ghc-6.6 and above recognise the LANGUAGE pragma.
 Added OPTIONS_JHC and OPTIONS_NHC pragmas with equivalant flags.
] 
[Remove more {-# OPTIONS -cpp #-} where it was only used for empty hunit tests
Duncan Coutts <duncan@haskell.org>**20080123211739] 
[Remove unnecessary {-# OPTIONS -cpp #-}
Duncan Coutts <duncan@haskell.org>**20080123203454] 
[Make Data.Version parsing stricter
Duncan Coutts <duncan@haskell.org>**20080123201930
 Dissalows version strings like "1.05". It'd have to be "1.5" or "1.0.5".
 That is, leading '0's in version components are no longer allowed.
 The Version parser & pretty printer should now be exactly 1-1 and invertable.
] 
[Make the Compat/ReadP.hs cpp conditionals be opt-in rather than opt-out.
Duncan Coutts <duncan@haskell.org>**20080123201644
 Previusly everyone got the compat version, except for ghc and hugs which
 opted out. Now just nhc98 opts in.
] 
[Remove unneeded {-# OPTIONS -fglasgow-exts #-}
Duncan Coutts <duncan@haskell.org>**20080123201512] 
[Assuming ghc-6.4 or nhc-1.20 as a minimum allows us to remove much cpp cruft
Duncan Coutts <duncan@haskell.org>**20080123192258] 
[check for ghc-6.4 as minimum version supported at runtime
Duncan Coutts <duncan@haskell.org>**20080123191729] 
[Remove support for using ghc-6.2
Duncan Coutts <duncan@haskell.org>**20080122200635
 No longer inlcude compatability hacks and remove code that handles
 the old style of ghc-pkg package registration files.
] 
[Remove many Distribution.Compat modules that were only needed for ghc-6.2
Duncan Coutts <duncan@haskell.org>**20080122194317] 
[Fix warnings in Cabal
Ian Lynagh <igloo@earth.li>*-20080118191230] 
[Fixup breakage from previous changes
Duncan Coutts <duncan@haskell.org>**20080121220743] 
[Fix --with-compiler / --with-hc inconsistency in ./configure flags
Duncan Coutts <duncan@haskell.org>**20080121182948
 setup configure takes a --with-compiler option, but used to change 
 that into a --with-hc option when calling ./configure.
 Now that we've added autoconfUserHooks and deprecated defaultUserHooks we
 can fix this without breaking any existing scripts. The autoconfUserHooks
 now passes --with-compiler to ./configure and defaultUserHooks is unchanged.
 Fixes ticket #114.
] 
[Move chattyTry into Utils module
Duncan Coutts <duncan@haskell.org>**20080121171031] 
[Deprecate defaultUserHooks, export autoconfUserHooks. Fix ticket #165
Duncan Coutts <duncan@haskell.org>**20080121163411
 Setup scripts should switch to simpleUserHooks or autoconfUserHooks.
 autoconfUserHooks now fails if ./configure is not present.
 defaultUserHooks does the same thing it always did.
] 
[Remove commandAddActionWithEmptyFlags as it's redundant
Duncan Coutts <duncan@haskell.org>**20080115120129
 since you can get the same effect just by setting the command's default flags
 to empty.
] 
[Make a missing build-type a QA error
Duncan Coutts <duncan@haskell.org>**20080121003530] 
[Improve wording in sdist QA message.
Duncan Coutts <duncan@haskell.org>**20080121002148] 
[Update QA TODOs and remove unneded OPTIONS -cpp
Duncan Coutts <duncan@haskell.org>**20080121002107] 
[Move the license check from a sanity check to a QA check
Duncan Coutts <duncan@haskell.org>**20080121001722
 Also extend the check. It's now a QA error to use a license that is empty
 or AllRightsReserved. It's a warning to not specify a license file. It's an
 error for the license file to be given but not exist.
 Note that QA errors are not fatal for generating tarballs. But they will become
 fatal errors for uploading to the public hackage server. It will still be
 possible to use AllRightsReserved or another license on a private hackagedb.
] 
[Run QA when running sdist
Lennart Kolmodin <kolmodin@gentoo.org>**20080120215823
 Code written in a session with Duncan Coutts
] 
[Separate into two QA categories, and readjust levels
Lennart Kolmodin <kolmodin@gentoo.org>**20080120215549
 Much code written in a session with Duncan Coutts
] 
[Don't fail QA if no license file is set
Lennart Kolmodin <kolmodin@gentoo.org>**20080118194041] 
[Rename QA function for PackageDescription
Lennart Kolmodin <kolmodin@gentoo.org>**20080117230439] 
[Fix haddock module doc for QA
Lennart Kolmodin <kolmodin@gentoo.org>**20080117230423] 
[Implement QA for PackageDescription
Lennart Kolmodin <kolmodin@gentoo.org>**20080117223610
 Addresses #191 (QA) and #180 (QA for missing license).
 This patch only adds a new exposed module, it's not yet used anywhere.
] 
[Remove some functions that were deprecated in the last stable series
Duncan Coutts <duncan@haskell.org>**20080120130012
 So they should be safe to remove now.
] 
[Inform users of max verbosity (fixes ticket 176)
thomas.dubuisson@gmail.com*-20080113203536] 
[Ticket 176: Fix verbosity error to include the valid -v values
agl@imperialviolet.org**20071231174709
 
 Fixed:
 http://hackage.haskell.org/trac/hackage/ticket/176
 
 
] 
[Ticket 201: report IO errors during clean
agl@imperialviolet.org**20071231180516] 
[Fix warnings in Cabal
Ian Lynagh <igloo@earth.li>**20080118191230] 
[Comment out an unused binding
Ian Lynagh <igloo@earth.li>**20080116172204] 
[Inform users of max verbosity (fixes ticket 176)
thomas.dubuisson@gmail.com**20080113203536] 
[Warn if a build-type is not specified. We want all packages to use this now.
Duncan Coutts <duncan@haskell.org>**20080111023917] 
[We default configUserInstall to False so we should not set configPackageDB
Duncan Coutts <duncan@haskell.org>**20080111023733
 because we use the value of configUserInstall to set the default value for
 configPackageDB, and any value the user sets will override that.
] 
[Bump minor version number due to more minor api and behaviour changes
Duncan Coutts <duncan@haskell.org>**20080110201117] 
[Make --user --global change the default prefix
Duncan Coutts <duncan@haskell.org>**20080110193830
 Previously --user and --global didn't mean what it looks like they mean,
 instead of doing a per-user or a global installation they just meant to
 register in the per-user or global package databases (and to allow
 dependencies to be satisfied from the per-user or global db)
 With this patch --user / --global means to do a per-user or global install
 so in addition to the package db differences it also sets the default 
 installation prefix. This prefix can of course still be overridden using the
 --prefix= flag. The global prefix is as before, the default per-user prefix
 is $HOME/.cabal on Unix and on Windows it's something like:
 C:/Documents And Settings/$user/Application Data/cabal
 (using getAppUserDataDirectory "cabal"). This is the per-user prefix that
 cabal-install currently uses. We can change it if people think it's not good.
] 
[Un-deprecate configCompilerAux
Duncan Coutts <duncan@haskell.org>**20080110175148
 but make it do something sensible with the ProgramConfiguration
] 
[Export the Flag constructors
Duncan Coutts <duncan@haskell.org>**20080110175123] 
[Allow symbol characters (e.g '+') in the components of a build-tool name
David Waern <davve@dtek.chalmers.se>**20080108211218] 
[Set dynlibdir to $libdir per default.
Clemens Fruhwirth <clemens@endorphin.org>**20071228183604] 
[Use os(windows) not os(win32) in user guide configurations example
Duncan Coutts <duncan@haskell.org>**20071228125735
 Spotted by Spencer Janssen
] 
[Use getTemporaryDirectory from Distribution.Compat.Direcotry
Duncan Coutts <duncan@haskell.org>**20071228125530
 for compatability with ghc-6.2.2
] 
[Fix haddock parse error ($prefix -> \$prefix)
Clemens Fruhwirth <clemens@endorphin.org>**20071227124051] 
[Rejig --list-options handling so it takes priority
Duncan Coutts <duncan@haskell.org>**20071218191636
 --list-options no takes priority over errors in other flags and over --help
 this is so that it can be used consistently for command completion without
 returning garbage (ie error messages on ill formed partial command lines
 or producing --help output). Also make --list-options list all the common
 options appart from itself, so that's just --help at the moment.
] 
[Export flagToList for cabal-install to use
Duncan Coutts <duncan@haskell.org>**20071217185359] 
[Support command completion in the Make module
Duncan Coutts <duncan@haskell.org>**20071217185328] 
[Add correct^H^H^H^H British English spelling of optimisation
Duncan Coutts <duncan@haskell.org>**20071217133533
 For the --enable/disable-optimi(z|s)ation flag, allow the British English
 spelling of the flags as an alias. The current one is still the one
 displayed, and it does not list bith in the --help text, though the command
 completion would list both.
 Perhaps the default should be on the basis of the current locale :-).
] 
[Add --list-options flag, should be useful for shell command line completion
Duncan Coutts <duncan@haskell.org>**20071217132048
 It applies at the top level in which case it lists the global flags and
 the sub-commands. It applies for each sub-command in which case it lists
 the sub-command's available flags.
] 
[Make all command line flags and flag collection types monoids
Duncan Coutts <duncan@haskell.org>**20071215193650
 And specify command flags in a way that allows converting from or two strings.
 So not only can we parse command lines into the various flag types, we can
 convert back. This is crucial in cabal-install so that we can call Setup.hs
 scripts with all the various args, and override certain flags in a typed way
 rather than just representing them all as strings.
] 
[Export Command constructor so cabal-install can make derived commands
Duncan Coutts <duncan@haskell.org>**20071208192401
 Also move commandHelp out of the structure into a helper function. Change
 the type of commandOptions so it doesn't include the CommonFlag. Instead,
 add those in whenever necessary. This makes deriving commands easier.
 Also fix docs.
] 
[Replace lots of configBlahDir fields with just one InstallDirs
Duncan Coutts <duncan@haskell.org>**20071208182620
 So instead of 10 fields like this:
 configPrefix   :: Maybe FilePath,
 ...
 we have just one compound one:
 configInstallDirs   :: InstallDirs (Maybe FilePath)
 Now that LocalBuildInfo and cabal-install's config use InstallDirs it makes
 converting a lot easier since we can use fmap and combineInstallDirs.
 This should also be easier to maintain as it has significantly reduced the
 number of places in the code you have to change when you add/change a dir.
] 
[Merge InstallDirTemplates into InstallDirs
Duncan Coutts <duncan@haskell.org>**20071208182334
 This simplifies things and makes it a bit more versatile since
 we can use things like InstallDirs (Maybe PathTemplate).
] 
[Bump version number as we've made api changes
Duncan Coutts <duncan@haskell.org>**20071215194028] 
[Make fromPathTemplate not drop vars
Duncan Coutts <duncan@haskell.org>**20071215193943
 It's useful to be able to convert String <-> PathTeplate without loosing info.
] 
[Don't supress warnings, fix uncovered warnings
Duncan Coutts <duncan@haskell.org>**20071208191939] 
[Move CopyDest from Setup to InstallDirs module
Duncan Coutts <duncan@haskell.org>**20071208170913
 It's a better place to put it and it allows Setup to use InstallDirs later
] 
[Add more to the user guide intro trying to explain the scope and use model
Duncan Coutts <duncan@haskell.org>**20071208161402] 
[Fix haddock markup
Duncan Coutts <duncan@haskell.org>**20071207162314] 
[Rename interfacedir to haddockdir
Duncan Coutts <duncan@haskell.org>**20071207142824
 Since it really only refers to haddock interfaces, so interface is too
 general a term. Cannot push to 1.2 branch as it changes the api.
] 
[Add mandir support to InstallDirs
Duncan Coutts <duncan@haskell.org>**20071207141839
 It's not used by Cabal at all but some packages want to install man pages
 and this should make it easier for them to figure out where to install them.
 In particular c2hs and lhs2tex have man pages.
] 
[Fix hscolour code so it only outputs the css once per-lib or exe
Duncan Coutts <duncan@haskell.org>**20071207130309
 Rather than for every module in the lib. Tidy the code up a little too.
] 
[First go at supporting ghc-6.9's ghc-pkg list --simple-output
Duncan Coutts <duncan@haskell.org>**20071207123107
 We used to have to parse the human readable output from ghc-pkg list because
 previously it was not possible to specify which package dbs to query.
 Now the behaviour is that you specify exactly which dbs you want and you
 only get those packages listed. For example ghc-pkg list --global lists only
 packages from the global db. So we now use:
 ghc-pkg list --simple-output --global
 ghc-pkg list --simple-output --global --user
] 
[Note what form of string we get from invoking hmake --version
Duncan Coutts <duncan@haskell.org>**20071207122829] 
[Add -framework arguments when linking executables.
judah.jacobson@gmail.com**20071210174056] 
[Support --hyperlink-source for Haddock >= 2.0
David Waern <davve@dtek.chalmers.se>**20071209180555] 
[Use a default HsColour CSS if available
Duncan Coutts <duncan@haskell.org>**20071206145937
 Supported in HsColour 1.9 and later
] 
[export ccLdOptionsBuildInfo helper function
Duncan Coutts <duncan@haskell.org>**20071205194146
 Useful in Setup.hs scripts for things like HSQL that need to
 find CC and LD flags by calling foo-config style programs.
 The same function is used internally for pkg-config support.
] 
[make rawSystemStdout put its temp files in the temp dir rather than cwd
Duncan Coutts <duncan@haskell.org>**20071202220620
 Should fixe reported wierdness with finding program version numbers
] 
[The NHC module now uses cpp
Duncan Coutts <duncan@haskell.org>**20071129124745] 
[Rename defaultMain__ to defaultMainHelper
Duncan Coutts <duncan@haskell.org>**20071121203604
 It was a silly name.
] 
[Bump development version number due to api change
Duncan Coutts <duncan@haskell.org>**20071120164121
 Since we've changed the exports of the Setup module significantly.
 However since this is a dev series I don't think it makes sense to
 bump the major version number as in the PVP, or we'd end up doing
 it all the time in a development series.
] 
[Remove unused code in Setup module
Duncan Coutts <duncan@haskell.org>**20071120163922
 This changes the API so cannot be pushed to the 1.2 branch.
] 
[Use the new Command stuff for Distribution.Simple
Duncan Coutts <duncan@haskell.org>**20071120161816] 
[Use the new Command stuff for Distribution.Make
Duncan Coutts <duncan@haskell.org>**20071120161605] 
[Stop using deprecated setup code in SetupWrapper
Duncan Coutts <duncan@haskell.org>**20071120161435] 
[Add Command module to exposed-modules
Duncan Coutts <duncan@haskell.org>**20071116145234] 
[Add new Command abstraction for handling command line args
Duncan Coutts <duncan@haskell.org>**20071116141225
 Add instances of it for all existing Cabal commands.
 This should makes command line handling more regular and hopefully make it
 easier to override or make derived commands in cabal-install.
 So far we're only adding code, not modifying existing stuff except renaming
 some existing internal functions so they do not clash with the new code.
] 
[Add emptyPFEFlags and emptySDistFlags for consistency
Duncan Coutts <duncan@haskell.org>**20071116135625] 
[Simplify parameters to defaultMain__
Duncan Coutts <duncan@haskell.org>**20071116132323
 Don't use maybe, just have the callers pass the defaults instead.
 Eliminate the Maybe PackageDescription parameter and instead just have
 the called override the readDesc in the UserHooks.
 This simplifies defaultMainWorker too as it can always just use readDesc.
] 
[Make scratchdir into a proper configure flag
Duncan Coutts <duncan@haskell.org>**20071116131604
 rather than using the flag extension mechanism.
 It was the old flag using it and I'm about to replace that whole system.
] 
[Refactor: move UserHooks into it's own module
Duncan Coutts <duncan@haskell.org>**20071114150659] 
[Tidy up args in the pfe, clean, haddock and hscolour default hooks
Duncan Coutts <duncan@haskell.org>**20071114150131
 Don't pass unnecessary args and inline trivial definitions
] 
[Partial implementation of installing for nhc98
Duncan Coutts <duncan@haskell.org>**20071127174132
 Doesn't install into the right place by default yet.
] 
[Library archive creation for nhc98
Duncan Coutts <duncan@haskell.org>**20071127174017
 So far only for vanilla not profiling libs.
] 
[Escape some special characters
Ian Lynagh <igloo@earth.li>**20071126163253] 
[Fix a broken link
Ian Lynagh <igloo@earth.li>**20071126163137] 
[Escape some special characters in the haddock docs
Ian Lynagh <igloo@earth.li>**20071126155145] 
[Fix what looks like a doc braino
Ian Lynagh <igloo@earth.li>**20071126154824] 
[Put nhc98 .hi files in the target dir rather than the src dir
Duncan Coutts <duncan@haskell.org>**20071127003800
 So they end up next to the .o files under dist/ just like for ghc.
] 
[Workaround import bug in nhc98
Duncan Coutts <duncan@haskell.org>**20071123210009
 Cabal can now build using itself and nhc98
] 
[Add support for building libs and exes with nhc98 via hmake
Duncan Coutts <duncan@haskell.org>**20071123205750
 Doesn't do installation yet or check for existence of dependent packages.
] 
[FIX BUILD with GHC 6.2: getTemporaryDirectory wasn't available
Simon Marlow <simonmar@microsoft.com>**20071123093121] 
[Do proper pre-processing for Haddock 2
David Waern <davve@dtek.chalmers.se>**20071109162557
 Besides pre-processing, this patch adds include paths and output paths
 to the ghc flags passed to Hadddock.
] 
[Import changelog changes from the 1.2 branch
Duncan Coutts <duncan@haskell.org>**20071116145738] 
[Export PreProcessor constructor and mkSimplePreProcessor
Duncan Coutts <duncan@haskell.org>**20071116145327
 Otherwise it is impossible to declare new pre-processors in Setup.hs files
] 
[Fix finding ghc's ld.exe on windows.
Duncan Coutts <duncan@haskell.org>**20071120101110
 It looks like it had worked but the ld -x test broke that too. Grr.
] 
[Fix configure --interfacedir=
Duncan Coutts <duncan@haskell.org>**20071114191550
 bug #178
] 
[Fix haddock interface file location used when registering inplace packages
Ian Lynagh <igloo@earth.li>**20071110171424
 This fixes inter-package doc links when building GHC.
] 
[Add extensions that ghc-6.6 supports
Duncan Coutts <duncan@haskell.org>**20071109142250] 
[The extension is NoMonoPatBinds not MonoPatBinds
Duncan Coutts <duncan@haskell.org>**20071109142217] 
[Add language extensions introduced in GHC 6.8
Duncan Coutts <duncan@haskell.org>**20071108185612] 
[Make the ld -x test use the temp dir rather than dist dir
Duncan Coutts <duncan@haskell.org>**20071108141349
 Should fix cabal-install.
] 
[fix compilation with GHC 6.2.x
Simon Marlow <simonmar@microsoft.com>**20071105113004] 
[Install the haddock interface file to the right place
Ian Lynagh <igloo@earth.li>**20071030170254] 
[Add an interfacedir configure flag, for where to put haddock insterface files
Ian Lynagh <igloo@earth.li>**20071029174908] 
[put the binary-dist copy in the right place
Simon Marlow <simonmar@microsoft.com>**20071026132515] 
[fix $(TOP)
Simon Marlow <simonmar@microsoft.com>**20071026101915] 
[fix XML (at least, makes it work here)
Simon Marlow <simonmar@microsoft.com>**20071026101907] 
[no longer need to pass --allow-missing-html to haddock
Ross Paterson <ross@soi.city.ac.uk>**20071026084124
 
 This option only affects Haddock if it is invoked with --use-package,
 and Cabal no longer uses that option, as it now gets the arguments for
 --read-interface from ghc-pkg directly (cf patch "rejig location of
 package interfaces for haddock").
] 
[no longer need to pass --ghc-pkg to haddock
Ross Paterson <ross@soi.city.ac.uk>**20071026073126
 
 Haddock only runs ghc-pkg if invoked with --use-package, and Cabal no
 longer uses that option, as it now gets the arguments for --read-interface
 from ghc-pkg directly (cf patch "rejig location of package interfaces
 for haddock").
] 
[fix help text (--PROG-arg is now --PROG-option)
Ross Paterson <ross@soi.city.ac.uk>**20071026001045] 
[Fix a bug in the Unlit pre-processor
David Waern <davve@dtek.chalmers.se>**20071024181908
 With this patch, unlit can handle line pragmas with filenames that contain
 spaces.
] 
[Adjust verbosity of a step in configure
Duncan Coutts <duncan@haskell.org>**20071024160758] 
[Compile a .c rather than a .hs file to make a .o file in ld -x configure test
Duncan Coutts <duncan@haskell.org>**20071024150505
 Since when bootstrapping ghc we're not in any position to compile .hs files
 that easily.
] 
[Create the dist/ dir early in the configuration process
Duncan Coutts <duncan@haskell.org>**20071024133554] 
[Create temp files in dist, since it is now guaranteed to exist
Duncan Coutts <duncan@haskell.org>**20071024102850] 
[Regenerate GHC/Makefile.hs from GHC/Makefile.in
Duncan Coutts <duncan@haskell.org>**20071023183804] 
[Only use ld -x on systems where ld supports that.
Duncan Coutts <duncan@haskell.org>**20071023183738
 Hopefully this fixes it for both ordinary builds and via ghc makefiles.
] 
[pass cpp-options to cpphs
Ross Paterson <ross@soi.city.ac.uk>**20071023184210] 
[Refuse to run any commands if the .cabal has been modified
Simon Marlow <simonmar@microsoft.com>**20071023093111
 See GHC bug #1372
 This is a consistency check, intended to prevent this class of build
 failures:
 
    * Package P is updated, its version number is bumped, the
      new version is compiled and installed.
 
    * Package Q depends on P.  Q is modified to use the new P, and Q's
      .cabal file is updated with changes to the build-depends field to
      depend on the new version of P.
 
    * The user has an old build of Q.  They pull the changes to Q and
      'setup build' without cleaning or re-configuring.  Build errors
      ensue, because the code of Q depends on changes to P's API, and
      we're still building against the old P.
 
 Note that you can't get segfaults this way, only build errors.
 
 This also relies on some new consistency checking in GHC 6.8 to work
 properly.  If the user re-configures their Q build and then issues
 'setup build' without cleaning, GHC must now realise that the package
 flags have changed, and re-compile all the affected Q modules.  GHC
 6.6 would not do this, but 6.8 does.
] 
[Add support for Haddock 2.0
David Waern <davve@dtek.chalmers.se>**20071021231415] 
[Be explicit about the base version dependency
Duncan Coutts <duncan@haskell.org>**20071023122417
 don't just leave it up to the default search order
] 
[typo in comment
Ross Paterson <ross@soi.city.ac.uk>**20071022091235] 
[Correct the spelling of mingw32 in os alias list
Duncan Coutts <duncan@haskell.org>**20071018195641
 Doh!
] 
[refinement of fix for #1785: don't use xargs' -s option at all
Simon Marlow <simonmar@microsoft.com>**20071019124522] 
[FIX GHC bug #1785: use 2048 as the maximum command-line size
Simon Marlow <simonmar@microsoft.com>**20071018140500
 Apparently Solaris sets a limit of 2048 here
] 
[don't fail if xxx_hsc_make.c is gone
Ross Paterson <ross@soi.city.ac.uk>**20071018164245
 
 The non-GHC hsc2hs deletes it even if the compilation fails.
] 
[Use cpp-options rather than abusing ghc-options
Duncan Coutts <duncan@haskell.org>**20071017164914] 
[Add a "cpp-options:" field and use it for pre-processing .hs .hsc .chs files
Duncan Coutts <duncan@haskell.org>**20071017164747
 This is for pre-processing Haskell modules, not for C code. We already have
 cc-options for that purpose. Up 'til now people have been abusing ghc-options
 for this purpose. Even Cabal itself was guilty of doing that.
] 
[Figure out if hsc2hs is using gcc or ghc as it's C compiler
Duncan Coutts <duncan@haskell.org>**20071017143108
 and pass the appropriate flags on the basis of knowing that.
 This is a hack.
 What we should do longer term is make hsc2hs always use gcc as it's C compiler
 and have Cabal figure out the right flags to pass it, rather than using ghc
 to pass on the appropriate flags to gcc.
] 
[Change the handling of cpp & ghc flags for hsc2hs
Duncan Coutts <duncan@haskell.org>**20071016231652
 The hsc2hs that comes with ghc uses ghc as the C compiler. This means we must
 escape the real cc flags. It also means we can ask ghc to add extra include
 dirs that we might need to find includes of dependent packages. This is a bit
 of a hack. In the longer term it'd be better for Cabal to collect the include
 dirs and cc options of dependent packages and to pass them explicitly itself.
] 
[Improve error messages for failed sanity checks.
Thomas Schilling <nominolo@gmail.com>**20070925144955] 
[Translate flat files into sectionized files, by duplicating global
Thomas Schilling <nominolo@gmail.com>**20070925144921
 dependecies into each non-empty section.  The previous solution dumped
 them into the library section, even if it would have been empty
 otherwise.
] 
[Move ghcVerbosity function into GHC module to share code
Duncan Coutts <duncan@haskell.org>**20071014165730] 
[Note current development version number in release notes
Duncan Coutts <duncan@haskell.org>**20071012121835] 
[Update the TODO list, mostly removing things.
Duncan Coutts <duncan@haskell.org>**20071012121702
 Most of these are duplicated by Trac bugs.
 We should try and get rid of this TODO file completely and just use Trac.
] 
[Add logging functions notice, info, debug functions and use them consistently
Duncan Coutts <duncan@haskell.org>**20071012113237
 We previously had this kind of code all over the place:
 > when (verbosity >= verbose)
 >      (putStrLn "some message")
 We now replace that with:
 > info verbosity "some message"
 Much nicer.
] 
[When parsing ghc-pkg output, only look at the first package.conf file for GlobalPackageDB and SpecificPackageDB, and all package.conf files for UserPackageDB.
bjorn@bringert.net**20071016095254
 Before, we would consider user packages when fulfilling dependencies
 for global installs. ghc-pkg will refuse to install packages globally if they
 use user packages. Thus, without this patch, global installs can fail when you have user packages installed.
] 
[Pass -c (silent create) to ar when verbosity < normal.
bjorn@bringert.net**20071013220906] 
[Change --verbosity= option of SetupWrapper (cabal-setup) to --verbose=, since that is what the rest of Cabal uses.
bjorn@bringert.net**20071013215617] 
[Pass -w -v0 to ghc when compiling Setup.{lhs,hs} in SetupWrapper when verbosity == silent.
bjorn@bringert.net**20071013214820] 
[Update documentation on configurations
Duncan Coutts <duncan@haskell.org>**20071012015338
 Describe the new syntax and make variuous changes to the
 description of the meaning.
] 
[Use -O2 for compiling .c files when we configure --enable-optimization
Duncan Coutts <duncan@haskell.org>**20071011223607
 Seems a reasonable default behaviour.
] 
[parameterise InstalledPackageInfo over the type of module names
Simon Marlow <simonmar@microsoft.com>**20071003114947
 This is useful in GHC, we can instantiate InstalledPackageInfo to
 ModuleName and avoid lots of String<->FastString conversions.
] 
[Remove commented-out code. 
bjorn@bringert.net**20071006083615
 Push to 1.2.
] 
[Rename parseDescription to parsePackageDescription.
bjorn@bringert.net**20071006083354
 This should be pushed to cabal-1.2 to make cabal-install work with 1.2.
] 
[Bump version number to 1.3
bjorn@bringert.net**20071005105412] 
[Expose parseDescription.
bjorn@bringert.net**20071005104554] 
[Fix GenericPrackageDescription pretty printing to make it parsable. It still does not include all information.
bjorn@bringert.net**20071005102555] 
[Haddock comment for the available dependencies argument to finalizePackageDescription.
bjorn@bringert.net**20071004134544] 
[Add extra-libs to shared library linking
Clemens Fruhwirth <clemens@endorphin.org>**20070927123923] 
[Actually -stubdir only works well in ghc-6.8 due to -I search dir mess
Duncan Coutts <duncan@haskell.org>**20070926131843
 In ghc-6.6 the Foo/Bar.hc files only #include "Bar_stub.h" rather than
 #include "Foo/Bar_stub.h". This means when we set the stubdir so that the
 _stub.h files don't sit next to the .hs file then the include search path
 is not right to find the _stub.h file. In ghc-6.8 this is fixed so that
 it adds the -stubdir path to the include search path when calling gcc.
] 
[The -stubdir flag is supported in ghc-6.6 not just 6.6.1
Duncan Coutts <duncan@haskell.org>**20070926114223] 
[Add -package-name to GHC invocation when linking DSOs
Clemens Fruhwirth <clemens@endorphin.org>**20070926090025] 
[Be more fuzzy with os, arch and impl matching in conditions. Fixes bug #158.
Duncan Coutts <duncan@haskell.org>**20070925132608
 Do all the comparisons case insensitively and add some OS aliases so that
 if os(windows)  works if the System.Info.os is actually "mingw32".
] 
[Don't generate links when dependent docs not installed. Fixes bug #157.
Duncan Coutts <duncan@haskell.org>**20070924142520
 Generates a warning rather than failing as before.
] 
[Fix warnings
Ian Lynagh <igloo@earth.li>**20070923122921] 
[Fix pre-processing for executables
Duncan Coutts <duncan@haskell.org>**20070922105414
 The pre-processed files should go into the exe's build dir, not the
 lib's build dir. Also pre-process main modules, fixing bug #14.
] 
[Add a boring file
Ian Lynagh <igloo@earth.li>**20070913203550] 
[Remove some now-unecessary cleaning that causes problems for haskell-src
Ian Lynagh <igloo@earth.li>**20070920203257
 The code that removes .hs files in the source tree generated from .y files
 had a comment:
     XXX: This is actually no longer necessary, but we keep it, so that
     clean works correctly on packages built with an older version of Cabal
 This was causing problems for source distributions that include such
 generated files (including haskell-src in extralibs).
] 
[Move expensive conviguration actions inside branch where they're used
Duncan Coutts <duncan@haskell.org>**20070917085834
 We only need to configure the compiler and resolve any "Cabal-Version:"
 dependency when we're actually going to compile the Setup.hs program.
 We can otherwise save time by not calling ghc and ghc-pkg unnecessarily.
 (I only noticed this because I've got >150 registered packages which
 causes ghc and ghc-pkg to be very slow to start.)
] 
[Note in .cabal file that we're using a custom build-type
Duncan Coutts <duncan@haskell.org>**20070917033959] 
[Pass on all the cabal-setup options to cabal, not just unrecognised ones
Duncan Coutts <duncan@haskell.org>**20070917025121
 So for example -v and -w get passed on rather than swallowed by cabal-setup
 itself.
] 
[Put setup program and setup .o/.hi files into dist/setup
Duncan Coutts <duncan@haskell.org>**20070917024907
 That way they get cleaned automatically and do not clutter the top dir.
] 
[Correct the verbosity range in the "--help" text
Duncan Coutts <duncan@haskell.org>**20070917024416
 The correct range in 0--3, not 0--2 or 0--5
] 
[look in odir for source and .hs files, not buildDir lbi
Duncan Coutts <duncan@haskell.org>**20070917145030
 odir = buildDir lbi for the lib case, which is why it worked most of the time
 in testing but in the exe case it's a different dir.
] 
[Put _stub.{c|h} files under dist/ so they'll get cleaned. Fixes bug #154.
Duncan Coutts <duncan@haskell.org>**20070917123042
 Only used with ghc-6.6 and later which supports the -stubdir flag.
 With earlier ghc versions the files still end up in the src dirs and so do not
 get cleaned.
] 
[Fix haddockDir
Ian Lynagh <igloo@earth.li>**20070912133051] 
[Add htmlDirTemplate to inplaceDirs
Ian Lynagh <igloo@earth.li>**20070912125749] 
[Add a --htmldir flag
Ian Lynagh <igloo@earth.li>**20070912122145] 
[Don't forcibly append "pkgName (package pkg_descr)" to htmldir
Ian Lynagh <igloo@earth.li>**20070911192814] 
[TAG 2007-09-06
Ian Lynagh <igloo@earth.li>**20070906212150] 
[use OPTIONS instead of OPTIONS_GHC for now, the latter doesn't work with GHC 6.2.x
Simon Marlow <simonmar@microsoft.com>**20070912105243] 
[Don't create empty data dirs. Fixes bug #153.
Duncan Coutts <duncan@haskell.org>**20070912113803
 Patch contributed by Sven Panne.
] 
[Use confgurations to help build Cabal for ghc-6.2.x
Duncan Coutts <duncan@haskell.org>**20070912112934
 Replacing a long-standing comment telling people how to do it manually.
] 
[warning police
Simon Marlow <simonmar@microsoft.com>**20070907140731] 
[Update D.S.GHC/Makefile.hs
Clemens Fruhwirth <clemens@endorphin.org>**20070906213507] 
[Add shared library building to GHC module (also via Makefile)
Clemens Fruhwirth <clemens@endorphin.org>**20070906213132] 
[fix type clash: Data.Version -> Distribution.Version
Malcolm.Wallace@cs.york.ac.uk**20070906163051] 
[fix broken #ifdefs for nhc98
Malcolm.Wallace@cs.york.ac.uk**20070906161553] 
[spell nhc98-options correctly
Malcolm.Wallace@cs.york.ac.uk**20070906150411] 
[Fix various mispellings of nhc98.
Malcolm.Wallace@cs.york.ac.uk**20070906143959] 
[nhc-options should be spelled nhc98-options
Malcolm.Wallace@cs.york.ac.uk**20070906143536] 
[TAG 1.2.0
Duncan Coutts <duncan@haskell.org>**20070906121830] 
[Remove now-empty dependencies dir
Duncan Coutts <duncan@haskell.org>**20070906012144
 Not needed since cabal-install moved to another repo.
] 
[note need to use -i when bootstrapping ghc, and update coders list
Duncan Coutts <duncan@haskell.org>**20070906012055] 
[Bump version number to 1.2.0
Duncan Coutts <duncan@haskell.org>**20070906010337] 
[Fix haddock markup
Duncan Coutts <duncan@haskell.org>**20070906010221] 
[Use layout rather than braces {} for sections in our own .cabal file
Duncan Coutts <duncan@haskell.org>**20070906002844
 Since we can and we want to set a good example.
] 
[Update changelog
Duncan Coutts <duncan@haskell.org>**20070906002539] 
[Update authors list in LICENSE and remove duplicate copyright file
Duncan Coutts <duncan@haskell.org>**20070906002235
 We currently have 39 different authors, all those with a significant number
 of patches are listed as copyright holders in the LICENSE file.
] 
[Rewrite the parser for the configuration structure to allow laout or braces
Duncan Coutts <duncan@haskell.org>**20070905223609
 Joint work with Thomas Schilling.
 The sections and indeed fields (and if/else) can now use either explicit
 brace {} style layout or indentation eg:
 > library
 >   exposed-modules: Blah
 or
 > library {
 >   exposed-modules:
 > }
 layout style can be nested within explict braces style and vica versa.
 Also add some more checks and relax the tab checks.
 Unrecognised sections, like unrecognised fields, are not fatal errors,
 so we could add sections in future without breaking old cabal.
] 
[make this buildable with GHC 6.2.x
Simon Marlow <simonmar@microsoft.com>**20070903140232] 
[Remove unused helper function
Duncan Coutts <duncan@haskell.org>**20070903122408
 Ok to remove, it never appeared in any release.
] 
[Oops, fix Distribution.Make
Duncan Coutts <duncan@haskell.org>**20070903122355] 
[Fix haddock markup
Duncan Coutts <duncan@haskell.org>**20070903113145
 Thanks to int-e for reporting
] 
[Generalise build --ghc-option flag to --prog-option for any prog
Duncan Coutts <duncan@haskell.org>**20070903110658
 and remove makefile --ghc-option flag as it's not used (as far as I can see).
 It works generically by updating the ProgramConfiguration rather than the
 previous ad-hoc implementation. This feature is generally only useful for
 hackers who want to pass extra args to a progam during the build step
 (probably as a one-off) without having to reconfigure.
] 
[Make userSpecifyArgs update the args even if the prog is configured already
Duncan Coutts <duncan@haskell.org>**20070903104852] 
[Remove register --with-hc-pkg flag
Duncan Coutts <duncan@haskell.org>**20070903091038
 It was just a hack for the benefit of ghc and we don't need it now.
] 
[Rename --prog-args to --prog-options
Duncan Coutts <duncan@haskell.org>**20070902170637
 amd --prog-arg to --prog-arg and update the user guide.
] 
[Change --configure-option= to --configure-arg=
Duncan Coutts <duncan@haskell.org>*-20070902003334
 For consitency with other flags.
] 
[Warning supression for Windows
Ian Lynagh <igloo@earth.li>**20070902225111] 
[Suppress some warnings
Ian Lynagh <igloo@earth.li>**20070902193955] 
[Change --configure-option= to --configure-arg=
Duncan Coutts <duncan@haskell.org>**20070902003334
 For consitency with other flags.
] 
[Pass --configure-option=  options to configure in the right order
Duncan Coutts <duncan@haskell.org>**20070901173147
 in the same order as they were passed to cabal configure on the command line
] 
[Add --prog-arg= and make --prog-args parse quotes
Duncan Coutts <duncan@haskell.org>**20070901171742
 So this provides two ways of passing options that contain embeded spaces:
 --foo-args='--bar --baz="path with spaces in"'
 --foo-arg=--bar --foo-arg=--baz="path with spaces in"
 all args passed this way are collected in order.
] 
[Don't use normalise when parsing configure arguments
Duncan Coutts <duncan@haskell.org>**20070901162043] 
[Maintainer is now cabal-devel@haskell.org
Ross Paterson <ross@soi.city.ac.uk>**20070901140921] 
[Don't pass docdir to ./configure, as older autoreconfs don't support it
Ian Lynagh <igloo@earth.li>**20070831173226] 
[Document the new "pkgconfig-depends:" field
Duncan Coutts <duncan@haskell.org>**20070831182113] 
[Update the user guide on where the build-tools: field lives
Duncan Coutts <duncan@haskell.org>**20070831181816
 It's now part of the build information rather than package description,
 which is as it should be.
] 
[Use pkg-config to check for the packages specified in "pkgconfig-depends:"
Duncan Coutts <duncan@haskell.org>**20070831171014
 And fill out the includeDirs, extraLibs, extraLibDirs, ccOptions and ldOptions
 with the results from pkg-config --cflags --libs
] 
[Add a pkgconfig-depends: field to the .cabal file
Duncan Coutts <duncan@haskell.org>**20070831170922] 
[Move build-tools into the lib/exe stanzas and update configure
Duncan Coutts <duncan@haskell.org>**20070831144001
 configure now has to gather the required build tools from the BuildInfo
 of the lib and exes.
] 
[Add util function allBuildInfo :: PackageDescription -> [BuildInfo]
Duncan Coutts <duncan@haskell.org>**20070831143906
 The 'BuildInfo' for the library (if there is one and it's buildable)
 and all the buildable executables. Useful for gathering dependencies.
] 
[Refactor the internal handling of the "--user" flag into a PackageDB type
Duncan Coutts <duncan@haskell.org>**20070831135042
 PackageDB can be user/global or a specific package db. The latter option is
 not exposed in the user interface anywhere.
 Also move the getInstalledPackages into the per-compiler modules with a
 non-compiler-specific wrapper left in Distribution.Simple.Configure
] 
[Display the appropriate install messages for lib vs exes
Duncan Coutts <duncan@haskell.org>**20070831115746
 Don't confuse users by suggesting that we're installing libs when we're
 actually only installing exes, or vica-versa.
] 
[Update user guide on Windows installation paths, and add default for docdir
Duncan Coutts <duncan@haskell.org>**20070831113054] 
[fix 'Make checking program versions not produce error spew' for non-GHC
Ross Paterson <ross@soi.city.ac.uk>**20070831082438] 
[track renaming of GHCMakefile.in
Ross Paterson <ross@soi.city.ac.uk>**20070831082151] 
[for c2hs, look for .chi files in dist/build rather than hs-src-dirs
Duncan Coutts <duncan@haskell.org>**20070830233715
 Since when we run c2hs we put .chi files into dist/build so that's also
 where we should be looking for them.
] 
[Install license file into docdir rather than datadir
Duncan Coutts <duncan@haskell.org>**20070830233651] 
[Change installation layout on Windows slightly
Duncan Coutts <duncan@haskell.org>**20070824163141
 Make Haskell part of the default $prefix and make docs relative
 to $prefix rather than $datadir which is fixed for libs.
 Make the default fixed lib $datadir be Program Files\Haskell rather
 than Common Files.
] 
[Make checking program versions not produce error spew
Duncan Coutts <duncan@haskell.org>**20070830144312
 Redirect stderr to /dev/null (or NUL on windows) and throw an exception
 like rawSystemExit does rather than calling die which prints an unhelpful
 message before throwing an exception. It's not an overall failure to not
 be able to establish the version of a program, since we check later if we
 actually have any requirement for any particular version anyway.
 So for example this makes running configure with an old version of c2hs
 that doesn't grok --numeric-version not produce unhelpful output that
 make people think that configure failed.
] 
[Define delete in Distribution/Compat/Map.hs
Ian Lynagh <igloo@earth.li>**20070829195308
 Fixes the build with old GHCs.
] 
[Reorder configure message about what compiler we're using
Duncan Coutts <duncan@haskell.org>**20070829014420] 
[Remove compilerProg & compilerPkgTool from Compiler
Duncan Coutts <duncan@haskell.org>**20070829013814
 This info is redundant since the compiler-specific code knows what
 programs to run and it can get that from the ProgramConfiguration.
] 
[Make getInstalledPackages use ProgramConfiguration rather than Compiler
Duncan Coutts <duncan@haskell.org>**20070829013518
 These should be moved into the GHC and JHC modules, possibly with some
 unifying version if that make sense.
] 
[Add rawSystemProgramStdout, the Program variant of rawSystemStdout
Duncan Coutts <duncan@haskell.org>**20070829012200] 
[Don't use the compilerProg and compilerPkgTool, use the ProgramConfiguration
Duncan Coutts <duncan@haskell.org>**20070829002113
 Except for reporting, we use the ProgramConfiguration directly.
 Less duplication of information this way.
] 
[More register cleanups to do with ghc-pkg args
Duncan Coutts <duncan@haskell.org>**20070829002008] 
[Rejig the register code a bit
Ian Lynagh <igloo@earth.li>**20070828205209] 
[Rename searchPath to findProgramOnPath
Duncan Coutts <duncan@haskell.org>**20070828162906] 
[Move defaultCompilerFlavor into Distribution.Compiler
Duncan Coutts <duncan@haskell.org>**20070828161546] 
[Move GHC Makefile's .depend into dist/build
Clemens Fruhwirth <clemens@endorphin.org>**20070824115920] 
[Add dynlibdir to InstallDirs
Clemens Fruhwirth <clemens@endorphin.org>**20070828092655] 
[Move several modules under .Simple
Duncan Coutts <duncan@haskell.org>**20070826201510
 Compiler, Program, PreProcess and Setup are really part of the Simple
 build system.
 Also move a couple GHC modules under Simple.GHC.*
] 
[Use dllExtension rather than reimplementing it locally
Duncan Coutts <duncan@haskell.org>**20070825114706] 
[correct copy'n'pasted comment
Duncan Coutts <duncan@haskell.org>**20070825114203] 
[remove unused imports
Duncan Coutts <duncan@haskell.org>**20070825114141] 
[Remove the use of 'normalise' since it is currently broken (normalise
Thomas Schilling <nominolo@gmail.com>**20070824233303
 "./" => "/"!) and we don't need it that much, right now.
] 
[Add mkSharedLibName to D.Simple.Utils for DSO filename mangling
Clemens Fruhwirth <clemens@endorphin.org>**20070824141609] 
[Add --enable-shared as configure argument, and ghc-shared-options as .cabal field
Clemens Fruhwirth <clemens@endorphin.org>**20070824141140] 
[The prologue.txt is not needed for anything
Duncan Coutts <duncan@haskell.org>*-20070822214122
 The text from the description is now used for haddock
] 
[Add docDirTemplate for inplace package config files
Clemens Fruhwirth <clemens@endorphin.org>**20070824204819] 
[Import FilePath.dropDrive for hugs and GHC>6.6. In all other cases, provide our own.
Clemens Fruhwirth <clemens@endorphin.org>**20070824145816] 
[Install any license file
Duncan Coutts <duncan@haskell.org>**20070824161642] 
[Update documentation on install-includes field
Duncan Coutts <duncan@haskell.org>**20070824155146] 
[Add install-includes .h files to the sdist tarball
Duncan Coutts <duncan@haskell.org>**20070824154839] 
[Only create includes and bin dirs if necessary
Duncan Coutts <duncan@haskell.org>**20070824152749
 For includes, don't list the include dir in the package registration
 info unless we're actually going to install some include files.
 So we should create fewer pointless empty directories. See bug #97.
] 
[Look for install-includes in . first, then in include-dirs
Duncan Coutts <duncan@haskell.org>**20070824152632
 Since .h files listed in install-includes need not be in the include-dirs
 search path at all.
] 
[Document lots of flags and the new build-tools: field
Duncan Coutts <duncan@haskell.org>**20070824134316
 Document the following options:
 --enable-library-for-ghci / --disable-library-for-ghc
 --enable-library-vanilla / --disable-library-vanilla
 --enable-split-objs / --disable-split-objs
 --jhc
 --save-configure
 --with-PROG= --PROG-args=
 --gen-pkg-config=
] 
[Remove unused --enable-haddock-use-packages flags
Duncan Coutts <duncan@haskell.org>**20070824133045
 The feature they controled had been removed but
 the --enable/disable flag had not been removed.
] 
[Add a "build-tools:" field to the cabal file format
Duncan Coutts <duncan@haskell.org>**20070823212946
 It's the same format as the build-depends, eg:
 build-tools: cpphs, c2hs >= 0.15
 During the configure step we try to configure the listed programs and
 if a version range is specified then we check that it is satisfied.
] 
[Hack to supress a warning when building Cabal
Duncan Coutts <duncan@haskell.org>**20070823212645
 Normally we'd warn if using a new format cabal file and a cabal-version >= 1.2
 field is not specified in the cabal file. However we cannot do this for cabal
 itself or we'd not be able to bootstrap. So we just supress the warning for
 the package "Cabal".
] 
[Wrap the configure help text program list and rename the prog arg templates
Duncan Coutts <duncan@haskell.org>**20070823193245
 Use "--with-PROG=" rather than "--with-<program>" since the other subsitution
 bits like ARGS, PATH etc are upper case contractions. So it's more consistent.
] 
[Make the GetOpt help text fit in 80 cols by wrapping the description
Duncan Coutts <duncan@haskell.org>**20070823193015
 And reduce the padding slightly.
 The configure help text look slightly less terrible now, though we've still
 got too many long flags and short flags with long arg names so there's not
 really enough width for the description so it wraps in too many cases.
] 
[Don't include the massive list of --with-prog --prog-args flags in help text
Duncan Coutts <duncan@haskell.org>**20070823155910
 Instead have just two generic ones in the help text and at the bottom,
 list the programs that the flags apply to.
 This still needs to be properly word wrapped to fit in 80 cols (as does the
 rest of the help text).
] 
[Swap haddock inplace/install dirs that were accidentally the wrong way round
Duncan Coutts <duncan@haskell.org>**20070823154258] 
[Fix register --gen-script
Duncan Coutts <duncan@haskell.org>**20070823154218
 It's still useless on Windows.
] 
[The prologue.txt is not needed for anything
Duncan Coutts <duncan@haskell.org>**20070822214122
 The text from the description is now used for haddock
] 
[tweak #if's to avoid treating non-GHC as old GHC
Ross Paterson <ross@soi.city.ac.uk>**20070819232947] 
[Hugs: get dropDrive from current version of filepath
Ross Paterson <ross@soi.city.ac.uk>**20070819232801] 
[We don't need a short option configure flag for selecting nhc
Duncan Coutts <duncan@haskell.org>**20070817043021
 I don't think we need one for ghc either, but perhaps we shouldn't remove
 that immediately as people might be using it. It's safe to remove -n now
 becuase nobody is relying on it as nhc support is still incomplete.
] 
[Trivial reformatting
Duncan Coutts <duncan@haskell.org>**20070817043002] 
[Make configure much less verbose by default and give useful output with -v
Duncan Coutts <duncan@haskell.org>**20070817042414
 This actually brings it into line with the other commands which do not produce
 much output by default. It is very very quiet by default now though.
 To make the -v output nice we have to lower the verbosity one notch in places.
] 
[Add a sanity check that the ghc and ghc-pkg versions should be equal
Duncan Coutts <duncan@haskell.org>**20070817034519
 This was easy to do now that Programs know how to find their version numbers.
] 
[Rewrite the Program abstraction and the ProgramConfiguration database
Duncan Coutts <duncan@haskell.org>**20070817033841
 Also make the follow on changes to everything that uses Program.
 The notion of a program is now split into the abstract notion of a program
 that we know about and might be able to configure, and a configured program
 that we can actually run. The ProgramConfiguration database is similarly
 split. We still keep user-supplied loation and arguments and use them when
 we configure programs. The abstract Program now has functions to search for
 the program on the system and for finding the version number. This allows
 for more generic configuration of programs.
] 
[Add some extra functions to Compat.Map that we'll need later
Duncan Coutts <duncan@haskell.org>**20070817033800] 
[Split ConfVar into ConfFlag and ConfVar
Esa Ilari Vuokko <ei@vuokko.info>**20070816003105] 
[Make 'make tests' runnable again
Esa Ilari Vuokko <ei@vuokko.info>**20070816002009] 
[Add configure --docdir flag which defaults to "$datadir/doc/$pkgid"
Duncan Coutts <duncan@haskell.org>**20070816011634
 Fixes bug #140
] 
[Fix Paths_pkg.hs generation
Esa Ilari Vuokko <ei@vuokko.info>**20070814204557] 
[Warning police: Add type signatures and rename arg
Esa Ilari Vuokko <ei@vuokko.info>**20070814160830] 
[Warning police: Remove unused statement and import
Esa Ilari Vuokko <ei@vuokko.info>**20070814143057] 
[Warning police: provide fallback pattern match
Esa Ilari Vuokko <ei@vuokko.info>**20070814143008] 
[Reorder, make explicit and beautify imports
Esa Ilari Vuokko <ei@vuokko.info>**20070814142000] 
[Refactor the code for managing installation directories
Duncan Coutts <duncan@haskell.org>**20070814092320
 New types for the collection of installation directory templates and a
 separate type for the collection of actual real install FilePaths.
 The templates are represented with a PathTemplate adt.
 Dir templates can now be relative to each other, eg $htmldir to $docdir
 Default install dir templates are now specified compactly in one place.
 Adding new dirs should be considerably simpler than previously.
 This patch should not actualy change where anything is installed.
] 
[ghc only supports the -x flag in 6.6 and above
Duncan Coutts <duncan@haskell.org>**20070814090557] 
[update ghc-pkg field parse error message
Duncan Coutts <duncan@haskell.org>**20070812170800] 
[Clean up import ordering and format
Esa Ilari Vuokko <ei@vuokko.info>**20070811113227] 
[Explicit imports
Esa Ilari Vuokko <ei@vuokko.info>**20070811111518] 
[Use existing parsers to handle ghc-pkg field output
Esa Ilari Vuokko <ei@vuokko.info>**20070809041153] 
[Never generate empty language extension flags
Duncan Coutts <duncan@haskell.org>**20070808235240
 Needed because some compilers support some language extensions by default
 so need no flag to turn those extensions on.
] 
[Cabal now depends on teh containers package
Ian Lynagh <igloo@earth.li>**20070801235622] 
[fix build with GHC 6.2.x
Simon Marlow <simonmar@microsoft.com>**20070809102844] 
[Parse the output of ghc --supported-languages correctly
Magnus Jonsson <magnus@smartelectronix.com>**20070808204523] 
[Oops, fix deprecated Distribution.Extension module
Duncan Coutts <duncan@haskell.org>**20070807172125
 it no longer exports the internal per-compiler extension to flags functions
 as they are no longer exist and the equivalents are internal.
] 
[remove unused local vars
Duncan Coutts <duncan@haskell.org>**20070807171235] 
[Add compilerExtensions field to Compiler and make each compiler fill it in
Duncan Coutts <duncan@haskell.org>**20070807170653
 It's just a list of supported extensions and the corresponding compiler flags.
 For most compilers this is currently just a static list. For ghc 6.7 and above
 we query ghc to find the list of language extensions it supports.
 In each case the code has moved out into the compiler-specific modules and the
 core code treats it generically.
 The extensionsToFlags function has been split into two:
 extensionsToFlags which now returns the flags for the supported extensions and
 unsupportedExtensions which does what it says it does. This is because the two
 roles of the previous function were always used separately, never together.
] 
[Use String rather than importing a module just to misuse a String type alias
Duncan Coutts <duncan@haskell.org>**20070807170526] 
[Add a little documentation.
Thomas Schilling <nominolo@gmail.com>**20070807162023] 
[Fix error message.
Thomas Schilling <nominolo@gmail.com>**20070807162001] 
[Fix translation of deprecated fields.  Add test case.
Thomas Schilling <nominolo@gmail.com>**20070807161837] 
[Warn if no Cabal-version field is specified, but new syntax is used.
Thomas Schilling <nominolo@gmail.com>**20070806235131
 This isn't quite exact.  Ideally, we'd like to have something like
 isEmptyRange (specified-range && >= 1.2) but implementing isEmptyRange
 is non-trivial, so we'll go with this imperfect solution until we need
 that feature elsewhere.
] 
[Re-enable and update unit tests.
Thomas Schilling <nominolo@gmail.com>**20070807000155] 
[Cosmetic cleanup (fix line length)
Thomas Schilling <nominolo@gmail.com>**20070806235644] 
[No longer fail to parse packages without any library or executable
Thomas Schilling <nominolo@gmail.com>**20070806235404
 sections.  Issue a warning instead.  (The previous error message
 "Unexpected end of file" was not very helpful.)
] 
[Allow querying for the wildcard version range.
Thomas Schilling <nominolo@gmail.com>**20070806234707] 
[Split up make target for documentation generation.  Allows to build
Thomas Schilling <nominolo@gmail.com>**20070803200533
 the user's guide separately from the Haddock documentation. 
] 
[Remove more os-specific cppery
Duncan Coutts <duncan@haskell.org>**20070807115707
 The only difference for this one was / vs \\ path separators
] 
[Remove use of cpp in Distribution.System
Duncan Coutts <duncan@haskell.org>**20070807111837
 base it off of the System.Info.os string rather than cpp defs
] 
[Make things build with ghc-6.6.x rather than just ghc HEAD
Duncan Coutts <duncan@haskell.org>**20070807111724
 filepath-1.0 does not export dropDrive
] 
[Ask the compiler what languages it supports, when possible
Ian Lynagh <igloo@earth.li>**20070805171323] 
[Pattern match on an OS datatype rather than using ifdef everywhere
Ian Lynagh <igloo@earth.li>**20070805130347] 
[Add StandaloneDeriving extension
Ian Lynagh <igloo@earth.li>**20070804192416] 
[extensionToGHCFlag is now version dependent, and uses -XFoo flags for >=6.7
Ian Lynagh <igloo@earth.li>**20070804191833] 
[Add TypeFamilies extension
Ian Lynagh <igloo@earth.li>**20070804184959] 
[Don't complain about AllRightsReserved licenses
Duncan Coutts <duncan@haskell.org>**20070804125110
 That can be done in hackage when people try to upload. Fixes bug #127.
] 
[Add setup register --gen-pkg-config flag for distros that want that.
Duncan Coutts <duncan@haskell.org>**20070804115512
 It generates the actual file to be passed to the compiler's package program.
 This is obviously compiler-specific.
] 
[Correct the location of the haddock dir in inplace registrations
Duncan Coutts <duncan@haskell.org>**20070804115428] 
[normalise the input and output file names when pre-processing
Duncan Coutts <duncan@haskell.org>**20070804013029
 eg so we don't call cpp with ././src/blah -o ./dist/blah
 since those ././ can end up in error messages.
] 
[Put the generated haddock-prolog file under dist
Duncan Coutts <duncan@haskell.org>**20070804004848] 
[Try and simplify cleaning by always removing dist
Duncan Coutts <duncan@haskell.org>**20070804004643
 so we don't have to individually track all the files we create
 we still have to delete a few files outside of the build dir sadly
 the configuration is still preserved if you specify --save-configure
] 
[Remove compilerBinaryName, use compilerId instead
Duncan Coutts <duncan@haskell.org>**20070804004524] 
[Move compiler-specific code for configurion into compiler modules
Duncan Coutts <duncan@haskell.org>**20070803213321
 There's slightly more code overally but it's no longer incomprehensible
 because it's not all mixed together for all the different compilers.
] 
[Clean up rather un-sbstract use of Compiler in configure
Duncan Coutts <duncan@haskell.org>**20070803205901] 
[-Wall police
Duncan Coutts <duncan@haskell.org>**20070802194000] 
[Change Compiler's compilerVersion fild to compilerId
Duncan Coutts <duncan@haskell.org>**20070802193400
 Of type PackageIdentifier rather than Version.
] 
[Remove Distribution.Simple.Configure.findProgram as it's no longer used
Duncan Coutts <duncan@haskell.org>**20070802194230] 
[Put the haddock and hscolour version numbers in the global ProgramConfiguration
Duncan Coutts <duncan@haskell.org>**20070802185614
 We do this during the configure step and then later we don't have to run
 haddock & hscolour again to find out their version numbers.
 This also eliminates some annoying module interdependencies.
 Eventually the Program abstraction ought to include the ability for programs
 to discover their own version numbers so it can be done more modularly.
] 
[Alter version parse error message to make it clearer
Duncan Coutts <duncan@haskell.org>**20070802181620] 
[Add version field to Program and add findProgram(AndVersion) utilities
Duncan Coutts <duncan@haskell.org>**20070802172941
 findProgram and findProgramAndVersion construct Program values
 The latter makes it easier to parse output of --version calls.
 The idea is that we should carry the version number along with the program
 if we know it, so we can later decide version-dependent args without having
 to do more IO to find the program version, eg see use_optP_P & haddockVersion.
] 
[Tidy some imports/exports
Duncan Coutts <duncan@haskell.org>**20070802003250] 
[Remove redundant configure flags, missed bits of previous refactoring.
Duncan Coutts <duncan@haskell.org>**20070802003154] 
[Make the Compiler abstraction use the Program abstraction
Duncan Coutts <duncan@haskell.org>**20070801205428
 So out with compilerPath :: FilePath, in with compilerProg :: Program
 Similarly for compilerPkgTool.
 Lots of knock-on changes due to this, including converting many more uses of
 rawSystemExit to rawSystemProgram.
] 
[Simplify rawSystemProgram using programPath
Duncan Coutts <duncan@haskell.org>**20070801200247] 
[Add programPath :: Program -> FilePath
Duncan Coutts <duncan@haskell.org>**20070801200139
 At the moment it's a partial function, but we should change that by having
 a distinction between an abstract program and a configured program.
] 
[Clean up cpphs/ghc -cpp preprocessor code
Duncan Coutts <duncan@haskell.org>**20070801135256
 Now better separated and uses Program better.
 Also no longer needs internal lookupProgram' utils function.
] 
[Clean up calling of ar, make it use Program abstraction
Duncan Coutts <duncan@haskell.org>**20070801021526] 
[Make all the pre-processors use the Program abstraction
Duncan Coutts <duncan@haskell.org>**20070801021049] 
[Improve hangling of the title and prolog for haddock docs
Duncan Coutts <duncan@haskell.org>**20070804021538
 Only include ": " in the title if it has a synopsis to use as subtitle
 Use the description as the prolog, or if that's empty we use the synopsis.
 Do the same for executables, fixing bug #142.
] 
[Less confusing haddock command output when there are no libs in the package
Duncan Coutts <duncan@haskell.org>**20070804013133
 It says:
 > No documentation was generated as this package does not contain a library.
 > Perhaps you want to use the haddock command with the --executables flag.
] 
[Add message saying where haddock docs got put
Duncan Coutts <duncan@haskell.org>**20070804010016
 And make the similar message for sdist respect the verbosity
] 
[Make the writing registration script message less silly
Duncan Coutts <duncan@haskell.org>**20070804002353] 
[Fix haddock markup for finalizePackageDescription
Duncan Coutts <duncan@haskell.org>**20070804001745] 
[Change error message for tabs used as indentation to something more
Thomas Schilling <nominolo@gmail.com>**20070803213331
 helpful.
] 
[Fix import path to HUnit.
Thomas Schilling <nominolo@gmail.com>**20070803200829] 
[Fix printing of 'impl' checks.
Thomas Schilling <nominolo@gmail.com>**20070803200622] 
[Disallow tabs .cabal files with new syntax
Thomas Schilling <nominolo@gmail.com>**20070803181244] 
[Fix tab in Cabal.cabal.
Thomas Schilling <nominolo@gmail.com>**20070803175701] 
[Add impl(...) conditional to configurations.
Thomas Schilling <nominolo@gmail.com>**20070802010527
 You can now use expressions like impl( ghc >= 6.6.1 ) in conditionals
 in .cabal files.
] 
[Add documentation for Cabal Configurations.
Thomas Schilling <nominolo@gmail.com>**20070803125632] 
[Move the SetupWrapper module under Distribution.Simple
Duncan Coutts <duncan@haskell.org>**20070803012304
 It's really a wrapper around the simple build system.
] 
[Cleanup. fix line length
Thomas Schilling <nominolo@gmail.com>**20070801221329] 
[Fix name of flag in error message
Duncan Coutts <duncan@haskell.org>**20070802172141] 
[Add readVersion convenience function to Distribution.Version
Duncan Coutts <duncan@haskell.org>**20070802171703
 So it's merely readVersion :: String -> Maybe Version
 Having to use readP_to_S parseVersion all over the place is annoying.
] 
[extraArgs should override args in command lines
Duncan Coutts <duncan@haskell.org>**20070801023042
 besides, the order was inconsistent within the same function between the
 UserSpecified and FoundOnSystem cases.
] 
[FIX compilation with GHC 6.2.x
Simon Marlow <simonmar@microsoft.com>**20070801095523] 
[Move the haddock code out into it's own module
Duncan Coutts <duncan@haskell.org>**20070731183410
 It removes about 250 loc from Distribution.Simple
] 
[-Wall police
Duncan Coutts <duncan@haskell.org>**20070731173626] 
[Fix order of warnings.
Thomas Schilling <nominolo@gmail.com>**20070730225311] 
[Add line numbers to unknown fields error message.
Thomas Schilling <nominolo@gmail.com>**20070730225256] 
[Display a more helpful error message, when unknown fields are
Thomas Schilling <nominolo@gmail.com>**20070730224026
 noticed. 
] 
[Fix self-compile warnings.
Thomas Schilling <nominolo@gmail.com>**20070730220537] 
[Fix haddock markup
Ian Lynagh <igloo@earth.li>**20070729233545
 I haven't checked that it looks right, but it is now accepted by haddock.
] 
[Pass ghc -package flags when using it as a C compiler in GHCMakefile
Ian Lynagh <igloo@earth.li>**20070729152803
 This means we get the CPP include directories included.
] 
[Add a missing case in updateCfg
Ian Lynagh <igloo@earth.li>**20070729105910] 
[Resolve conflicts
Ian Lynagh <igloo@earth.li>**20070729105854] 
[Fix conflicts.  Fix for changed argument to 'preprocessSources'.
Thomas Schilling <nominolo@gmail.com>**20070728223322] 
[Rename field.
Thomas Schilling <nominolo@gmail.com>**20070728223102] 
[Change HUnit module path to Test.HUnit (the default now).
Thomas Schilling <nominolo@gmail.com>**20070728221453] 
[Add note to 'clean' that it could be simpler, but for compatibility
Thomas Schilling <nominolo@gmail.com>**20070728221342
 reasons isn't (for now). 
] 
[Let sdist command run the preprocessors itself.  This way we don't
Thomas Schilling <nominolo@gmail.com>**20070728221237
 have to put stuff into the source tree.
] 
[Store resolved package description in local build info.  
Thomas Schilling <nominolo@gmail.com>**20070728221102
 
 The clean and sdist commands need to use a flattened representation of
 the original description.  Note the notes for
 flattenPackageDescription for some problems with this approach.
] 
[Export 'flattenPackageDescription'.
Thomas Schilling <nominolo@gmail.com>**20070728215155] 
[Minor documentation fix.
Thomas Schilling <nominolo@gmail.com>**20070728214859] 
[Modify test case.
Thomas Schilling <nominolo@gmail.com>**20070728214825] 
[Add function 'flattenPackageDescription'.
Thomas Schilling <nominolo@gmail.com>**20070728214746] 
[Avoid reporting the same missing dependecy twice.
Thomas Schilling <nominolo@gmail.com>**20070728214645] 
[Add documentation
Thomas Schilling <nominolo@gmail.com>**20070728214541] 
[Add documentation
Thomas Schilling <nominolo@gmail.com>**20070728214444] 
[Add/Fix test cases
Thomas Schilling <nominolo@gmail.com>**20070728214410] 
[Minor. Moved some code.
Thomas Schilling <nominolo@gmail.com>**20070719222541] 
[Add function 'ignoreCondition'.
Thomas Schilling <nominolo@gmail.com>**20070719222444] 
[Re-enable and extend test case.
Thomas Schilling <nominolo@gmail.com>**20070719222341] 
[Filter duplicate dependencies.
Thomas Schilling <nominolo@gmail.com>**20070719222233] 
[Adopt new CondTree data structure.
Thomas Schilling <nominolo@gmail.com>**20070719125305
 
 'finalizePackageDescription' now also takes dependencies of
 executables into account.
] 
[Change CondTree data structure to something more flexible.
Thomas Schilling <nominolo@gmail.com>**20070719124655
 
 This also requires some interface changes.
] 
[Add simpler representation of a .cabal file with conditions.
Thomas Schilling <nominolo@gmail.com>**20070717203942] 
[Preprocessor output never gets written back to the source dir.
Thomas Schilling <nominolo@gmail.com>**20070717174026
 
 'preprocessSources' now gets an additional flag to determine whether
 to process all sources (for building) or only platform independent
 ones (for sdist).
] 
[Add resolved package description to 'LocalBuildInfo'.
Thomas Schilling <nominolo@gmail.com>**20070716204325] 
[Fix removed import by importing a required accessor only.
Thomas Schilling <nominolo@gmail.com>**20070716204238] 
[Add tags target to generate a tags file using 'hasktags'.  (Unix only)
Thomas Schilling <nominolo@gmail.com>**20070716203015] 
[Rename 'PreparedPackageDescription' to 'GenericPackageDescription'
Thomas Schilling <nominolo@gmail.com>**20070716200427] 
[Remove unused dependency.
Thomas Schilling <nominolo@gmail.com>**20070716200215] 
[Move configured_cabal to 'dist' directory.
Thomas Schilling <nominolo@gmail.com>**20070716154146] 
[Bugfix by Ian Lynagh:  Cabal can't have a Cabal-Version header; it breaks bootstrapping
Thomas Schilling <nominolo@gmail.com>**20070716151535] 
[Partial bugfix to allow traditional .cabal files without a library but
Thomas Schilling <nominolo@gmail.com>**20070628112301
 global build dependencies.  The correct solution is to add global
 dependencies to each executable and implement dependency resolution
 for executables.
 
 The current workaround is to add the dependencies to the library, but
 disable building of the library.
] 
[Take advantage of configurations to build Cabal itself and fix bootstrapping problem.
Thomas Schilling <nominolo@gmail.com>**20070628081438] 
[Re-add configurations module to .cabal file.  (Got removed on update.)
Thomas Schilling <nominolo@gmail.com>**20070623204706] 
[Properly fix tests.
Thomas Schilling <nominolo@gmail.com>**20070623203939] 
[Disable (comment out) tests for now.  Break due to changed interface.
Thomas Schilling <nominolo@gmail.com>**20070623203121] 
[Fix typo.
Thomas Schilling <nominolo@gmail.com>**20070623202333] 
[Add proper handling of configurations to configure command.
Thomas Schilling <nominolo@gmail.com>**20070623202017] 
[Fix warnings.
Thomas Schilling <nominolo@gmail.com>**20070623201723] 
[Adjust to new package reading interface.
Thomas Schilling <nominolo@gmail.com>**20070623201546] 
[Downcase flagnames.  Re-add config flags (were removed due to update).
Thomas Schilling <nominolo@gmail.com>**20070623201455] 
[Fix warnings.
Thomas Schilling <nominolo@gmail.com>**20070623201254] 
[Fix warnings, add documentation and changes in response to some
Thomas Schilling <nominolo@gmail.com>**20070623201135
 interface changes.
] 
[Make explicit that reading package descriptions isn't supported here, ATM.
Thomas Schilling <nominolo@gmail.com>**20070623200701] 
[Fixed warning
Thomas Schilling <nominolo@gmail.com>**20070623200522] 
[Fixed warnings, added documentation, and changed os and arch names to
Thomas Schilling <nominolo@gmail.com>**20070623200453
 simple strings.
] 
[Add helpers for reading and writing the file to hold a configured cabal-file.
Thomas Schilling <nominolo@gmail.com>**20070618195710] 
[Add commandline support for specifying defaults for flags.
Thomas Schilling <nominolo@gmail.com>**20070618195449] 
[Compatibility parsing and working configurations.
Thomas Schilling <nominolo@gmail.com>**20070618195329] 
[Pretty printing of conditions and CondTrees.  Non-dependency
Thomas Schilling <nominolo@gmail.com>**20070614125031
 information of CondTrees is now a modifier.  Move CondTree resolution functionality. 
] 
[Prototypical configurations
Thomas Schilling <nominolo@gmail.com>**20070613184332] 
[add line numbers to all field times
Thomas Schilling <nominolo@gmail.com>**20070613173548] 
[add flag as a section
Thomas Schilling <nominolo@gmail.com>**20070613172416] 
[added docs
Thomas Schilling <nominolo@gmail.com>**20070613172309] 
[fixed typo
Thomas Schilling <nominolo@gmail.com>**20070613172230] 
[Abstracted variables out of conditions.  Generalized simplification
Thomas Schilling <nominolo@gmail.com>**20070613172114
 function to accept an arbitrary partial assignment of these
 variables.
] 
[Added Configuration parsing and simplification.
Thomas Schilling <nominolo@gmail.com>**20070529210344] 
[Extended low-level parsing routines to also allow labelled blocks and if-blocks.
Thomas Schilling <nominolo@gmail.com>**20070529205958] 
[Added documentation.
Thomas Schilling <nominolo@gmail.com>**20070528211221] 
[Use the right output directory when building C sources for executables
Duncan Coutts <duncan@haskell.org>**20070726213309] 
[Use our own GetOpt if __GLASGOW_HASKELL__ >= 606 only
Ian Lynagh <igloo@earth.li>**20070724213112
 Used to be if __GLASGOW_HASKELL__ >= 604, but the 6.4 branch had a bug
 which looks likely to be the cause of GHC build failures we're seeing:
 -         procNextOpt (NonOpt x)   RequireOrder      = ([],x:rest,us,[])
 +         procNextOpt (NonOpt x)   RequireOrder      = ([],x:rest,[],[])
] 
[-Wall police
Duncan Coutts <duncan@haskell.org>**20070724172023] 
[Update user guide about haddock --css --hyperlink-source --hscolour-css
Duncan Coutts <duncan@haskell.org>**20070724160742
 The haddock --css flag is new. The old --hscolour=[path] flag got split
 into two flags: --hyperlink-source and --hscolour-css=path
] 
[Remove a couple bits of unused code and imports
Duncan Coutts <duncan@haskell.org>**20070724110732] 
[use nhc-Options rather than deprecated nhc98-Options
Duncan Coutts <duncan@haskell.org>**20070724110703] 
[Hugs build: track change to install-includes
Ross Paterson <ross@soi.city.ac.uk>**20070724101816] 
[Rename --hscolour to --hyperlink-source and add haddock --css flag
Duncan Coutts <duncan@haskell.org>**20070723190026
 So now --hyperlink-source controles wether or not we run hscolour and
 get haddock to link to the sources. The new flag --hscolour-css can
 be used to override the css file that hscolour uses.
 Also, the new flag --css can override the css file that haddock uses.
] 
[Merges from hscolour patch and make it work with haddock-0.8
Duncan Coutts <duncan@haskell.org>**20070723180602
 Some minor changes due to changes since the hscolour patch was written.
 Make it work with haddock-0.8 by using %{MODULE} rather than %{FILE}
 and generate output file names to match (ie not using the original file
 extension, just using the module name for the output file).
] 
[HsColour support
Roberto Zunino <zunrob@users.sf.net>**20070530194747
 Integration of Cabal, HsColour, and Haddock.
 (Also fixes bug #102)
] 
[Remove ContextStack extension
Ian Lynagh <igloo@earth.li>**20070709132341
 Seems to be based on GHC's -fcontext-stack flag, which takes an integer
 argument.
] 
[Remove InlinePhase extension
Ian Lynagh <igloo@earth.li>**20070708172919
 As far as I can tell
 (a) The -finline-phase flag stopped actually being accepted by GHC
     sometime between GHC 4.08.2 and GHC 5.04.3
 (b) It took an Int argument
] 
[Add KindSignatures extension
Ian Lynagh <igloo@earth.li>**20070708120616] 
[Add the MagicHash extension
Ian Lynagh <igloo@earth.li>**20070708111043] 
[TAG 2007-06-29
Ian Lynagh <igloo@earth.li>**20070629112545] 
[get the stub object files right
Simon Marlow <simonmar@microsoft.com>**20070626145413] 
[remove $(LIB) before calling ar
Simon Marlow <simonmar@microsoft.com>**20070626140543] 
[makefile: fix up the way we find _stub.o objects
Simon Marlow <simonmar@microsoft.com>**20070622152042] 
[makefile: replace backslashes with forward slashes for Windows
simonpj@microsoft.com**20070621133101] 
[update output
Ross Paterson <ross@soi.city.ac.uk>**20070620152404] 
[break up the long string literal
Ross Paterson <ross@soi.city.ac.uk>**20070620152103
 
 This makes the output work with implementations (like Hugs) that impose
 a limit on the size of string literals.
] 
[update
Simon Marlow <simonmar@microsoft.com>**20070620091950] 
[include Makefile.local if it exists; allows local customization
Simon Marlow <simonmar@microsoft.com>**20070620091946] 
[clean up .hi-boot and .o-boot
Simon Marlow <simonmar@microsoft.com>**20070620091843] 
[add a "DO NOT EDIT" notice to the top of Cabal-generated Makefiles
Simon Marlow <simonmar@microsoft.com>**20070620091759] 
[Fix warning
Ian Lynagh <igloo@earth.li>**20070615183346] 
[report non-option arguments as errors (fixes #90 and #113)
Ross Paterson <ross@soi.city.ac.uk>**20070607082326
 
 Formerly, non-option arguments to all commands were silently ignored.
 Now setup halts with an error message in this case.
] 
[Fix error message regression
Simon Marlow <simonmar@microsoft.com>**20070606142650
 
 Passing a non-existent program for --with-hc-pkg used to say this:
 
 $ ./Setup configure --with-hc-pkg=foo
 Configuring QuickCheck-2.0...
 /bin/sh: foo: command not found
 Setup: executing external program failed: "foo" --global list >tmp23634
 
 Now it is rather less useful:
 
 $ ./setup configure --with-hc-pkg=foo
 configure: Reading installed packages...
 zsh: 23596 exit 127   ./setup configure --with-hc-pkg=foo
 
 This patch restores the old behaviour, slightly improved:
 
 $ ./Setup --with-hc-pkg=foo configure
 configure: Reading installed packages...
 Setup: executing external program failed (exit 127) : foo --global list
] 
[don't pass unrecognized arguments to ./configure
Ross Paterson <ross@soi.city.ac.uk>**20070605231500
 
 They are now reported as errors.  To pass them to configure, use the
 new --configure-option flag.
 
 Non-option arguments are still ignored (#90 and #113), as with all of
 the other commands.
] 
[Add and use createDirectoryIfMissingVerbose
Ian Lynagh <igloo@earth.li>**20070602002507
 rather than createDirectoryIfMissing
] 
[Overwrite .installed-pkg-config if it exists when registering
Ian Lynagh <igloo@earth.li>**20070530150838] 
[add --cpphs-options
Ross Paterson <ross@soi.city.ac.uk>*-20070115141053] 
[add --cpphs-options
Ross Paterson <ross@soi.city.ac.uk>**20070115141053] 
[implement --configure-option and --ghc-option (#139)
Ross Paterson <ross@soi.city.ac.uk>**20070604114851
 
 Added options used for building in the GHC tree:
 
 	setup configure --configure-option=STR
 	setup build --ghc-option=STR
 	setup makefile --ghc-option=STR
 
 These were formerly scattered across Setup.hs files.
] 
[warning police on SetupWrapper
Ross Paterson <ross@soi.city.ac.uk>**20070603104827] 
[trim imports
Ross Paterson <ross@soi.city.ac.uk>**20070603104802] 
[include preprocessed modules in setup haddock (fixes #138)
Ross Paterson <ross@soi.city.ac.uk>**20070602195508] 
[move dotfiles into dist
Ross Paterson <ross@soi.city.ac.uk>**20070602175348
 
 .setup-config -> dist/setup-config
 .installed-pkg-config -> dist/installed-pkg-config
 .inplace-pkg-config -> dist/inplace-pkg-config
] 
[mark mkGHCMakefile.sh and GHCMakefile.in as source files
Ross Paterson <ross@soi.city.ac.uk>**20070601155538
 so that they'll be included in source distributions of this package.
] 
[cope with ghc-pkg returning multiple values for a field
Ross Paterson <ross@soi.city.ac.uk>**20070601155450] 
[Close the handle of temporary files before removing them
Ian Lynagh <igloo@earth.li>**20070529192852
 The removal fails on Windows if we don't, giving unhelpful errors like
 Setup.exe: .\tmp3660: removeFile: permission denied (Permission denied)
] 
[add nhc98-options: field to .cabal file
Malcolm.Wallace@cs.york.ac.uk**20070528122833] 
[Fix warnings in Paths_* autogenerated module
Ian Lynagh <igloo@earth.li>**20070527220538] 
[Fix quoting when doing gen-script of ' in descriptions
Ian Lynagh <igloo@earth.li>**20070526154747
 It used to turn into '', which just disappears.
 Now it turns into '\''.
] 
[Add Distribution.Simple.GHCMakefile to Exposed-Modules
Ian Lynagh <igloo@earth.li>**20070526153905] 
[old nhc98 Makefiles now obsolete
Malcolm.Wallace@cs.york.ac.uk**20070525133004] 
[Remove package.conf.in and GHC bits of Makefile (used in the old build system)
Ian Lynagh <igloo@earth.li>**20070524142725] 
[avoid overflowing the argument limit when building a split-objs lib
Simon Marlow <simonmar@microsoft.com>**20070524134817] 
[Improvements for 'setup makefile'
Simon Marlow <simonmar@microsoft.com>**20070524132736
  
  - now the makefile can build the library too; so 'setup build' isn't
    required (unless there are post-build steps).  This will be
    necessary for bootstrapping GHC from .hc files, where we'll be
    using Makefiles generated by 'setup makefile' to build the
    libraries.
 
  - the Makefile tempate is in a text file, processed into a .hs file
    by a small script (mkGHCMakefile.sh).  This is run by hand for now,
    and I've included the generated module, so there shouldn't be any
    problems with building Cabal.
 
  - some cleanup and refactoring in Distribution.Simple.GHC
] 
[fix cut&pasto
Simon Marlow <simonmar@microsoft.com>**20070520185605] 
[generalise type of xargs
Simon Marlow <simonmar@microsoft.com>**20070520185556] 
[We now depend on process
Ian Lynagh <igloo@earth.li>**20070523181444] 
[We now depend on pretty, directory and old-time
Ian Lynagh <igloo@earth.li>**20070522133304] 
[Pass rawSystemStdout verbosity, not verbose
Ian Lynagh <igloo@earth.li>**20070523212145] 
[fix compilation with GHC 6.2.x
Simon Marlow <simonmar@microsoft.com>**20070523083703] 
[now needs -package filepath
Malcolm.Wallace@cs.york.ac.uk**20070522085446] 
[Dumping Distribution.Compat.FilePath in favor of System.FilePath
Pepe Iborra <mnislaih@gmail.com>**20070521125919
 
 sorry folks, Compat.FilePath is gone
] 
[Get right the verbosity correspondence for GHC
Pepe Iborra <mnislaih@gmail.com>**20070521124306
   
   GHC has more verbosity levels than Distribution.Verbosity,
   this patch gives a more accurate correspondence
] 
[portability fix
Ross Paterson <ross@soi.city.ac.uk>**20070521113908] 
[custom show'ers for Verbosity
Pepe Iborra <mnislaih@gmail.com>**20070520233520] 
[Export simpleUserHooks
Ian Lynagh <igloo@earth.li>**20070518152026] 
[FIX BUILD with GHC 6.2.x
Simon Marlow <simonmar@microsoft.com>**20070516103919] 
[Small tidyup
Ian Lynagh <igloo@earth.li>**20070515151409] 
[cope with pre-requisite packages with empty haddock fields (like rts)
Ross Paterson <ross@soi.city.ac.uk>**20070515150935] 
[Put some comments in about what the verbosity stuff means
Ian Lynagh <igloo@earth.li>**20070515125013] 
[rejig location of package interfaces for haddock
Ross Paterson <ross@soi.city.ac.uk>**20070515110833
 
 Formerly, setup haddock invoked haddock with a --use-package option
 for each prerequisite package, causing haddock to invoke ghc-pkg to
 get the haddock-interfaces and haddock-html fields for each package.
 The former is accurate, but the latter is not what you want if your
 documentation is to be placed on the web.
 
 Now setup haddock invokes ghc-pkg itself, but if the --html-location
 option is given, its argument is expanded for each package and used
 instead of the haddock-html field.  The results are then assembed as
 --read-interface options for haddock.  For example,
 
 	setup haddock '--html-location=http://hackage.haskell.org/packages/archive/$pkg/latest/doc/html'
 
 generates HTML documentation with hyperlinks pointing at the pages on
 HackageDB.
] 
[Fix warnings
Ian Lynagh <igloo@earth.li>**20070514173011] 
[Fix warnings
Ian Lynagh <igloo@earth.li>**20070514171124] 
[Fix a warning
Ian Lynagh <igloo@earth.li>**20070514170157] 
[Fix warnings
Ian Lynagh <igloo@earth.li>**20070514165951] 
[Compile with -Wall
Ian Lynagh <igloo@earth.li>**20070514161917] 
[Make a proper verbosity type, rather than using Int values
Ian Lynagh <igloo@earth.li>**20070514165514
 Hopefully this will make it easier to get better verbosity consistency.
 
 We could, by changing only Distribution.Verbosity, use
 "type Verbosity = Int" for now to give users of the library a chance to
 catch up, but the upcoming Cabal release seems like a good opportunity
 to cram in as much of the interface-changing stuff that we want to do
 as we can. I think the added benefit of a slow switch would be very low
 indeed.
] 
[separate build and output directory for Hugs build
Ross Paterson <ross@soi.city.ac.uk>**20070513001502
 
 Hugs requires a separate directory for the output files from the directory
 containing the preprocessed files.  The --scratchdir option now sets the
 former (and thus has an effect only for Hugs).
 
 This repairs the Hugs build.
] 
[non-GHC version of rawSystemStdout
Ross Paterson <ross@soi.city.ac.uk>**20070513001017] 
[remove copy of cabal-install library
Ross Paterson <ross@soi.city.ac.uk>**20070501160347] 
[Use Control.Exception even for nhc98 now.
Malcolm.Wallace@cs.york.ac.uk**20070504144146] 
[remove cabal-install and cabal-setup from Makefile
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20070503220644
 These are no longer in the tree, they have their own repos now.
] 
[Fix more verbosity settings of messages
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20070503213124] 
[Fix import of IO.try
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20070503205024
 Hopefully System.IO.Error exists for nhc98 too.
] 
[For nhc98, restore 'systemGetStdout' under the name 'rawSystemStdout' :-)
Malcolm.Wallace@cs.york.ac.uk**20070503145457
 This should now be equivalent in functionality to what was previously removed.
] 
[Hack around non-portable System.Process stuff for nhc98.
Malcolm.Wallace@cs.york.ac.uk**20070503142544
 This is enough to permit Cabal to compile again, but it certainly won't run.
] 
[Fix a couple verbosity settings
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20070502211900
 Showing what files are copied should only be shown at verbosity
 level 2 and above. The default verbosity level is 1.
 Similarly, creating the hidden package registration file should
 not be shown at the default verbosity level.
] 
[fix installIncludeFiles again.
Bertram Felgenhauer <int-e@gmx.de>**20070502182917
 the include file directory must be created for ghc, otherwise package registration will fail. sigh.
] 
[nhc98 does not have Control.Exception
Malcolm.Wallace@cs.york.ac.uk**20070502122017] 
[fix Haddock syntax error
Simon Marlow <simonmar@microsoft.com>**20070502093700] 
[Add test case for platform dependent and independent generated sources
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20070501142716
 The c2hs .hs files should go in dist/build while the happy .hs source
 should remain in the src dir and end up in the sdist tarball.
] 
[fix installIncludeFiles thinko
Bertram Felgenhauer <int-e@gmx.de>**20070501131608
 due to the newly added guard, the "Can't happen" is no longer true.
] 
[Do not delete platform independent pre-processed sources during sdist
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20070501142419
 Since only platform independent pre-processed sources are now left in the
 src dirs we don't have to delete any pre-processed sources and can just
 inlcude them all into the src tarball.
 Ideally we'd track this slightly better in future, it's not nice to be keeping
 any generates sources in the src dirs, they should be considered read-only.
] 
[Leave platform independent pre-processed sources in the src dir
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20070501142323
 Only put platform dependent ones into dist/build
] 
[Record if pre-processors are platform independent
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20070501142147
 PreProcessor is now a record with a couple fields.
 Quite a few knock-on changes due to changing this data type.
] 
[call c2hs using the more detailed info
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20070422102617
 we use --output-dir=dist/base
 and --output=<file relative to the search dir it was found in>.hs
 This actually depends on a patch in c2hs to make it treat --output-dir
 in the way we want. That patch will be forthcomming soonish.
 But the point is:
 c2hs --output-dir=dist/base --output=Foo/Bar.hs src/Foo/Bar.chs
 will generate dist/base/Foo/Bar.hs and also dist/base/Foo/Bar.h
 but inside the .hs file it'll reference Foo/Bar.h so when we compile the
 .hs file we have to -Idist/base
 Clear as mud?
] 
[Generalise PreProcessors to take more detailed args
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20070422100558
 Most pre-processors just need the full source file and target file names.
 More complicated ones where the generated files have to embed links to each
 other need more information. For example c2hs generates .hs file that
 reference generated .h files. These links should be relative to the dist/build
 dir and not to the top of the source tree, since we do not want to add -I. to
 the includes search path. We only want to use -Idist/build, hence the embeded
 links must be relative to that. Therefor c2hs needs to know the base output
 directory as well as the name of the file relative to that.
 So we add a new type PreProcessorFull that has this extra info and a function
 simplePP :: :: PreProcessor -> PreProcessorFull
 for the common case of most existing pre-processors that do not need this
 extra info.
 This patch doesn't actually change the c2hs stuff, that comes next.
] 
[Put pre-processed source into the dist/build dir rather than src dirs
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20070422095631
 This is generally just a nicer thing to do, we should probably aim to
 not write any files into the source tree at all.
 The main change is in the preprocessModule function. It now takes an extra
 arg which is the destination directory. For now I'm passing the buildDir,
 but we could consider putting pre-processed files into a separate fir
 from where the .o and .hi files end up.
 To work out the correct destination file we need to know not only the source
 file but which of the search dirs it was found in, since the relative file
 name will be the name of the source file relative to the search dir it was
 found in, not the name relative to the top of the source tree. This is so that
 we will be able to find the pre-processed .hs file just by adding dist/build
 to the sources search path when we compile (eg with -i for ghc).
 This almost certainly breaks the sdist thing where pre-processed files get
 included into the tarball. So that'll need looking at.
] 
[update documentation for install-headers: field
Bertram Felgenhauer <int-e@gmx.de>**20070420131524] 
[install headers for all compilers
Bertram Felgenhauer <int-e@gmx.de>**20070420123527
 This patch moves the installation of header files from Distribution.Simple.GHC
 to Distribution.Simple.Install. This is required for the header files to be
 usable for preprocessing Haskell code in other packages.
] 
[don't automatically include install-include: headers into compilations via C
Bertram Felgenhauer <int-e@gmx.de>**20070420123418
 This way it's possible to install header files that are meant for preprocessing
 Haskell code, or header files that are meant to be indirectly included by
 others.
] 
[Don't overwrite existing makefiles
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20070430203552
 Patch contributed by Bryan O'Sullivan
] 
[Fix openTempFile so it works on windows with ghc at least
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20070430185744
 It's still a hack. The right solution is to proerly implement openTempFile
 in base for all Haskell impls, not just GHC.
] 
[Use rawSystem not system for capturing output of commands
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20070430184046
 For example we were using a wrapper around 'system' to find the haddock
 version. This invokes the system command interpreter and passes the
 command to run as an argument. If the command has spaces in it and is not
 properly escaped then everything goes wrong. This happens for example
 on windows when haddock and other programs are kept under "Program Files".
 So the right thing to do is never to use system, but always rawSystem since
 then there are no escaping issues.
 
 This patch replaces a couple function systemCaptureStdout and systemGetStdout
 with rawSystemStdout which now lives in Distribution.Simple.Utils.
 
 This also uses some rather nasty code to get the output of a command.
 It really really should not be this hard to do portably. To work around
 the fact that we cannot use runInteractiveProcess we instead have to create
 a temporary file. This also turns out to be a hack because the 'standard'
 openTempFile is not implemented except by GHC, so we now have a hacky version
 living in Distribution.Compat.TempFile just waiting for the standard 
 openTempFile to be made properly portable, or for us to get some
 System.Process function that does what we want.
] 
[Fix the verbosity level for printing executed commands
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20070430155054
 Since 1 is the default verbosity level we should only print commands
 at level 2 and above.
] 
[initialBuildSteps should not actually build.
Bryan O'Sullivan <bos@serpentine.com>**20070424183841] 
[pretend that Cabal can build with nhc98
Malcolm.Wallace@cs.york.ac.uk**20070424104244] 
[minor tweaks to nhc98 branches of case distinctions
Malcolm.Wallace@cs.york.ac.uk**20070212171419] 
[minor clarifications in doc of package descriptions
Ross Paterson <ross@soi.city.ac.uk>**20070423093806] 
[Fix for older GHCs, which exported a System.IO.try
Ian Lynagh <igloo@earth.li>**20070419002443] 
[work around missing Control.Exception for nhc98
Malcolm.Wallace@cs.york.ac.uk**20070418230821] 
[Remove unnecessary import
Ian Lynagh <igloo@earth.li>**20070418114407] 
[Fix imports
Ian Lynagh <igloo@earth.li>**20070418110139] 
[Change variable name to match type change
Ian Lynagh <igloo@earth.li>**20070418104811] 
[Fix Cabal's Setup.lhs after Maybe UserHooks / UserHooks change
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20070418034619] 
[Behave the same on Windows and non-Windows
Ian Lynagh <igloo@earth.li>**20070417230311] 
[Stop having hooks return an ExitCode that we then ignore
Ian Lynagh <igloo@earth.li>**20070417225657] 
[Small tidyup
Ian Lynagh <igloo@earth.li>**20070417225031] 
[Stop pretending we might not have any UserHooks
Ian Lynagh <igloo@earth.li>**20070417224220] 
[Be better about exiting if a command we run fails
Ian Lynagh <igloo@earth.li>**20070417222257] 
[Suggest that missing deps need to be downloaded and installed from hackage
Ian Lynagh <igloo@earth.li>**20070417210158] 
[Make contents of SrcDist more useful to outside users.
Bryan O'Sullivan <bos@serpentine.com>**20070415060916
 
 This change simply splits sdist into three functions.
 
 The normal sdist function remains unchanged from the caller's
 perspective, but it now consists of two phases, each an exported function.
 The source tree is prepared by prepareTree, and the archive is created
 by createArchive.
 
 This lets the cabal-rpm tool prepare a source tree and insert a few
 extra files into it before generating a tarball.
 
] 
[setup makefile: handle hs-source-dirs
Simon Marlow <simonmar@microsoft.com>**20070416140205
 but only if there's a single entry for now.
] 
[setup makefile: use -p option to mkdir when making object directories
Simon Marlow <simonmar@microsoft.com>**20070416134720
 I had a feeble attempt to avoid needing this originally, using $(sort ...)
 to create parents before children, but sometimes the parents aren't in
 the list, so it doesn't work.  mkdir's -p option is POSIX, and I found
 it on all the platforms I checked (Linux, Solaris, Darwin, FreeBSD).
] 
[a couple of fixes to 'setup makefile'
Simon Marlow <simonmar@microsoft.com>**20070416133307
 Put the -package-name flag at the beginning of GHC_OPTS, allowing it
 to be overriden later (as we do in the base package, for example).
 Also, add -split-objs if necessary.
] 
[remove illegal literal tabs in strings (again)
Malcolm.Wallace@cs.york.ac.uk**20070416101220] 
[add missing support for .hs-boot/.lhs-boot with 'setup makefile'
Simon Marlow <simonmar@microsoft.com>**20070413152244] 
[Pass all the Cc/Ld flags to hsc2hs
Ian Lynagh <igloo@earth.li>**20070413131318] 
[REINSTATE: Fix C/Haskell type mismatches
Malcolm.Wallace@cs.york.ac.uk**20070412130607
 This patch was previously applied and then rolled back.
 This new version imports System.Posix.Types.CPid correctly for nhc98.
] 
[Fix -Wall warnings
Ian Lynagh <igloo@earth.li>**20070411004954] 
[-Wall fixes
Ian Lynagh <igloo@earth.li>**20070411003509] 
[Remove duplicate import
Ian Lynagh <igloo@earth.li>**20070410170930] 
[remove illegal tab chars in string literals
Malcolm.Wallace@cs.york.ac.uk**20070410085626] 
[Use Distribution.Compat.FilePath.pathSeparator in Distribution.SetupWrapper, instead of having a local copy.
bjorn@bringert.net**20070409165203] 
[Fix C/Haskell type mismatches
Ian Lynagh <igloo@earth.li>*-20070404003510] 
[Rejig the adjacent checking in the unlitter
Ian Lynagh <igloo@earth.li>**20070407173415
 We were rejecting
     # 1 "foo"
     > ...
 in the HUnit package, claiming that it had a comment next to a program line.
 Now we treat anything cpp inserts as being blank.
] 
[parse (but don't pass on) options for ./configure
Ian Lynagh <igloo@earth.li>**20070406153622] 
[Remove cabal-{builder,install,setup,upload} (now in separate repos)
Ian Lynagh <igloo@earth.li>**20070405194729] 
[Add 'setup makefile' command
Simon Marlow <simonmar@microsoft.com>**20070309155022
 'setup makefile' generates a Makefile that performs the steps
 necessary to compile the Haskell sources to object code.  This only
 works for libraries, and only with GHC right now.
 
 Instead of simply 'setup build', you can do this:
 
   $ ./setup makefile
   $ make
   $ ./setup build
 
 where './setup makefile' does the preprocessing and generates a
 Makefile tailored to the current package.  'make' will build all the
 Haskell code to object files, and 'setup build' will build any C code
 and the library archives.
 
 The reason for all this is that you can say 'make -j' and get a
 parallel build, or you can say
 
   make dist/build/Foo.o EXTRA_HC_OPTS=-keep-s-file
 
 to compile a single file with extra options.
] 
[make Setup suitable for building the libraries with GHC
Ian Lynagh <igloo@earth.li>**20061112214536] 
[Expose Distribution.Compat.ReadP
Ian Lynagh <igloo@earth.li>**20061112214447] 
[Fix C/Haskell type mismatches
Ian Lynagh <igloo@earth.li>**20070404003510] 
[Use rawSystemPath for calling tar rather than system
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20070327110606
 Means we get -v verboe output and better error messages if the command
 is not found.
] 
[Check the return value of tar
Bryan O'Sullivan <bos@serpentine.com>**20070326234148] 
[Fixed and improved Haddock comments
sven.panne@aedion.de**20070322164427] 
[If we export ParseResult, we should export PError and PWarning, too
sven.panne@aedion.de**20070322164340] 
[remove Makefile.inc (only affects nhc98)
Malcolm.Wallace@cs.york.ac.uk**20070320120844] 
[Fixes compiling an executable for profiling with template haskell.
Judah Jacobson <judah.jacobson@gmail.com>**20070314012802] 
[rejig handling of continuation lines (fixes Cabal #118)
Ross Paterson <ross@soi.city.ac.uk>**20070311154610
 
 Also avoids quadratic behaviour on long fields.
] 
[add Distribution.SetupWrapper to exposed-modules
Simon Marlow <simonmar@microsoft.com>**20070309122146] 
[Tweaks to make Cabal play nicer with haddock
Ian Lynagh <igloo@earth.li>**20070308155718
 
 The path for the html docs now includes the package name at the end,
 which works nicer for multiple packages sharing a contents/index.
 
 Use --ghc-pkg when available (in haddock darcs only currently) to tell
 haddock which ghc-pkg to use.
 
 Use --allow-missing-html when available (in haddock darcs only
 currently) to tell haddock not to worry if it can't find the HTML for
 packages we depend on. This is necessary when haddocking a group of
 packages before moving them all into place.
] 
[Cope with ghc-pkg telling us packages are broken
Ian Lynagh <igloo@earth.li>**20070307193131] 
[Tell GHC to use .hs mode when we want it to cpp something for us
Ian Lynagh <igloo@earth.li>**20070307143612] 
[Add parentheses so expressions are parsed correctly
Ian Lynagh <igloo@earth.li>**20070307131941] 
[minor refactoring
Ross Paterson <ross@soi.city.ac.uk>**20070301002731] 
[fix \begin{code typo
Ross Paterson <ross@soi.city.ac.uk>**20070301002557] 
[document the --with-compiler / --with-hc inconsistency
Ross Paterson <ross@soi.city.ac.uk>**20070225115601] 
[Clarify documentation on --with-compiler and --with-hc-pkg
simonpj@microsoft.com**20070221110452] 
[minor markup tweaks
Ross Paterson <ross@soi.city.ac.uk>**20070218104622] 
[This usePackages stuff is haddock-specific so name it as such
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20070213201434] 
[{en,dis}able-use-packages, -optP-P only if haddock<0.8
Conal Elliott <conal@conal.net>**20070204061106] 
[cabal-upload: Added command-line options for username, password, checking instead of uploading. Added ability to get login from file, and to get password from the terminal. Added still unused verbosity options. Bumped version number to 0.2.
bjorn@bringert.net**20070212232920] 
[exclude Setup.lhs
Ross Paterson <ross@soi.city.ac.uk>**20070212193608
 
 This was generating a useless Main entry in the lib doc index.
 (good for STABLE)
] 
[Add recent Cabal modules to nhc98 build system.
Malcolm.Wallace@cs.york.ac.uk**20070212171106] 
[Compatibility with Haskell'98.
Malcolm.Wallace@cs.york.ac.uk**20070212170804
 Import Distribution.Compat.Exception instead of Control.Exception.
 Fix illegal indentation of cascaded do-blocks.
] 
[add --enable-optimization/--disable-optimization config options (on by default)
Ross Paterson <ross@soi.city.ac.uk>**20070212004513] 
[cabal-upload: nicer output.
bjorn@bringert.net**20070206154619] 
[Send Accept header.
bjorn@bringert.net**20070206153521] 
[Allow uploading multiple packages.
bjorn@bringert.net**20070206153406] 
[Changed HTTP dependency to >= 1.0. 
bjorn@bringert.net**20070206153054] 
[cabal-upload: Removed build-simple since hackage doesn't seem to accept it for non-lib packages.
bjorn@bringert.net**20070206133616] 
[Added URL for cabal-upload wiki page.
bjorn@bringert.net**20070206132142] 
[Added usage message to cabal-upload.
bjorn@bringert.net**20070206131408] 
[Added a small hacky first version of cabal-upload.
bjorn@bringert.net**20070206112237] 
[cabal-setup doesn't need -cpp
Ross Paterson <ross@soi.city.ac.uk>**20070115154724] 
[Refactorings only
Simon Marlow <simonmar@microsoft.com>**20070114203741
 Here are a batch of refactorings to clean up parsing and parts of the
 simple build system.  This patch originated in a patch sent to
 cabal-devel@haskell.org with an intial implementation of
 configurations.  Since then we decided to go a different route with
 configurations, so I have separated the refactoring from the
 configurations patch.
 
 At this point, 2 tests fail for me, but I get the same 2 failures
 without this patch.
] 
[pass arguments through when performing the setup actions ourselves
Ross Paterson <ross@soi.city.ac.uk>**20070113133211] 
[separate option for the compiler for Setup.hs
Ross Paterson <ross@soi.city.ac.uk>**20070113133000
 
 This need not be the same compiler as used to build the package
] 
[Ignoring user packages when installing locally doesn't make sense.
Lemmih <lemmih@gmail.com>**20070112150318] 
[cabal-install now caches downloaded packages in the directory for the package, and with .tar.gz extension.
bjorn@bringert.net**20070112143527] 
[cabal-install.cabal: Added build-type field. Change hs-source-dir to hs-source-dirs (hs-source-dir has been deprecated for some time).
bjorn@bringert.net**20070112131959] 
[cabal-install --user now keeps package cache and package list in ~/.cabal-install
bjorn@bringert.net**20070112131301] 
[fix ghc-options (not a listField)
bjorn@bringert.net**20070112124938] 
[add a Build-Type field, and use it in setupWrapper
Ross Paterson <ross@soi.city.ac.uk>**20070111233018
 
 As discussed on the libraries list (Nov 2006), add a field Build-Type
 which can be used to declare that this package uses one of the boilerplate
 setup scripts.  This allows setupWrapper (used by cabal-setup and
 cabal-install) to bypass the setup script in this case and perform
 the setup actions itself.
] 
[remove a use of null+head
Ross Paterson <ross@soi.city.ac.uk>**20070111182430] 
[remove two fromJust's
Ross Paterson <ross@soi.city.ac.uk>**20070111182401] 
[pass CABAL_VERSION to Hugs
Ross Paterson <ross@soi.city.ac.uk>**20070111182216] 
[cabal-install now puts the package list in /var/lib/cabal-install and the tarballs in /var/cache/cabal-install by default. Added command-line options for changing those.
bjorn@bringert.net**20070111190452] 
[Track verbosity argument changes
Ian Lynagh <igloo@earth.li>**20070111180601] 
[Testsuite quietening
Ian Lynagh <igloo@earth.li>**20070111175329] 
[cabal-install: Output usage info for the right command when pasrsing the package name arguments fails.
bjorn@bringert.net**20070111164924] 
[SetupWrapper now passes verbosity to other functions, as required by Igloo's patch.
bjorn@bringert.net**20070111161651] 
[Make cabal-install use setupWrapper (the library version of cabal-setup).
bjorn@bringert.net**20070111160535] 
[Moved the cabal-setup code to Distribution.SetupWrapper, so that cabal-install can use it. CabalSetup.hs now just calls the setupWrapper function.
bjorn@bringert.net**20070111130506] 
[Quieten the testsuite more
Ian Lynagh <igloo@earth.li>**20070111155957] 
[Pass verbosity info down to warn
Ian Lynagh <igloo@earth.li>**20070111154526] 
[Derive Show on various datatypes
Ian Lynagh <igloo@earth.li>**20070111140220] 
[Give feedback in runTests.sh
Ian Lynagh <igloo@earth.li>**20070111132654] 
[Be less verbose at verbosity level 1
Ian Lynagh <igloo@earth.li>**20070111131228] 
[Fix warning
Ian Lynagh <igloo@earth.li>**20070111130928] 
[No need for -fno-warn-unused-matches any more
Ian Lynagh <igloo@earth.li>**20070111130824] 
[Always pass Hooks around, not Maybe Hooks
Ian Lynagh <igloo@earth.li>**20070111124234] 
[Make Makefile use the right ghc/ghc-pkg
Ian Lynagh <igloo@earth.li>**20070111122833] 
[Add -Wall to GHCFLAGS
Ian Lynagh <igloo@earth.li>**20070111102742] 
[Updated cabal-install test scripts to use the main Cabal repo.
bjorn@bringert.net**20070111111727] 
[Added cabal-install test scripts.
bjorn@bringert.net**20070110184835] 
[Added cabal-install Makefile.
bjorn@bringert.net**20070110184754] 
[Added HTTP package code used by cabal-install.
bjorn@bringert.net**20070110184545] 
[Imported all the cabal-install sources.
bjorn@bringert.net**20070110183142] 
[Added cabal-install dep on regex-compat.
bjorn@bringert.net**20070110180020] 
[Removed old CabalInstall.hs (it has moved to cabal-install/src in one of the pataches I pulled in).
bjorn@bringert.net**20070110174435] 
[Pulling in cabal-install: changed default Hackage DB URL.
bjorn@bringert.net**20070110173825] 
[Pulling cabal-with-install into Cabal: cabal-install.cabal changes.
bjorn@bringert.net**20070110172811] 
[Pulling changes from cabal-with-install: Multiple repositories.
bjorn@bringert.net**20070110164852
 Original patch:
 Sat Sep  2 00:13:40 CEST 2006  Paolo Martini <paolo@nemail.it>
   * Multiple repositories.
] 
[Pulling changes from cabal-with-install: Stripping off the dependencies, only HTTP left
bjorn@bringert.net**20070110164556
 Original patch:
 Sun Aug 20 19:01:03 CEST 2006  Paolo Martini <paolo@nemail.it>
   * Stripping off the dependencies, only HTTP left
] 
[Resolve Makefile conflict from importing Cabal-with-install patches.
bjorn@bringert.net**20070110163852] 
[a program to test download & install a bunch of cabal packages
ijones@syntaxpolice.org**20061114063409] 
[added --inplace trick to cabal build so that cabal-install can build on machines without cabal.
ijones@syntaxpolice.org**20060922034620] 
[First attempt to make a new repository (url in the configuration)
Paolo Martini <paolo@nemail.it>**20060820180342] 
[Tarball index format support
Paolo Martini <paolo@nemail.it>**20060816223509] 
[Quieten a test
Ian Lynagh <igloo@earth.li>**20070110175223] 
[Pass 0 verbosity on to GHC when building
Ian Lynagh <igloo@earth.li>**20070110174050] 
[More verbosity tweaking
Ian Lynagh <igloo@earth.li>**20070110172956] 
[Rejig verbosity levels a bit; 1 is now the default (was 0)
Ian Lynagh <igloo@earth.li>**20070110165149] 
[Make system tweaks to avoid cabal thinking it isn't bootstrapped when running the testsuite
Ian Lynagh <igloo@earth.li>**20070110162940] 
[Typo
Ian Lynagh <igloo@earth.li>**20070110154617] 
[Refer to the right variables
Ian Lynagh <igloo@earth.li>**20070110151326] 
[Give unrecognised flags more clearly
Ian Lynagh <igloo@earth.li>**20070110144650] 
[Beautify
Ian Lynagh <igloo@earth.li>**20070110143711] 
[Retab
Ian Lynagh <igloo@earth.li>**20070110143103] 
[Remove some chatter from the test scripts
Ian Lynagh <igloo@earth.li>**20070110142756] 
[Eliminate more warnings
Ian Lynagh <igloo@earth.li>**20070110142114] 
[More -Wall clean fixes
Ian Lynagh <igloo@earth.li>**20070110135838] 
[Improve cleaning
Ian Lynagh <igloo@earth.li>**20070110134230] 
[-Wall clean fixes
Ian Lynagh <igloo@earth.li>**20070110125523
 
 This patch is sponsored by Hac 07.
 Have you hacked a lambda today?
] 
[Fix non-fatal problem with 'setup haddock' for an exe package
Simon Marlow <simonmar@microsoft.com>**20070109133751
 For some unknown reason, we were passing --use-package=P to haddock,
 where P is the name of the current executable package.  This can never
 work, since P is not a library and will not be installed.  Fortunately
 Haddock ignores the error and continues anyway.
 
] 
[Set the Cabal version when building via the fptools build system
sven.panne@aedion.de**20070106152814
 
 Without this patch, Cabal is effectively "version-less" and all .cabal
 files with a version requirement are unusable. Therefore I think that
 this patch (or at least something equivalent) should be pushed to the
 6.6.1 branch, too.
] 
[added --save-configure flag to clean. got some complaints that there was no way to avoid reconfiguring after a clean.  now if you use --save-configure, you should be able to.
ijones@syntaxpolice.org**20061219152204] 
[tiny mod to License comments
ijones@syntaxpolice.org**20061219060021] 
[improving help output
ijones@syntaxpolice.org**20061219055849
 As suggested by Claus Reinke in this ticket:
 http://hackage.haskell.org/trac/hackage/ticket/105
] 
[fix ./Setup unregister --help, which was giving the help for register
Simon Marlow <simonmar@microsoft.com>**20061215165000] 
[Fix the links in the user guide to the API docs
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>*-20061129131633] 
[Fix the links in the user guide to the API docs
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20061129131633] 
[haddock comments for SrcDist.hs
ijones@syntaxpolice.org**20061127041303] 
[some haddock comments for LocalBuildInfo.hs
ijones@syntaxpolice.org**20061127040916] 
[a little comment for JHC.hs
ijones@syntaxpolice.org**20061127040026] 
[some comments for Install.hs
ijones@syntaxpolice.org**20061127035919] 
[some comments for Hugs.hs
ijones@syntaxpolice.org**20061127035310] 
[haddock comments for GHC and GHCPackageConig
ijones@syntaxpolice.org**20061127034617] 
[some comments for Configure.hs
ijones@syntaxpolice.org**20061127033157] 
[some comments for Build.hs
ijones@syntaxpolice.org**20061127032409] 
[minor comments and cleanup for Setup.hs
ijones@syntaxpolice.org**20061127031744] 
[some haddock explanation of preprocessors
ijones@syntaxpolice.org**20061127031055] 
[some comments for Package.hs
ijones@syntaxpolice.org**20061127025108] 
[haddockizing some comments from Make.hs
ijones@syntaxpolice.org**20061127024142] 
[adding comments to Program.hs
ijones@syntaxpolice.org**20061127022353] 
[comments for the Program module
ijones@syntaxpolice.org**20061127002749] 
[don't return an error code just because there's no library to register
ijones@syntaxpolice.org**20061124144831] 
[Purely cosmetic; have '--<FOO>-args' use ARGS on their RHS rather than PATH in usage output
sof@galois.com**20061121195844] 
[parse executable field as a token (as documented), rather than free text
Ross Paterson <ross@soi.city.ac.uk>**20061120093400] 
[trim trailing spaces (including CRs) from all input lines
Ross Paterson <ross@soi.city.ac.uk>**20061120092526] 
[help nhc98 find the import of programLocation
Malcolm.Wallace@cs.york.ac.uk**20061117144001] 
[sdist: make it work on Windows platforms by simplifying 'tar' invocation. Hopefully not at the cost of other plats (i.e., as-yet untested there..)"
sof@galois.com**20061117014832] 
[build: consult and use any user-provided settings for 'ld' and 'ar'
sof@galois.com**20061117014622] 
[defaultUserHooks.sDistHook: pass in optional LBI to SrcDist.sdist
sof@galois.com**20061117014448] 
[defaultProgramConfiguration: add 'ld' and 'tar' entries
sof@galois.com**20061117014318] 
[revise Paths module for the Hugs target
Ross Paterson <ross@soi.city.ac.uk>**20061108223349
 
 When targetting Hugs, the Paths module now uses prefix-independent
 paths relative to the location of the Main module of the program,
 on all platforms.
 
 For the Hugs target, this replaces the code using GetModuleFileNameA(),
 which never worked.  Behaviour under GHC should be unchanged.
] 
[Hugs: fix location of installed package info
Ross Paterson <ross@soi.city.ac.uk>**20061021144613] 
[Fix escaping of ' chars in register.sh script.
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20061016215459] 
[Tidy up command comments
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20061013211158] 
[Fix getDataDir etc. when bindir=$prefix
Simon Marlow <simonmar@microsoft.com>**20061013100941] 
[Update text on the front page: packages can now overlap in GHC 6.6
Simon Marlow <simonmar@microsoft.com>**20061012114601
 
] 
[New unlit code "ported" from cpphs-1.2
Lennart Kolmodin <kolmodin@dtek.chalmers.se>**20061009192609] 
[Share one more place where the cabal version is defined.
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20061010140027] 
[Fix spelling error in error message.
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20061010140013] 
[Centeralise the places that know that Cabal version number
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20061010135918] 
[Remove spurious debug message.
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20061010125643] 
[Bump to next unstable development version
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20061010125602] 
[Make cabal know it's own version number correctly
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20061010130939
 This is an unpleasent way of doing it.
 Will have to fix once and for all in the next version.
] 
[TAG 1.1.6
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20061009123801] 
[Bum version to 1.1.6 release
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20061009123733] 
[Add note about unix dep for ghc-6.2
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20061009123632] 
[Update README, changelog and releaseNotes
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20061009123558] 
[TAG 1.1.5.9.4
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20061007141722] 
[Bump version to 1.1.5.9.4
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20061007141412] 
[Only use -package-name with the package's version number for ghc-6.4
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20061007123309
 This change was added for ghc-6.6 but broke packages for ghc-6.2.2.
] 
[Make the configure step respect the HC makefile var
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20061007113643] 
[Have the default make target be build rather than test
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20061007113556
 This is more normal.
] 
[Read the buildinfo for the haddock step.
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20061005212138
 In particular this means we pick up any cc-options that are
 needed for preprocessing the source before haddock reads it.
 This fixes the haddock build step for many of the packages in
 the ghc-extralibs collection.
] 
[Use pragma OPTIONS rather than OPTIONS_GHC for compatability with ghc 6.2.x
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20061005211937] 
[TAG 1.1.5.9.3
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060911223941] 
[Bump version for 3rd 1.1.6 release candidate
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060911223908] 
[Make Distribution.Compat.FilePath public and Distribution.Compat.ReadP private
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060911222733
 Ideally all the Distribution.Compat.* modules would be private,
 however there is currently no sensible alternative to the FilePath module
 and hiding it at this stage breaks packages.
] 
[Use slightly simpler way of getting GHC version.
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060823105956
 ghc has supported --numeric-version for ages.
] 
[Be cleverer about guessing hc-pkg name and location.
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060823105412
 So it now works if you say:
 ./setup configure --with-compiler=ghc-6.5
 ie specifying a path-relative name rather than an absolute path.
 We then look for hc-pkg in the same dir as where we found the compiler.
 If the compiler appears to have a version suffix then we additionally
 and preferentially look for hc-pkg with that same version suffix.
 (I'm not sure that bit works if you've got a .exe suffix, perhaps a
 windows person could try it / take a look)
] 
[CabalSetup: reuse './setup' if it's newer than the setup script.
Lemmih <lemmih@gmail.com>**20060926231910] 
[Fix the combination of --enable-library-profiling and --enable-split-objs
Lemmih <lemmih@gmail.com>**20060926231658] 
[clarification of the way --inplace works
ijones@syntaxpolice.org**20060922042102] 
[cleanups to user's guide
Ross Paterson <ross@soi.city.ac.uk>**20060910144428
 
  * markup fixes
  * spelling
  * id's for some elements to avoid warnings
  * mention the use of Description field by setup haddock
  * clean up --hoogle description
] 
[Check exit codes!
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060908173615
 Cabal was not noticing haddock failing. That's bad.
] 
[Use {-# OPTIONS_GHC -cpp #-} so that runghc Setup.lhs works.
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060908153717] 
[TAG 1.1.5.9.2
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060906234045] 
[Second 1.1.6 release candidate.
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060906232241] 
[Use a versioned tarball
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060906230909] 
[Do not build cabal-setup or cabal-install for now.
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060906225224] 
[Remove all the old cabal-install dependencies
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060906225023
 The newer cabal-install has different and fewer deps.
 We will add those in for a release including cabal-install.
] 
[{-# OPTIONS -fglasgow-exts #-} is not needed.
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060906212744] 
[Fix xml escaping in user guide docbook.
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060906173226] 
[Account more accurately for command line chunk size.
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060906160321] 
[Don't build with -Wall for the release.
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060906155220
 It just makes us look bad! :-)
] 
[Bump version number in Makefile to match.
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060906155203] 
[Update import in the withHooks test in the testsuite.
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060906155111] 
[Fix testsuite to use compiler version-specific paths properly
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060906154730
 It was using constant strings like "lib/ghc-6.4.1/blah"
 which obviously doesn't work very well with ghc-6.5.20060903
 Also let the test to run be specified on the command line to
 make it easier to re-run individual tests.
] 
[Eliminate warnings of dups in the export list.
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060906085838] 
[Remove extensions and options that are only needed for cabal-install
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060906085702
 Since we're not shipping cabal-install or cabal-setup just yet.
] 
[Add --hoogle docs, thanks to ndm for the text.
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060905233859] 
[Bump version number to first 1.1.6 release candidate.
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060905231556] 
[We don't really depend on mtl or network
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060902205243
 No idea why they were there, it builds fine without.
 Having these deps causes circular dependencies for package-based
 distros like Gentoo since mtl and network are not in the core set
 of libs and they both need cabal to build.
] 
[Add BangPatterns to Extensions
simonpj@microsoft.com**20060901125632] 
[Don't ignore C-objects when linking prof-libraries.
Lemmih <lemmih@gmail.com>**20060827090226] 
[export PWarning for interface closure
Ross Paterson <ross@soi.city.ac.uk>**20060827162252] 
[hide internal modules from haddock
Ross Paterson <ross@soi.city.ac.uk>**20060827161235] 
[non-GHC: use System.Console.GetOpt
Ross Paterson <ross@soi.city.ac.uk>**20060827145601] 
[Hugs-only comment tweak
Ross Paterson <ross@soi.city.ac.uk>**20060827145539] 
[fix haddock reference
Ross Paterson <ross@soi.city.ac.uk>**20060827145437] 
[change title to Haskell Hierarchical Libraries
Ross Paterson <ross@soi.city.ac.uk>**20060827131348] 
[Make haddock target support the --hoogle flag
Simon Marlow <simonmar@microsoft.com>**20060822150720
 Originally Neil Mitchell's patch, minor conflict fixed by me.
] 
[Change default installation dirs for executables on Windows:
Simon Marlow <simonmar@microsoft.com>**20060822134232
 
 before:
 
   bindir  = $prefix\$pkgid
   datadir = $prefix
 
 now:
 
   bindir  = $prefix\Haskell\bin
   datadir = $prefix\Haskell
 
 datasubdir is still $pkgid, so data files for an exectuable will be
 installed in $prefix\Haskell\$pkgid.
 
 the idea is that all executables are installed in the same directory
 by default, so setting PATH is easier.  Also, data files belonging to
 Haskell programs are grouped together under $prefix\Haskell.
] 
[On second thoughts, follow the Cabal docs for the syntax of package names
Simon Marlow <simonmar@microsoft.com>**20060822120025
 Each package component must now contain at least one letter, a weaker 
 requirement than always beginning with a letter.
] 
[Components of a package name should not begin with a digit
Simon Marlow <simonmar@microsoft.com>**20060822113719
 Avoids ambiguities with package identifiers like "foo-1" (the 1 is the
 version number). 
] 
[Use long-style args to haddock.
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060821230753] 
[Do not expose modules that are internal to the Cabal package
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060821174312
 This brings it in sync with the package.conf.
] 
[Make -o use the filename as GHC will, i.e. with .exe on the end for Windows. This fixes a GHC 6.4.2 bug with relinking every time.
Neil Mitchell**20060821143021] 
[Use 30k by default for max command line length.
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060821121534
 We'll see if anyone complains.
] 
[Use ghc from the path by default in the Makefile
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060818173551] 
[Add xargs function and use it when linking.
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060818010449
 When using GHC's --split-objs we end up with lots of files to link.
 This can mean overflowing the maximum length of the command line
 when invoking ar or ld. On windows the maximum length is 32k. On
 other systems it's not a great deal more. GHC currently deals with
 this problem by using xargs. This patch does more or less the same.
] 
[Try to support TH with profiling. See ticket #91.
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060802175922
 This needs testing.
] 
[repair Distribution.Compat.Map for non-GHC
Ross Paterson <ross@soi.city.ac.uk>**20060810124314] 
[Avoid use of deprecated Data.FiniteMap, if possible
Simon Marlow <simonmar@microsoft.com>**20060809153232
 Distribution.Compat.Map taken from Haddock.
] 
[Change 'getInstalledPkg' to the more sensible 'getLatestPkg'.
Lemmih <lemmih@gmail.com>**20060806135545] 
[Don't check for packagesDirName and servListFile, they may not exist.
Lemmih <lemmih@gmail.com>**20060806135423] 
[GHC build only: set $(MKDEPENDHS) in addition to $(HC)
Simon Marlow <simonmar@microsoft.com>**20060803092216] 
[pass the whole packageId to GHC with the -package-name flag
Simon Marlow <simonmar@microsoft.com>**20060720150931
 This shouldn't make any difference to current GHC's, but will be
 required by the new GHC package code.
] 
[install: pass the verbose flag to register too
Simon Marlow <simonmar@microsoft.com>**20060728085914] 
[Add documentation of new LocalBuildInfo fields
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060726230130] 
[Wrap excessively long line
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060726221702] 
[Hold back on forcing vanilla libs for TH for the moment
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060726221532
 When we get confirmation from GHC devs that it's the right
 thing to do then we can add it in.
] 
[Add initial support for --enable/disable-library-vanilla flags
jeremy.shaw@linspireinc.com**20060720174408
 For additional information see these mail threads:
 
 http://www.haskell.org//pipermail/libraries/2006-July/005522.html
 http://urchin.earth.li/pipermail/debian-haskell/2006-July/000220.html
] 
[build and install cabal-setup as part of GHC build
Simon Marlow <simonmar@microsoft.com>**20060720140417] 
[fix indentation in do block for H'98 compatibility
Malcolm.Wallace@cs.york.ac.uk**20060711162221] 
[resolve conflicts from henning-thielemann's work.  Thanks Henning!
ijones@syntaxpolice.org**20060708185016] 
[install Haddock documentation in share/package/doc/html and register that path in the ghc-pkg
cabal@henning-thielemann.de**20060609194058] 
[PackageDescription: haddockName generates the name of the .haddock file
cabal@henning-thielemann.de**20060609193924] 
[PackageDescription: added toMaybe, some logical simplifications
cabal@henning-thielemann.de**20060609193508] 
[Distribution.Simple.Utils: copyDirectoryRecursiveVerbose
cabal@henning-thielemann.de**20060609192715] 
[Distribution.Compat.Directory: added getDirectoryContentsWithoutSpecial
cabal@henning-thielemann.de**20060609192421] 
[Distribution.simple: haddock option --use-package tells which packages to hyperlink to
cabal@henning-thielemann.de**20060605183304] 
[stripPrefix -> dropPrefix
cabal@henning-thielemann.de**20060604195549] 
[generate .haddock interface file when running haddock
cabal@henning-thielemann.de**20060604195216] 
[UNDO: Merge "unrecognized long opt" fix from 6.4.2
Simon Marlow <simonmar@microsoft.com>**20060705142842
 This patch undid the previous patch, "merge from base".  I asked Sven
 to revert it, but didn't get an answer.
   
 See GHC bug #473.
] 
[Change flags passed to hsc2hs
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060704001926
 The extra-libraries must be passed as -L-l${lib} or linking the C prog
 that hsc2hs generates may fail if any symbols are referenced.
 Also can't use cppOptions function since hsc2hs doesn't support -U.
 Need to do -U flags in ccOptions seperately.
] 
[finish interaction with remote HTTP servers
audreyt@audreyt.org**20060624233156] 
[stage 2 patch: implement the "list" command
audreyt@audreyt.org**20060624231421] 
[it's now 00-latest not latest
audreyt@audreyt.org**20060624221907] 
[implement support for flat-file layout
audreyt@audreyt.org**20060624221547] 
[parsec is not a dependency
Simon Marlow <simonmar@microsoft.com>**20060518131434
 It is apparently required for the wash2hs test, however.
] 
[Merge "unrecognized long opt" fix from 6.4.2
Sven Panne <sven.panne@aedion.de>**20060506110640] 
[Cabal.xml: entity greencard was mixed up with haddock
cabal@henning-thielemann.de**20060411161212] 
[Change calls to 'make' into '$(MAKE)'
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060502174630
 This is the portable thing to do and fixes things on FreeBSD where make/=gmake
] 
[Hugs: copy paths module to the right place, this time
Ross Paterson <ross@soi.city.ac.uk>**20060503132510] 
[pass correct -P flag to ffihugs
Ross Paterson <ross@soi.city.ac.uk>**20060503122452
 
 The -P flag wasn't superfluous, but it was wrong for executables.
] 
[Hugs: copy path module into package build dir
Ross Paterson <ross@soi.city.ac.uk>**20060503122300] 
[add header file for GetModuleFileNameA
Ross Paterson <ross@soi.city.ac.uk>**20060502141641] 
[remove superfluous ffihugs -P option
Ross Paterson <ross@soi.city.ac.uk>**20060502104635] 
[fix for Hugs
Ross Paterson <ross@soi.city.ac.uk>**20060502101054
 
 Add explicit types for a couple of constants to work around Hugs's
 imperfect implementation of the monomorphism restriction.
] 
[TAG 1.1.4
duncan.coutts@worc.ox.ac.uk**20060502095901] 
[TAG shipped in GHC 6.4.2
Simon Marlow <simonmar@microsoft.com>**20060424093133] 
[Hugs: also compile the paths module
Ross Paterson <ross@soi.city.ac.uk>**20060501171206] 
[markup fix
Ross Paterson <ross@soi.city.ac.uk>**20060501145015] 
[move cabal-install/etc-cabal-get to cabal-install/etc-cabal-install
alson@alsonkemp.com**20060430175158] 
[Complete move of cabal-get to cabal-install + some fixups
alson@alsonkemp.com**20060430174300] 
[basic information for installing
ijones@syntaxpolice.org**20060430063205] 
[build and install cabal-setup
ijones@syntaxpolice.org**20060430063144] 
[add etc-cabal-get as a data-file
ijones@syntaxpolice.org**20060430055332] 
[bumping cabal version number. 1.1.4 will be the one released with ghc 6.4.2.
ijones@syntaxpolice.org**20060430044905] 
[modify makefile for cabal-install
ijones@syntaxpolice.org**20060430041617] 
[cabal-get will become cabal-install
ijones@syntaxpolice.org**20060430025633] 
[getting rid of cabal-install in favor of cabal-get
ijones@syntaxpolice.org**20060430024951] 
[Remove erroneous exports...
alson@alsonkemp.com**20060428195702] 
[Patch to fix "-ixyz" being overwritten by "-i" and to remove Cabal's dependency on the Cabal package.
alson@alsonkemp.com**20060428055353] 
[Separate build into "make build" and "make install"
alson@alsonkemp.com**20060428034151] 
[Fixups to get cabal-get into Cabal
alson@alsonkemp.com**20060428032617] 
[Update Cabal with cabal-get
alson@alsonkemp.com**20060427204050] 
[Fix JHC command lines.
Einar Karttunen <ekarttun@cs.helsinki.fi>**20060427005922] 
[document install-includes and register --inplace
Simon Marlow <simonmar@microsoft.com>**20060428130542] 
[fix imports for Windows
simonmar@microsoft.com**20060428075617] 
[Better support for packages that need to install header files
Simon Marlow <simonmar@microsoft.com>**20060426140627
 
 There's a new field for .cabal files: 
 
      install-includes: foo.h bar.h
 
 This means the same as 'includes', except that the files named therein
 will be installed into $libdir/include.  'includes' should only be
 used for headers already installed on the system.
 
 Directories listed in 'include-dirs' still turn into -I options for
 hsc2hs, cpphs, and C compilations.  However, for installation
 purposes, relative directories in 'include-dirs' are now treated
 differently from absolute directories:
 
   - an absolute directory is copied to the include-dirs field
     of the installed package config
 
   - files names in install-includes are assumed to be found in
     one of the *relative* directories listed in include-dirs
 
 So the common pattern for providing a header file that you want to
 be available everywhere including to via-C compilations against this
 package:
 
   include-dirs: myincludes
   install-includes: foo.h
 
 will install the header file myincludes/foo.h in
 $libdir/include/foo.h.
] 
[merge from base:
Simon Marlow <simonmar@microsoft.com>**20060426121408
 
 Wed Apr 26 13:11:10 BST 2006  Simon Marlow <simonmar@microsoft.com>
   * RequireOrder: do not collect unrecognised options after a non-opt
] 
[pass unrecognised options before the command name to the command
Simon Marlow <simonmar@microsoft.com>**20060426121321
 Previously, options before the command name other than --help were
 just ignored, which is quite confusing behaviour.  So now,
 
 ./setup --with-compiler=ghc-6.4.2 configure
 
 works as you expect, instead of ignoring the --with-compiler option.
] 
[First attempt at a cabal-setup command
Simon Marlow <simonmar@microsoft.com>**20060303162233
 cabal-setup is a replacement for 'runhaskell Setup.hs'.  It accepts
 exactly the same commands.  Additionally, the following new features
 are provided:
 
  * Setup.{hs,lhs} is optional.  If omitted, cabal-setup behaves just
    like Distribution.Simple.defaultMain.
 
  * If the .cabal file contains a cabal-version field, then Setup.hs
    is built using an appropriate version of Cabal.  This might entail
    creating Setup.hs if it doesn't exist.
 
  * cabal-setup interprets the options --with-compiler and --with-hc-pkg
    to determine the compiler used to compile Setup.hs.
 
 Later, we could add support for building multiple packages in
 dependency order, as per recent discussions on libraries@haskell.org.
] 
[add new modules
Ross Paterson <ross@soi.city.ac.uk>**20060425195548] 
[Implement "setup register --inplace", and a few other minor things
Simon Marlow <simonmar@microsoft.com>**20060425144733
  
 There are a few changes in this patch:
  
    - New flag to register, --inplace.  "setup register --inplace"
      registers the package for use in the build tree, i.e. without
      installing.  It works with GHC only, currently.
      
    - The parameters to RegisterCmd, UnregisterCmd and InstallCmd are a
      legacy from before the time of hooks (or something) and don't
      serve any purpose any more, AFAICT.  So I removed them.
  
    - I don't think "setup register" worked propertly before if
      --user was given to configure.  It does now.
 
    - New flag to register: --with-hc-pkg (just the same as when
      given to configure, but lets you override it at register-time)
] 
[Refactoring only: separate compiler-specific simple build implementation
Simon Marlow <simonmar@microsoft.com>**20060425111957] 
[get LocalBuildInfo from Distribution.LocalBuildInfo
Simon Marlow <simonmar@microsoft.com>**20060425111921] 
[warning cleanup
Simon Marlow <simonmar@microsoft.com>**20060425102302] 
[Distribution.Compat.FilePath should be hidden
Simon Marlow <simonmar@microsoft.com>**20060411141305
 This also matches package.conf.in.
] 
[Hide Distribution.GetOpt; it just re-exports System.Console.GetOpt anyway
Simon Marlow <simonmar@microsoft.com>**20060411141045
 This also matches Cabal.cabal.
] 
[GHC FFI flag should be -fffi not -ffi, the latter merely happens to work.
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060318022010] 
[Make ghc-6.2 packages be exposed by default.
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060221135026
 For ghc-6.4 when Cabal registers packages it exposes them by default.
 However it does not do the same fo ghc-6.2. This change corrects the
 discrepancy. This patch is already being used in Gentoo with Cabal 1.1.3.
] 
[test case for buildinfo with multiple executables
ijones@syntaxpolice.org**20060408213048] 
[It is no longer necessary to run 'configure' before 'clean' or 'sdist', addressing http://haskell.galois.com/trac/hackage/ticket/12.
Nick Alexander <ncalexan@uci.edu>**20060404054127
 In order to change this behaviour, it was necessary to modify the hook interface, specifically cleanHook, postClean, sDistHook, postSDist.  They now take a Maybe LocalBuildInfo, since a LocalBuildInfo might not be available in .setup-config.
] 
[windows patch from brian.mabry.edwards@gmail.com
ijones@syntaxpolice.org**20060404171731] 
[oops, don't enable -split-objs by default
Simon Marlow <simonmar@microsoft.com>**20060314124358] 
[export configDependency
Simon Marlow <simonmar@microsoft.com>**20060303155527] 
[comment fix
Simon Marlow <simonmar@microsoft.com>**20060303155516] 
[don't check cabal-version during parsing, it doesn't work
Simon Marlow <simonmar@microsoft.com>**20060303155500
 because parsers are evaluated multiple times due to backtracking.
] 
[no need to use a verbatim copy of System.Console.GetOpt, omit if possible
Simon Marlow <simonmar@microsoft.com>**20060303144025] 
[Support for -split-objs with GHC
Simon Marlow <simonmar@microsoft.com>**20060302170907
 New configure option: --enable-split-objs creates libraries using
 -split-objs with GHC (current HEAD or later only, the configure checks
 for version 6.5).  Fixes ticket #19.
] 
[Initial support for JHC
Einar Karttunen <ekarttun@cs.helsinki.fi>**20060206233543] 
[added some fields to test suite for duncan's mods
ijones@syntaxpolice.org**20060204223256] 
[fixup PackageDescription test code
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060201183912
 just ignore the extra ParseOk warnings field
] 
[ignore "x-" extension fields without a warning
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060201183145] 
[Make unknown fields a warning rather than an error
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060201182944
 Add support for warnings to the ParseResult type. Change existing
 warnings from using Debug.Trace to use this new warning support.
] 
[fix conflict
Simon Marlow <simonmar@microsoft.com>**20060206095833] 
[push and pull all
ijones@syntaxpolice.org**20060201185441] 
[combine GNUmakefile and Makefile
Simon Marlow <simonmar@microsoft.com>**20060206095400] 
[now build Setup.lhs instead of using runghc on it. still uses runhugs.
ijones@syntaxpolice.org**20060130054810] 
[cabal-install uses defaultMain if it can't find Setup.lhs
ijones@syntaxpolice.org**20060130050710] 
[cleaned up suffix handler params to hooks
ijones@syntaxpolice.org**20060116064811
 
 Summary if last few changes: I modified the hooks interface quite a
 bit, again.  There's good news and bad news about this.  The good news
 is that it's cleaned up and should be easier to maintain and to avoid
 future modifications.  The bad news is that this change itself will
 break stuff, of course.
 
 If you have any trouble building your Setup scripts, please let me
 know.  I really think that it was best to bite the bullet right now in
 one big go instead of down the road with lots of little changes.  I
 have a lot more confidence in the hooks interface, and I don't
 actually expect that it'll change as often.
 
 I made the types more consistent, and made sure there are accessor
 functions on each of the Flags types so that if the flags types change
 in the future, it shouldn't break lots of code.
 
 Another piece of good / bad news is that I decided not to get rid of
 the pre & post hooks.  They are nice for convenience and it wouldn't
 be nearly so easy to write hooks without them.
 
 That's bad because the interface to hooks is still pretty big, which
 means that there's more likelihood that it'll change in the future.
 
 Another weakness in the Hooks interface is that with command hooks
 (like sDistHook) it's tempting to add parameters to them; basically
 the stuff that we compute between the preSDist and sDist hook.  I
 removed such params and have their values computed elsewhere.
 
 Cabal hackers, please avoid adding parameters to these command hooks
 if at all possible in order to keep the interface steady.  If you need
 to compute a value to pass to these functions, compute it in the
 function and / or make it available as a function that someone
 crafting hooks can use as well, or consider whether it belongs in one
 of the parameters already being passed to the hooks,
 PackageDescription, LocalBuildInfo, UserHooks, Flags.
 
] 
[make the order of params to cmd hooks consistent
ijones@syntaxpolice.org**20060116055858] 
[remove some flags from sdist, some cleanup
ijones@syntaxpolice.org**20060116053818] 
[clarifying and making flags types consistent
ijones@syntaxpolice.org**20060116035033] 
[changing tuple types to records w/ fields
ijones@syntaxpolice.org**20060115234317] 
[moving TODO stuff to wiki
ijones@syntaxpolice.org**20060115234303] 
[fix version number in fptools makefile to match .cabal file
ijones@syntaxpolice.org**20060201183331] 
[Add extraGHCiLibraries to the InstalledPackageInfo and extend the parser.
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060131163640] 
[re-add the GNUmakefiles
Simon Marlow <simonmar@microsoft.com>*-20060123115236
 These are now safe after we added "-f Makefile" to the make args when invoked
 from the GHC build system.  This repo should now be useable as the main
 Cabal repo.
] 
[re-add the GNUmakefiles
Simon Marlow <simonmar@microsoft.com>**20060123115236
 These are now safe after we added "-f Makefile" to the make args when invoked
 from the GHC build system.  This repo should now be useable as the main
 Cabal repo.
] 
[TAG checkpoint
simonmar@microsoft.com**20060113152542] 
[Tranform info an fptools-ready package
Simon Marlow <simonmar@microsoft.com>**20060113145826
 The fptools version of this package needs different Makefiles, so add
 them and remove the original GNUmakefiles.
] 
[cleaned up some FIX (HUGS)
ijones@syntaxpolice.org**20060109053928] 
[from ross: Hugs: include the auto-generated module when installing an executable.
ijones@syntaxpolice.org**20060109052736] 
[cleaning up TODO
ijones@syntaxpolice.org**20060109052434] 
[add absolutePath and prefixRelPath to the list of exported functions in LocalBuildInfo
Andres Loeh <mail@andres-loeh.de>**20051124111802] 
[Add language extension GeneralizedNewtypeDeriving. See GHC's docs 7.4.12
Josef Svenningsson <josef.svenningsson@gmail.com>**20051212015737] 
[moving code around. comments
ijones@syntaxpolice.org**20051210235740] 
[tweaks to make --with-runghc and --with-runhugs work in cabal-install.
ijones@syntaxpolice.org**20051210235020] 
[mostly patches from Krasimir
ijones@syntaxpolice.org**20051210223859
  * Isaac added a warning to haddock for Hooks
  
 Krasimir:
 
   the "data-files" field may contain filenames with directories. We should create
   the missing directories at install place first
 
   Use removeDirectoryRecursive instead of system "rm ..." because the former is
   more platform idependent.
 
   The sdist command was broken because it is using smartCopySources. The later
   was using the hs-source-dirs for lookup but at the target place the files were
   created without the corresponding source sub directories. Now it have
   boolean parameter which specifies whether to preserve to directory structure.
 
] 
[Sven Panne: For the 1000th time: Fixed DocBook XML. Please, please do a "make validate"
ijones@syntaxpolice.org**20051205191854] 
[docs for cabal-version field
ijones@syntaxpolice.org**20051205021608] 
[check for correct cabal version during parsing
ijones@syntaxpolice.org**20051205014553
 
 I throw a parse error if this package has the wrong cabal version.
 This is so that the user can get this error before getting an error
 for eg. an unknown field.  Also check it in the sanity checker.
 
 I just hard-code the cabal version in the source, it would be nicer if
 we got it from the .cabal file.  cabal could include the version in
 the cpp flags, but cabal's setup file needs to build without cabal, so
 that wouldn't actually work for us ahem.
 
] 
[adding cabal-version flag. nothing is done with it for now.
ijones@syntaxpolice.org**20051205011708] 
[tweak cabal-install stuff
ijones@syntaxpolice.org**20051204001852] 
[some code to build cabal-install
ijones@syntaxpolice.org**20051128193437] 
[ross fixes for some flags
ijones@syntaxpolice.org**20051127043946] 
[ross's documentation for new --user behavior
ijones@syntaxpolice.org**20051127043816] 
[Adding CabalInstall; an experimental tool to install cabal packages in a single step.
ijones@syntaxpolice.org**20051127043257] 
[modified install --user behavior to include configure --user
ijones@syntaxpolice.org**20051115060943
 
 If the user configures with --user, that means that they are willing
 to satisfy dependencies from the user databaes.  If that's the case,
 then it really only makes sense to install the package as --user as
 well, since if user A installs configures / builds the package with
 --user, then installs it as root, user B may attempt to use the
 package and not be able to fulfill the dependencies.  Therefore, if
 the package is configured as --user, then we also will call ghc-pkg
 with --user.
 
 Of course, in this case:
 
 ./setup configure --user
 ./setup install --global
 
 Cabal will accept the user's instructions to install this globally,
 however ill conceived.  This changes the type of the install hook,
 btw, since we now need to be able to tell the difference between
 passing the --global flag and not passing any flag.
 
 Any objections to this change?
] 
[rolled back patch for hide pragma
ijones@syntaxpolice.org**20051115054200] 
[new comment in FilePath
ijones@syntaxpolice.org**20051115054041] 
[Added hookedPrograms to user hooks.
ijones@syntaxpolice.org**20051114015910
 
 This allows users to add programs to the list of programs that
 configure looks for.  If a user adds a program with this hook,
 configure will try to find it, and arguments will be added to
 configure for this program.
 
 See test/withHooks for an example.
] 
[Einar Karttunen put together support for haddock-izing hidden modules.
ijones@syntaxpolice.org**20051113234328
 
 I added a test case.  I'm a bit concerned about munging the modules by
 adding a 'hidden' pragma here, but it doesn't seem to cause a problem.
 
] 
[Make haddock support documentation in hidden modules.
Einar Karttunen <ekarttun@cs.helsinki.fi>**20050714123932] 
[cleaned up test suite for some new behaviors.
ijones@syntaxpolice.org**20051112221310
 
 Have an unknown error while building "execWithC" for Hugs:
 
 Cases: 11  Tried: 0  Errors: 0  Failures: 0Setup.lhs: Warning: No license-file field.
 Setup.lhs: Warning: No license-file field.
 dist/build/programs/tt/Main.c: In function 'hugsprim_foo_0':
 dist/build/programs/tt/Main.c:16: warning: implicit declaration of function 'foo'
 runhugs: Error occurred
 ERROR ",tmp/lib/hugs/programs/tt/Main.hs" - Error while importing DLL "/home/ijones/usr/src/haskell/fptools/libraries/Cabal/tests/exeWithC/,tmp/lib/hugs/programs/tt/Main.so":
 /home/ijones/usr/src/haskell/fptools/libraries/Cabal/tests/exeWithC/,tmp/lib/hugs/programs/tt/Main.so: unexpected reloc type 0x09
 
] 
[by Evgeny Chukreev: This patch fixes case when buildinfo file has more than one executable block. Without this patch all executables go to void.
ijones@syntaxpolice.org**20051112210018] 
[Krasimir: Warning message for absolute bindir/libdir/datadir/libexecdir
ijones@syntaxpolice.org**20051112204933] 
[cvs pulls from krasimir and ross
ijones@syntaxpolice.org**20051031200149
 * Ross
   ghcconfig.h is not needed for GHC >= 6.4
   update library links for haddock 0.7 (in Cabal.xml)
 
 * Krasimir
   * The sentence:
   
     An error will be returned from <literal>setup configure</literal> if
     this is not the case.
   
   is replaced with:
   
     If this is not the case then the compiled executable will have baked
     in all absolute paths.
 
   * The previous implementation for Paths_<pkgid>.hs building was broken on Windows.
   The prefixRel function was expecting that all bindir/libdir/datadir/... paths
   are $prefix relative but the corresponding functions (mkBinDir/mkLibDir/...)
   was returning absolute paths with expanded $path variable. This commit fixes
   the bug and also:
   
      * In LocalBuildInfo are added mkLibDirRel/mkBinDirRel/... functions. They
   return the corresponding but without the $prefix part. When the path isn't
   prefix relative then they return Nothing
      * The restriction that all paths on Windows are $prefix relative is removed.
      * The code in Paths_<pkgid>.hs can contain both absolute and prefix relative
   paths. When the package is configured only with $prefix relative paths then
   the generated executable will be prefix independent and can be moved from one
   directory to another.
 
   * Paths_<pkg>.hs was generated before each build and this was causing GHC to
   rebuild the package each time. Now it is generated only when it is older than
   .setup-config
 
   * Change the foreign import syntax to use the standard FFI syntax
 
   * Two changes to HADDOCK support:
   
       - In the last version only the exposed modules were passed to haddock.
   In order to generate proper documentation all modules should be processed
   from haddock but the non exposed modules should be hiden.
       - Added support for executable packages in Haddock.
 
 
] 
[moving TODO items to bug tracker
ijones@syntaxpolice.org**20051031200005] 
[importing haskell98 where appropriate
ijones@syntaxpolice.org**20051025051212] 
[docs for Debian release
ijones@syntaxpolice.org**20051025051156] 
[added version number to unregister command
ijones@syntaxpolice.org**20051025051109] 
[cvs pull from krasimir & simon
ijones@syntaxpolice.org**20051021163139
   from Neil Mitchell (fixed by Krasimir):
   
   On Windows, the path can be path;"c:\ghc\ghc-6.4\bin";restofpath, and
   thats still a valid path with GHC in it. Cabal doesn't find ghc with
   the quotes in, removing them does find it though.
 
 SimonMar:
   Add Distribution.Program to exposed-modules
 
] 
[removed some tabs
ijones@syntaxpolice.org**20051020051549] 
[wibble
ijones@syntaxpolice.org**20051020050722] 
[REMOVED util DEPENDENCY.  This will break build for ghc 6.2 :(
ijones@syntaxpolice.org**20051020050608] 
[cvs pull from malcolm & krasimir
ijones@syntaxpolice.org**20051020050247
 
 krasimir    2005/10/18 09:45:52 PDT (Configure):
   On Windows datadir should be prefix relative only for executables
 
 malcolm     2005/10/18 02:36:43 PDT (Utils):
   Massage import of System.Directory for nhc98.
 
] 
[cleaned up configure to map over known programs instead of looking for them individually.
ijones@syntaxpolice.org**20051016045919] 
[Added Distribution.Program support for ranlib and ar.
ijones@syntaxpolice.org**20051016043350
 
 Cleaned up calls to these programs so that they're detected at
 configure time, and both have --with-ranlib and --ranlib-args flags
 (thanks to Distribution.Program support).
 
] 
[cleaned up test suite
ijones@syntaxpolice.org**20051016035701] 
[fixed conflicts w/ merged changes
ijones@syntaxpolice.org**20051016032618] 
[lots of cvs pulls from Ross, Malcolm, Simon, & Simon
ijones@syntaxpolice.org**20051016030620
   No reason we shouldn't have Ord on PackageIdentifiers
 
   Various changes committed in one bunch:
   
    - bindir/libdir/datadir/libexecdir support as discussed on
      librarie@haskell.org.  This should be considered fairly
      experimental.  Full documentation in the manual.
   
    - A module Paths_<pkgname> is autogenerated, you should be able
      to just import this.  (I haven't made this work with Hugs yet, though).
      I suspect I might need to make sure it's available to 'setup haddock'
      too.  Also, I haven't tested this on Windows yet (TODO).
   
    - All installation-paths-related functions are now provided by
      Distribution.Simple.LocalBuildInfo
   
    - some cleaning up of Distribution.Simple.Build as regards GHC support.
   
    - "setup copy" now takes a --destdir argument instead of --copy-prefix
      (the latter is still accepted for compatibility).
   
      Note for autoconf/make users: this means that your Makefile now
      needs to implement a "copy" target, see the manual for details.
   
    - New types: Distribution.Setup.CopyFlags (was previously just a
      pair), and CopyDest (was previously Maybe FilePath).
   
    - Hooks: the post hooks all take a PackageDescription argument now.
      There seemed no reason not to do this, and sometimes it's useful.
 
 
   Remove literal tabs in strings.  Not Haskell'98.
 
   harmonize running of ./confugure between defaultUserHooks and
   Distribution.Make:
   
   * pass through the same set of flags, plus unrecognized options
   
   * select the default compiler before processing options
 
   Fixes for Windows
 
   added a simple-minded data-files field.  Also added getDataFileName to
   Paths_<pkg> to save client code from worrying about path separators.
 
 
] 
[cvs pull from ross
ijones@syntaxpolice.org**20051016030450] 
[basic pfesetup support for args and with and such
ijones@syntaxpolice.org**20051009130618] 
[made generic --with-foo functionality
ijones@syntaxpolice.org**20051009095930] 
[make --with-haddock actually work
ijones@syntaxpolice.org**20051009094454
 ** did this ever work before?
 ** cleaned up some comments
 ** made rawSystemVerbose more robust. Check for file existing, check
 for permissions.  Before it was just failing silently.
 
] 
[basic working version of --haddock-args
ijones@syntaxpolice.org**20051009090401] 
[finished threading configuration stuff to local build info
ijones@syntaxpolice.org**20051001132937] 
[generalizing haddock based on Program type
ijones@syntaxpolice.org**20050930124055] 
[adding Program abstraction to cabal
ijones@syntaxpolice.org**20050930115803] 
[added verbosity options
ijones@syntaxpolice.org**20050928064831] 
[bump version number post release
ijones@syntaxpolice.org**20050913052329] 
[TAG 1.1.3
ijones@syntaxpolice.org**20050913052249] 
[fixes for haddock for 1.1.3
ijones@syntaxpolice.org**20050913050355] 
[prepare for 1.1.3 release
ijones@syntaxpolice.org**20050913042320] 
[patch from krasimir for escaping spaces
ijones@syntaxpolice.org**20050913040001
 
 BUGFIX: System.Cmd.system was used here but the executable path may
 have spaces.  The right way is to use runInteractiveProcess but it isn't
 supported from HUGS.  It is easier for a while to quote the path.
 
 
] 
[from ross: update for sdist
ijones@syntaxpolice.org**20050913035921] 
[First stab at command-hooks
ijones@syntaxpolice.org**20050908061436
 
 That is, hooks to override basic behavior of configure, install, etc.
 Basic use case for this is in over-riding the "install" behavior for
 cgi-bin tools.
 
 
 In addition to the existing hooks, that gives us:
 
 
      confHook :: PackageDescription -> ConfigFlags -> IO LocalBuildInfo,
      buildHook :: PackageDescription
                -> LocalBuildInfo
                -> Int                 -- verbose
                -> [ PPSuffixHandler ]
                -> IO (),
      cleanHook :: PackageDescription -> LocalBuildInfo -> Int -> [PPSuffixHandler] -> IO (),
      copyHook :: PackageDescription
               -> LocalBuildInfo
               -> (Maybe FilePath,Int) -- ^install-prefix, verbose
               -> IO (),
      instHook :: PackageDescription
               -> LocalBuildInfo
               -> Int -- verbose
               -> Bool -- user install?
               -> IO (),
      sDistHook :: FilePath -- ^build prefix (temp dir)
                -> FilePath -- ^TargetPrefix
                -> Int      -- ^verbose
                -> Bool     -- ^snapshot
                -> [PPSuffixHandler]  -- ^ extra preprocessors (includes suffixes)
                -> PackageDescription
                -> IO (),
      regHook :: PackageDescription -> LocalBuildInfo -> RegisterFlags -> IO (),
      unregHook :: PackageDescription -> LocalBuildInfo -> RegisterFlags -> IO (),
      haddockHook :: PackageDescription -> LocalBuildInfo -> Int -> [PPSuffixHandler] -> IO (),
      pfeHook :: PackageDescription -> LocalBuildInfo -> Int -> [PPSuffixHandler] -> IO ()
 
 I don't really know if these types are good, but they are the types
 needed by the "default" hooks which do the guts of the
 Distribution.Simple work.  I'm not happy with the handling of
 LocalBuildInfo which you can't avoid generating at this point, because
 all the post-hooks need it.
 
] 
[removed nub for ghc-options, which was causing flags like -package foo -package bar to not work.
ijones@syntaxpolice.org**20050906020709] 
[resync w/ cvs where Ross beat me to the punch on the GLASGOW_HASKELL thing
ijones@syntaxpolice.org**20050905190306] 
[added -D__GLASGOW_HASKELL__ for hcDefines, probably needed by cpp
ijones@syntaxpolice.org**20050905185543] 
[Use .tar.gz for source package extension and tweak sdist info message.
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20050824224621] 
[ross fixed the portability tags
ijones@syntaxpolice.org**20050825034019] 
[cvs pull from Ross; invoke configure w/o sh
ijones@syntaxpolice.org**20050825033938
   Invoke the configure program (if present) directly instead of using sh,
   except under MinGW, where #! won't work.  (Problem noted by Frederik Eaton)
] 
[so much TODO
ijones@syntaxpolice.org**20050825033827] 
[fixed bug for odirs for executables in ghc > 6.4.1.  UNTESTED.
ijones@syntaxpolice.org**20050816064252] 
[fixed test suite, added backward-compat checker for other-files
ijones@syntaxpolice.org**20050816051712] 
[cvs commit from ross.
ijones@syntaxpolice.org**20050816043559
   * rename other-files as extra-source-files
   
   * new field extra-tmp-files
] 
[bugfix for linking profiling + ffi stub files
ijones@syntaxpolice.org**20050811222713] 
[more TODO
ijones@syntaxpolice.org**20050811215457] 
[from ross
ijones@syntaxpolice.org**20050809012618
   buildGHC: reset search path before adding hs-source-dirs, so that these
   are the only directories GHC searches.
] 
[ross fixed this typo
ijones@syntaxpolice.org**20050809012601] 
[cvs commit from ross
ijones@syntaxpolice.org**20050809012523
   installHugs: quote the script name to protect spaces, and create .bat
   files for executables under Windows.
] 
[various TODO updates
ijones@syntaxpolice.org**20050809012319] 
[Always invoke the ld.exe that is in $ghc-bin\..\gcc-lib on Windows, because ld is probably not in the path on Windows.
brianlsmith@gmail.com**20050807183538] 
[add docs to todo
ijones@syntaxpolice.org**20050730200638] 
[Fixing install bug(GHCi lib overwrites .a archive)
der_eq@freenet.de**20050727105838] 
[Move building of GHCi .o libs to the build phase rather than register phase.
Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20050726010738] 
[tweak test suite
ijones@syntaxpolice.org**20050730194026] 
[lots of cvs changes from Ross
ijones@syntaxpolice.org**20050730192318
   tweak SHGetFolderPath
   preprocess: Hugs+MinGW: remove special case
   test *_HOST_OS (as well as *_TARGET_OS, which is there for old GHC's)
   take care of string literals while stripping comments
   rearrange so that we print "Compiling FFI stubs" at most once
   only run ffihugs on Main module if required
   add comment about older Windows versions
   Hugs only: avoid SHGetFolderPath for now
   convert input file paths to platform form (from Brian Smith)
   convert paths to native form at entry
   rename --builddir as --scratchdir to avoid clash with autoconf --build flag.
 
   doc: consolidate descriptions of preprocessors
] 
[wibbles
ijones@syntaxpolice.org**20050730191243] 
[ross paterson: simplify consruction of pkg tool name
ijones@syntaxpolice.org**20050719062208] 
[more changes relating to src move
ijones@syntaxpolice.org**20050719062132] 
[moved stuff back out of src tree
ijones@syntaxpolice.org**20050719061818] 
[tweakin  the changelog
ijones@syntaxpolice.org**20050718051804] 
[tweak GHC version.
ijones@syntaxpolice.org**20050718051024] 
[tweak to Configure for windows. removed DefaultSetup since it breaks windows cabal 1.0 installations.
ijones@syntaxpolice.org**20050718044752] 
[updated todos
ijones@syntaxpolice.org**20050718044731] 
[makefile tweak
ijones@syntaxpolice.org**20050716234643] 
[moved all code to a src subdirectory. a couple of test cases fail, but no huge deal.
ijones@syntaxpolice.org**20050716234111] 
[updated README with suggestions from simon and some clarification
ijones@syntaxpolice.org**20050716234011] 
[slight makefile tweaks
ijones@syntaxpolice.org**20050716231933] 
[simonMar: ppCpp': Use GHC instead of cpphs if the latter is not available
ijones@syntaxpolice.org**20050715154427] 
[simonMar: the recent -odir fix in GHC means the workaround in Cabal has to be (selectively) disabled.
ijones@syntaxpolice.org**20050715154359] 
[updated these docs after some feedback
ijones@syntaxpolice.org**20050715153952] 
[bump version number post-relesae
ijones@syntaxpolice.org**20050714064420] 
[TAG 1.1.1
ijones@syntaxpolice.org**20050714064046] 
[more tweaks
ijones@syntaxpolice.org**20050714063647] 
[more release number tweaks. decided to make RC1's official versin number 1.1.1
ijones@syntaxpolice.org**20050714062903] 
[tweak version number for release. makefile release target
ijones@syntaxpolice.org**20050714061742] 
[RC1 tweaks to changelog and release notes
ijones@syntaxpolice.org**20050714061413] 
[preprocessors, setup test
ijones@syntaxpolice.org**20050714060331] 
[TAG 1.0.0
Isaac Jones <ijones@syntaxpolice.org>**20050714043000] 
[added readme info about installing over new versions of cabal
ijones@syntaxpolice.org**20050706043521] 
[tweaks from ross
ijones@syntaxpolice.org**20050706035907
   export tweak to Setup.hs
   avoid warning in PreProcess.hs
   rearrange handling of --prefix.
 
] 
[updated test cases
ijones@syntaxpolice.org**20050706035653] 
[added dist.compiler, from ross
ijones@syntaxpolice.org**20050628154025] 
[prof-options -> ghc-prof-options
ijones@syntaxpolice.org**20050628063036] 
[wibble 2
ijones@syntaxpolice.org**20050628060925] 
[wibble
ijones@syntaxpolice.org**20050628060756] 
[clean up conflicts, temp fix for test cases
ijones@syntaxpolice.org**20050628055527] 
[from ross, added language.haskell.extension
ijones@syntaxpolice.org**20050628052426] 
[lots of changes, mostly from ross
ijones@syntaxpolice.org**20050628051544
   documentation updates from ross paterson
   - more accurate specification of package names
   - hs-source-dir -> hs-source-dirs in examples
   - setup clean removes a bit more
   - rearrange description of fields
 
   Version.hs: allow more spaces in version constraints
 
   Install.hs: add the exe extension when installing executables (reported by Brian Smith)
  
   test directory: add explicit dependencies on base
 
   Misc:
   Prefix error messages and warnings with the program name, and send them
   to stderr.  (Also moved some stuff from Distribution.Simple.Utils to
   Distribution.Simple.Build to avoid circular dependencies.)
 
   refactoring only: split Compiler type from Distribution.Setup,
   to reduce dependencies.
 
   Exclude DefaultSetup.lhs from the GHC build
 
   add JHC to the Compiler type
 
   refactored argument processing
 
   setup sdist --snapshot: append YYYYMMDD to the version for the bundle
 
   improved error messages (from Brian Smith):
   
   * attach source locations to messages when available
   
   * change some remaining error's do die.
 
   refactor defaultMainWorker
 
   split Distribution.Extension between Language.Haskell.Extension (just
   the type, which will also be useful when haskell-src-exts is merged)
   and Distribution.Compiler (mappings to compiler options).
 
   add Language.Haskell.Extension
 
   Simon marlow:  update defaults for prefix/libdir/bindir
 
 
] 
[s/rawSystemPath/rawSystemVerbose/ typo.
lemmih@gmail.com**20050609164509] 
[Added --with-greencard.
lemmih@gmail.com**20050530120830] 
[Make HUnit happy with the new profiling support.
lemmih@gmail.com**20050604191435] 
[Support for building libraries and executables with profiling enabled.
lemmih@gmail.com**20050527173144] 
[Previous prof-libraries are removed before building the new one.
lemmih@gmail.com**20050530150253] 
[Fixed bug which caused Cabal to guess the wrong HC-PKG path.
lemmih@gmail.com**20050530121044] 
[Using 'reads' instead of 'read' in Simple.Configure.getPersistBuildConfig
lemmih@gmail.com**20050530120947] 
[comments and small docs
ijones@syntaxpolice.org**20050604183800] 
[added the cabal-setup executable which is defaultMain
ijones@syntaxpolice.org**20050517060532] 
[from Krasimir: -fhide-all-packages should be -hide-all-packages
ijones@syntaxpolice.org**20050516165147] 
[fixed bug: executable build location had changed
ijones@syntaxpolice.org**20050515074133
 Since we don't have hs-source-dir anymore, the location for building
 executables had changed.  However, install was still looking in the
 old location.  Fixed this.
 
 Fixed another bug where hs-source-dir for executables was [".","."]
 where this duplication caused a problem in locating the Main module.
 Not sure quite where this came from, but now for combining fields, we
 always nub, so this should be a robust fix.
 
 Fixed build failures in testing code.
] 
[hs-source-dirs, other-files
ijones@syntaxpolice.org**20050515061253
 Krasimir:
   added hs-source-dirs (ross added docs)
 
   Add other-files field to PackageDescription. This is a list files
   which belong to the package but aren't compiled. These files are
   copied and packaged from sdist command.
 
 Ross:
   fixes to buildHugs and sdist after hs-source-dirs changes.
   
   Also simplified smartCopySources a bit.
 
   document sdist and new other-files field.
 
] 
[adding -fhide-all-packages for ghc > 6.4
ijones@syntaxpolice.org**20050512043302] 
[updating changelog and release notes for release
ijones@syntaxpolice.org**20050512043237] 
[untabify cabal file
ijones@syntaxpolice.org**20050510051920] 
[resolved confligs with hackage version
ijones@syntaxpolice.org**20050510051615] 
[cabal version and test case for ghc 6.4 recursive mods
ijones@syntaxpolice.org**20050510045613] 
[Cabal-get is not using Distribution.GetOps anymore.
lemmih@gmail.com**20050421211447] 
[Various changed needed by hackage/cabal-get.
lemmih@gmail.com**20050421013739
 
 * Exporting Distribution.Compat.FilePath and Distribution.GetOpt.
   I'm using GetOpt from Cabal 'cause I fixed a bug in it which I haven't commited to CVS yet.
 In Distribution.Simple.Config:
 * Made 'getInstalledPackagesAux' and 'configCompilerAux' which aren't using ConfigFlags
   since cabal-get defines it own ConfigFlags.
 * Changed 'configCompilerVersion' to take a verbose argument instead of a ConfigFlags.
 * Exported those functions.
 
] 
[Now exporting getInstalledPackages from Distribution.Simple.Configure since it's needed by cabal-get.
lemmih@gmail.com**20050418173622] 
[CVS pull from Simon Marlow:
ijones@syntaxpolice.org**20050510043142
   getInstalledPackages: ignore lines beginning with "Creating", so that
   we can understand this ghc-pkg output from 6.4:
   
   Creating user package database in /home/simonmar/.ghc/i386-linux-6.4/package.conf
   /home/simonmar/fp/lib/i386-unknown-linux/ghc-6.4/package.conf:
       rts-1.0, base-1.0, haskell98-1.0, template-haskell-1.0, unix-1.0,
       Cabal-1.0, parsec-1.0, haskell-src-1.0, network-1.0,
       QuickCheck-1.0, HUnit-1.1, mtl-1.0, fgl-5.2, X11-1.1, HGL-3.1,
       OpenGL-2.0, GLUT-2.0, stm-1.0, readline-1.0, (lang-1.0),
       (concurrent-1.0), (posix-1.0), (util-1.0), (data-1.0), (text-1.0),
       (net-1.0), (hssource-1.0)
   /home/simonmar/.ghc/i386-linux-6.4/package.conf:
] 
[adding some haddock
ijones@syntaxpolice.org**20050508215248] 
[CVS pull from Ross
ijones@syntaxpolice.org**20050508212926
   add with-c2hs option to configure, pass cpp options to c2hs, plus a
   little refactoring.
   
   This involves interface changes: changed type of ppC2hs, extra fields
   in ConfigFlags and LocalBuildInfo.
] 
[renamed getInstalledPackages{,Aux}
ijones@syntaxpolice.org**20050503171755] 
[implemented ranlib execution during installation
ijones@syntaxpolice.org**20050502050154
 This is necessary in Mac OS X and on Solaris.
 
 It is possible that this might cause problems for systems that use
 setup copy to build and then use cp to install files, since the
 library modification time will change.  I think this is only the case
 on Mac OS X and Solaris.
 
] 
[working on changelogs; bumped version number
ijones@syntaxpolice.org**20050502042039] 
[tweaks to lemmih's patch to rename functions
ijones@syntaxpolice.org**20050502031647] 
[Changes needed by cabal-get.
lemmih@gmail.com**20050426230537
 
 [from Distribution.Simple.Configure]
  * Exporting getInstalledPackagesAux and configCompilerAux.
  * Refactored ConfigFlags out of configCompilerAux, findCompiler,
    configCompilerVersion and guessPkgToolFromHcPath.
  * Changed the verbosity of getInstalledPackages, findCompiler,
    configCompilerVersion and guessPkgToolFromHcPath.
 
] 
[fixed bug in c2hs preprocessor
ijones@syntaxpolice.org**20050502024024] 
[formatting changes and untabify
ijones@syntaxpolice.org**20050418052517] 
[Added pattern guards as a language extension
Josef Svenningsson <josef.svenningsson@gmail.com>**20050416204612] 
[cleanup from Ross. no change in behavior
ijones@syntaxpolice.org**20050416200553] 
[implemented handling of _stub.{c,h,o} files
ijones@syntaxpolice.org**20050416195824
 Including a test case from J�r�my Bobbio.
 
 Previously, we weren't linking in _stub.o files to the library, though
 they are produced by the build.  Now we link them in.  I assume that
 ghc --make does the right thing for executables, haven't tested this.
 
 Also implemented ./setup clean for getting rid of Foo_stub.{h,c} files
 for both executables and libraries.  These files aren't put into the
 dist/build directory (can they be?) so I had to add a bit of extra
 logic here.
 
] 
[./setup clean now removes dist/doc, which is produced by ./setup haddock
ijones@syntaxpolice.org**20050416013332] 
[export matchesDescFile at the request of Lemmih for Hackage
ijones@syntaxpolice.org**20050416013302] 
[Fixed bug in Distribution.GetOpt
lemmih@gmail.com**20050412015302
 The bug caused unknown long opts to get stripped of their argument (--test=arg => --test).
 
] 
[added another missing source file
ijones@syntaxpolice.org**20050415180927] 
[another missing source file
ijones@syntaxpolice.org**20050415180630] 
[added missing source file
ijones@syntaxpolice.org**20050415180443] 
[added missing test case that was in my source tree
ijones@syntaxpolice.org**20050415180110] 
[first implementation of copy for hi-boot files (ghc 6.) could use more testing
ijones@syntaxpolice.org**20050415175000] 
[added test case for mutually recursive modules
ijones@syntaxpolice.org**20050415174432] 
[fail on test returning error code, add test cases
ijones@syntaxpolice.org**20050413000307] 
[added setup test command, not deeply tested
ijones@syntaxpolice.org**20050412235706] 
[haddock markup fixes
ijones@syntaxpolice.org**20050414145004] 
[cvs pull: added LICENSE file
ijones@syntaxpolice.org**20050414144905] 
[added strip flag. probably from CVS
ijones@syntaxpolice.org**20050414144841] 
[cvs patch from Wolfgang Thaller
ijones@syntaxpolice.org**20050414144748
   Fix handling of end-of-options markers (--).
   getOpt would correctly return the non-options after the marker, but it
   would return errors for things after the marker that looked like options.
 
] 
[little HUnit test wibble to get out of way of instaled package
ijones@syntaxpolice.org**20050320231118] 
[fixed expected errors
ijones@syntaxpolice.org**20050320230707] 
[wibble last commit, only if genScript true
ijones@syntaxpolice.org**20050320230634] 
[fix bug in ghc > 6.3 where it wasn't reading from stdin :(
ijones@syntaxpolice.org**20050320213348] 
[Fixed bug in 'smartCopySources'
lemmih@gmail.com**20050317012645
 
 smartCopySources dropped the prefix of source paths with length+drop. This fails when the prefix is eg. ".".
 
] 
[fixes to parser from krasimir, fixes to sdist from ross
ijones@syntaxpolice.org**20050317180215
 
 Krasimir says:
   Small fixes in the parser/printer. When there is a package description with
   executables only then the old implementation of pretty printer was written
   to print empty "exposed-modules" field while there isn`t any library. After
   that the parser will generate PackageDescription with (Just emptyLibrary)
   instead of Nothing. Now exposed-modules field is printed only if
   library /= Nothing
 
 Ross says:
   In smartCopySources, don't try to strip the prefix if it was ".",
   because joinFileName "." x == x
   (fixes bug reported by Iavor Diatchki)
 
   Improve sdist a bit: copy files named in main-is, license-file and c-sources.
   Also supply a default Setup.hs if none is present.
   
   This will get it working for only the simplest of packages.  It omits
   header files, configure stuff and files named in the buildinfo file.
   To do it properly, we'd need a field in the package description listing
   extra files to copy into a source distribution.
 
] 
[added / fixed haddock code
ijones@syntaxpolice.org**20050315070527] 
[TAG 0.6
ijones@syntaxpolice.org**20050312213231] 
[doc fixes
ijones@syntaxpolice.org**20050312213121] 
[cvs pull
ijones@syntaxpolice.org**20050226201343
 some haddock fixes
 updates to the manual (from ross):
   make copyright, maintainer and synopsis optional again.
   document required fields, plus a few assorted tweaks.
] 
[implemented check for required fields
ijones@syntaxpolice.org**20050222032824
 As described in message to libraries@, except that because of the way
 the parser is structured, I can't check for an altogether missing
 license.  Instead I warn if they say AllRightsReserved.
 
] 
[cvs pull
ijones@syntaxpolice.org**20050222015737
 krasimir: {un}register.bat
 ross: small doc fixes, and {un}register.bat docs
       added verbosity to defaultUserHooks
 
] 
[bumping versions back to 0.6 post-release
ijones@syntaxpolice.org**20050220003929] 
[TAG 0.5
ijones@syntaxpolice.org**20050220003825] 
[lintian complains about 'source'
ijones@syntaxpolice.org**20050219215336] 
[source register.sh
ijones@syntaxpolice.org**20050219214909] 
[moved record to right place
ijones@syntaxpolice.org**20050219214506] 
[fixed cp -r
ijones@syntaxpolice.org**20050219214230] 
[prepare for Debian release 0.5
ijones@syntaxpolice.org**20050219213701] 
[added simple script for running tests w/ ghc (tests hugs also)
ijones@syntaxpolice.org**20050219193220] 
[cleaned up test cases
ijones@syntaxpolice.org**20050219192510] 
[CVS pulls from ross and krasimir
ijones@syntaxpolice.org**20050219182311
   Clean up parsing & pretty-printing.
   
   Most list fields now have consistent syntax:
   
     - commas are optional
     - each element of the list is either
   	- a sequence of one or more non-space non-comma characters
   	- a quoted string in Haskell 98 lexical syntax
   
   The build-depends field still requires commas, because the elements
   can contain whitespace.
   
   I merged fieldGet/fieldShow in StanzaField into a single field for
   simplicity.
 
   display some messages when verbosity > 0
   extraLibs and extraLibDirs were ignored when building for GHC
 
   Rename package description fields as in InstalledPackageInfo:
   
   	options-ghc -> ghc-options
   	options-hugs -> hugs-options
   	options-nhc -> nhc-options
   	extra-libs -> extra-libraries
 
   document syntax changes.
   
   Perhaps executable should be a token instead of freeform?
 
   installHugs: treat Main the same as other modules
 
] 
[cvs pull from Simon Marlow
ijones@syntaxpolice.org**20050218175956
   Clean up parsing & pretty-printing.
   
   Most list fields now have consistent syntax:
   
     - commas are optional
     - each element of the list is either
   	- a sequence of one or more non-space non-comma characters
   	- a quoted string in Haskell 98 lexical syntax
   
   The build-depends field still requires commas, because the elements
   can contain whitespace.
   
   I merged fieldGet/fieldShow in StanzaField into a single field for
   simplicity.
 
] 
[fixed c-sources executables for GHC only
ijones@syntaxpolice.org**20050218084246] 
[fixed redundancy in A test case
ijones@syntaxpolice.org**20050216175538] 
[updated TODO
ijones@syntaxpolice.org**20050216175532] 
[chmod +x reg scripts
ijones@syntaxpolice.org**20050216080453] 
[more testing and testing tweaks
ijones@syntaxpolice.org**20050216074224] 
[added --gen-script to register and unregister
ijones@syntaxpolice.org**20050216063741] 
[bump version number before release
ijones@syntaxpolice.org**20050216063728] 
[added tests for reg scripts; some cleanup
ijones@syntaxpolice.org**20050215163918] 
[basic self-contained registration script. still uses -v11
ijones@syntaxpolice.org**20050215162450] 
[basic emit registration script when verbose > 10
ijones@syntaxpolice.org**20050215155109] 
[fixed ghc-pkg versioned depends bug
ijones@syntaxpolice.org**20050215154350
 Fixed bug for ghc < 6.3 where call to ghc-pkg during configure step
 was unconditional.  Now only call ghc-pkg to get versioned
 dependencies if >= 6.3. revived buildDepToDep as setDepByVersion,
 which sets the exact version number if supplied by the package
 description in any case where we can't query the HC-pkg system.
 
 minor fix to withHooks test for hugs
] 
[cvs pull from ross and simonMar
ijones@syntaxpolice.org**20050215151319
   Configure dependencies properly, by querying hc-pkg for the package list.
 
   We should pass the full package id (including version) to ghc now that
   we know it, not just the package name.
 
   buildHugs: use ppCpp (calling cpphs) instead of invoking cpp directly.
 
   Also removed the unused exeDependencies.
 
   Add --user flag to configure
 
   Doc setup configure --user/--global
 
   Minor doc tweaks
 
   Hugs only: use binary handles for copyFile
] 
[some TODOs
ijones@syntaxpolice.org**20050215150914] 
[Refactored test suite and ported to (CVS) Hugs!
ijones@syntaxpolice.org**20050214070059
 Found the following issues:
 ** install --user for hugs doesn't work at all
 
 ** install for hugs doesn't know the trick of checking in the library
    directory for other-modules while building an executable
 
 ** copyFile for hugs doesn't work on binaries?  I get an error about
    encodings during copy step when cross-installing GHC libraries with
    Hugs build.  This may mask other problems since its hard to test
    cross-installing.
 
] 
[refactor wash2hs and withHooks tests
ijones@syntaxpolice.org**20050214044428] 
[starting to refactor test suite
ijones@syntaxpolice.org**20050214042329] 
[cleaned up some types
ijones@syntaxpolice.org**20050214012913] 
[rawSystemEmit
ijones@syntaxpolice.org**20050214012725] 
[from ross:  misc tweaks, some stuff on make, and removed the users section.
ijones@syntaxpolice.org**20050214012235] 
[cvs pull: fix copy-install for hugs
ijones@syntaxpolice.org**20050213234158] 
[updated TODO
ijones@syntaxpolice.org**20050213062849] 
[small fix and clarify section 2.2
ijones@syntaxpolice.org**20050213054113] 
[cleaned up tests for ghc 6.4, added --user and --global flags to unregister
ijones@syntaxpolice.org**20050213045843] 
[updated TODO
ijones@syntaxpolice.org**20050213045731] 
[cleaning up warnings
ijones@syntaxpolice.org**20050213030958] 
[cleaning up warnings
ijones@syntaxpolice.org**20050213024240] 
[FIXMEs
ijones@syntaxpolice.org**20050213021629] 
[some FIXMEs
ijones@syntaxpolice.org**20050213021135] 
[added hooks to commands lacking hooks
ijones@syntaxpolice.org**20050213020317] 
[cvs pulls from ross paterson
ijones@syntaxpolice.org**20050213014458
 **  fix executables and installation locations for Hugs
 
 **  only create the installedConfigFile if the package has a buildable library.
 
 ** Regularize treatment of --verbose:
   
   * no longer a global option (it was ignored there)
   
   * added to configure and clean, so it's an option for all commands
   
   Also fixed the Usage message and clobbered placeholder long descriptions.
 
] 
[added missing commands to Distribution.Make
ijones@syntaxpolice.org**20050212225312] 
[refactoring of Distribution.Make
ijones@syntaxpolice.org**20050212214421] 
[export all of System.Directory from Compat/Directory
ijones@syntaxpolice.org**20050212211841] 
[deleted generated files
ijones@syntaxpolice.org**20050212200518] 
[moving ModuleTest into tests, trying to syncronize CVS and darcs for testing
ijones@syntaxpolice.org**20050212194734] 
[test -> tests
ijones@syntaxpolice.org**20050212194012] 
[test case for hsql (makefile) and fixed commas in ModuleTest
ijones@syntaxpolice.org**20050212193016] 
[GNUmakefile for non-fptools build
ijones@syntaxpolice.org**20050212192932] 
[added HSQL and various Distribution.Make bugfixes
ijones@syntaxpolice.org**20050212190527] 
[pull from cvs ross paterson
ijones@syntaxpolice.org**20050212175402
   skip non-buildable executables when preprocessing, building and
   installing (as we do for libraries).
] 
[fixed sdist a little, exported basicStanzaFields at request of the hackage author
ijones@syntaxpolice.org**20050212175222] 
[now override preprocessors with those from hooks
ijones@syntaxpolice.org**20050212032430] 
[fixed tests cases to match ross changes
ijones@syntaxpolice.org**20050211222524] 
[cvs pull from ross
ijones@syntaxpolice.org**20050211215234
 
   add flags arguments to post-hooks, and have defaultUserHooks use postConf
   instead of preConf.
 
   changes to package description fields, as discussed on the libraries list:
   
   * allow both License and License-File, which now correspond to different
     fields of Package Description.
   
   * add Synopsis.
   
   * rename Hidden-Modules as Other-Modules.
] 
[cvs pull from ross; haddock documentation
ijones@syntaxpolice.org**20050210153546] 
[first stab at preprocessors
ijones@syntaxpolice.org**20050210081923] 
[moved Setup.description to foo.cabal
ijones@syntaxpolice.org**20050210073348] 
[Added support for preprocessors in the UserHooks.
ijones@syntaxpolice.org**20050210073229
 Very simple, backward-compatible change.  Not sure how this never
 happened before, it would be a shame to have worked on the
 preprocessor interface and not exposed it to users at all.
 
 Took this chance to move the test preprocessor out of the
 PreProcessors module and into a test case.
 
] 
[added a few comments and examples
ijones@syntaxpolice.org**20050210055436] 
[cvs pull, doc and examples
ijones@syntaxpolice.org**20050210053112] 
[cvs pull
ijones@syntaxpolice.org**20050210052716] 
[darcs pull from ross paterson
ijones@syntaxpolice.org**20050205043702
   Now the only dangling links are in System.Directory, referring to the
   hidden module GHC.IOBase for constructors of IOException.
] 
[cvs pull. haddock fixes
ijones@syntaxpolice.org**20050204195317] 
[tweaks to pfe interface
ijones@syntaxpolice.org**20050204195217] 
[description -> cabal for wash2hs
ijones@syntaxpolice.org**20050204033446] 
[added programatica support (may remove)
ijones@syntaxpolice.org**20050204033034
 On a whim (and since I randomly ran into Thomas Hallgren on the train
 today) I added support for Programatica, via pfesetup.  It doesn't
 probably do quite what one would want it to do since it preprocesses
 everything and slaps it into dist/tmp, but it may be interesting
 nonetheless, and we can clean it up later if anyone thinks we should
 keep it around.
 
 It was very easy to add and looks a lot like the haddock command.  Try
 it with ./setup pfe.  It doesn't do anything too interesting to the
 cabal sources yet since it can't find a bunch of modules.  It would be
 great if someone added all the fptools modules to it :)
 
] 
[cleaned up test cases. fixed small bugs
ijones@syntaxpolice.org**20050203062945] 
[cvs pull from krasimir and ross, mostly hooks
ijones@syntaxpolice.org**20050203052621
 
   Move buildable, cc-options, ld-options, frameworks and hidden-modules
   fields into BuildInfo, so they can be overridden with local info.
   As a consequence executable-modules is replaced with hidden-modules.
   Perhaps other-modules would be a better name.
 
   No longer expect a name field at the head of the library stanza --
   it's redundant, and the pretty printer can't produce it.
 
   Another way to manage the mapping of component names to BuildInfo's
   would be to use the filesystem, i.e. look for <package>.buildinfo,
   <exename1>.buildinfo, <exename2>.buildinfo, etc, each parsing as a
   single BuildInfo.
 
   Change the postHook types
 
   Query system for "c:\Program Files"
 
   Add shell32 to extra-libs under Windows. It is required because
   SHGetFolderPath is called from Distribution.Simple.Configure now.
   
 
] 
[makefile fix for Cabal.cabal
ijones@syntaxpolice.org**20050203052510] 
[renamed moveSources to smartCopySources
ijones@syntaxpolice.org**20050131053128] 
[cleaned up comments
ijones@syntaxpolice.org**20050131052155] 
[more sanity checking
ijones@syntaxpolice.org**20050131045853] 
[added some sanity checking
ijones@syntaxpolice.org**20050131044140] 
[cleaned up warnings
ijones@syntaxpolice.org**20050131040903] 
[cleaned up FIXs and comments
ijones@syntaxpolice.org**20050131040328] 
[defined -D__HADDOCK__ during haddock cpp. cleaned up warnings
ijones@syntaxpolice.org**20050131035110] 
[updatd todo
ijones@syntaxpolice.org**20050131034507] 
[cleaned up some warnings
ijones@syntaxpolice.org**20050131034446] 
[cleaned up warnings
ijones@syntaxpolice.org**20050131034153] 
[cvs pull from ross: ppCpp now uses the cpphs specified to configure, and is also passed os/arch defines.
ijones@syntaxpolice.org**20050131024931] 
[INTERFACE CHANGES! rework of cabal hooks. much of this is from Krasimir
ijones@syntaxpolice.org**20050130233424
 
 User hooks look like this now:
      preConf  :: Args -> ConfigFlags -> IO HookedBuildInfo,
      postConf :: IO ExitCode,
 
 type HookedBuildInfo = (Maybe BuildInfo, [(String, BuildInfo)])
 
 this means that only stuff in BuildInfo can be overridden.  A
 buildinfo file now looks like this:
 
 name: libraryname
 include-dirs: /foo/bar, /bang/baz
 extensions: CPP
 
 executable: executablename
 extensions: TemplateHaskell
 
] 
[pull from CVS, krasimir adds  -v option to install, copy, register, unregister and sdist commands
ijones@syntaxpolice.org**20050130225841] 
[cvs pull, ross paterson
ijones@syntaxpolice.org**20050129192803
  add options to configure for specifying paths of preprocessors
  (happy, alex, hsc2hs and cpphs), e.g. --with-happy=/bin/veryhappy
 
   buildHugs: add name_{HOST,TARGET}_{OS,ARCH} defines to cpp command line.
 
 
] 
[cvs pull to clean up #defines from simonMar
ijones@syntaxpolice.org**20050128154826] 
[cvs pull from krasimir I think to fix some bugs and added explanitory comments
ijones@syntaxpolice.org**20050128154753] 
[cvs pull from Krasimir
ijones@syntaxpolice.org**20050123163202
   Remove -v option from globalOptions
   Use parseNoArgs in parseBuildArgs
   Add -v option to ghc and ar when the build
    process is executed with verbose > 4
 
] 
[cvs pull from sven panne to unify getOpts
ijones@syntaxpolice.org**20050123162824] 
[some refactoring to parse build descriptions
ijones@syntaxpolice.org**20050122215326
 Fixed non-exhaustive pattern in parser (error for missing main-is field)
 Slight refactoring to read a file with any given parser
 Added readBuildInfo and friends (probably not quite what we want,
 since no name attached)
 
] 
[cvs pull: package.conf.in updates
ijones@syntaxpolice.org**20050122203915] 
[fixed mockPP so that it copies the file if it doesn't PP it.
ijones@syntaxpolice.org**20050118011201] 
[only run cpphs if they are using th CPP extension
ijones@syntaxpolice.org**20050118010218] 
[added --with-haddock flag to configure
ijones@syntaxpolice.org**20050118003437
 if ./setup haddock is run w/ verbosity > 4, it adds -v to haddock command
] 
[suggest haddock, cpphs
ijones@syntaxpolice.org**20050118000433] 
[added features to ./setup haddock
ijones@syntaxpolice.org**20050117234132
 added title to ./setup haddock
 added prolog to ./setup haddock
 all commands take the --verbose argument, so fixed the parser
 uncommented hooks stuff I hid for the 0.4 release
 
] 
[TAG 0.4
ijones@syntaxpolice.org**20050117212850] 
[minor releaseNotes fixes
ijones@syntaxpolice.org**20050117212824] 
[bumped to version 0.4, working on make deb rule
ijones@syntaxpolice.org**20050117205319] 
[fixed up some debian/files; prepare for release
ijones@syntaxpolice.org**20050117200437] 
[cleaned up dist target 
ijones@syntaxpolice.org**20050117193227] 
[prepare for release
ijones@syntaxpolice.org**20050116214743] 
[added some thanks
ijones@syntaxpolice.org**20050116214424] 
[due to laziness --install-prefix didn't always give an error.  Fixed haddock bug
ijones@syntaxpolice.org**20050116212741] 
[updated copyright
ijones@syntaxpolice.org**20050116212709] 
[updated release notes, added changelog in preparation for release
ijones@syntaxpolice.org**20050116212643] 
[Krasimir implements Support for -v/--verbose option
ijones@syntaxpolice.org**20050116194050
 The option supports levels from 0 to 5 but currently the library
 distinguishes only zero and nonzero levels. The option is supported
 only for build and haddock commands for now. I plan to add support for
 level 5 of verbose. In this level all external commands will be
 executed with -v option too.
 
] 
[CVS commits from Krasimir and Ross
ijones@syntaxpolice.org**20050116191831
 ** libraries/Cabal/Distribution ParseUtils.hs 
 ** minor local refactoring of unionBuildInfo
 ** build-package -> buildable
] 
[limit the massive output of test suite
ijones@syntaxpolice.org**20050116191744] 
[added "combine buildDepends" to union function
ijones@syntaxpolice.org**20050116183523] 
[fixed test cases for copy-prefix
ijones@syntaxpolice.org**20050116183352] 
[cleaned up parser messages
ijones@syntaxpolice.org**20050115234335] 
[fixed prerm to match cabal version
ijones@syntaxpolice.org**20050115224331] 
[added localBuildInfo
ijones@syntaxpolice.org**20050115222547] 
[removed LocalBuildInfo...
ijones@syntaxpolice.org**20050115222538] 
[build-depends on posix?
ijones@syntaxpolice.org**20050115222441] 
[changed prepending behavior in copy-prefix back to what it was
ijones@syntaxpolice.org**20050115215139] 
[some changes for new cabal version to build debian package
ijones@syntaxpolice.org**20050115212103] 
[CVS pull. override hs-source-dir instead of combine.
ijones@syntaxpolice.org**20050115212024] 
[Refactoring of PackageDescription and BuildInfo
ijones@syntaxpolice.org**20050114071102
 Introduced new data type, Library which is symmetric to Executable.
 Removed "executable only" and "library only" fields from
 PackageDescription and moved them to their respective internal types.
 
 Moved Build-depends out of buildinfo and into the package description
 proper, as per Ross's suggestion.
 
 Cleaned up parser and test cases accordingly.
 
] 
[package-url -> homepage
ijones@syntaxpolice.org**20050114022133] 
[fixing up test suite from CVS pull
ijones@syntaxpolice.org**20050113170517] 
[CVS pull: someone fixed encoding of msjogren's name
ijones@syntaxpolice.org**20050113164929] 
[CVS pull: alex preprocessor, and search for package description.
ijones@syntaxpolice.org**20050113164835] 
[haddock todos
ijones@syntaxpolice.org**20050113164826] 
[glob of CVS changes; PError, NHC options, system.directory, NHC builds
ijones@syntaxpolice.org**20050112162911
 Authors: Malcolm Wallace, Ross Paterson, Krasimir Angelov
 
   move createIfNotExists and removeFileRecursive functions from
   Distribution.Simple.Utils to System.Directory. The functions are renamed
   to createDirectoryIfMissing and removeDirectoryRecursive.
 
   avoid a few GHC warnings
 
   get IOError stuff from System.IO.Error instead of System.IO
 
   Minor tweaks to build with nhc98.
 
   OPTIONS pragma stuff for nhc98 and compat w/ ghc
 
   Use a custom monad ParseResult for parse results instead of Either PError,
   removing the need for Distribution.Compat.Error and the dependency on mtl.
   
 
 
] 
[cleanup warnings, dead code, and possible bugfix for withTempFile
ijones@syntaxpolice.org**20050110062610] 
[dist/build/doc -> dist/doc
ijones@syntaxpolice.org**20050110042114] 
[now use ./setup haddock instead of cheesy haddock by-hand comman
ijones@syntaxpolice.org**20050110042048] 
[added ./setup haddock cmd. works on exposed-modules
ijones@syntaxpolice.org**20050110040341
 It requires both haddock and hscpp; Fix to not require cpp if it's not
 needed.
 
 It runs the cpp over the files first and unlits .lhs files.
 
 Along the way, cleaned up the command-line parser to re-use code for
 commands with no arguments.
 
 Changed the type of withLib to be more general
 
] 
[small changes to README and description
ijones@syntaxpolice.org**20050110030309] 
[CVS pull from Krasimir; dropAbsolutePath...
ijones@syntaxpolice.org**20050110002908
   Use joinFileName the new dropAbsolutePrefix function from System.FilePath
   instead of joinPaths in mJoinPaths. The joinPaths function always returns its
   second argument if it is absolute path. Since the install prefix is usually
   absolute path the copy command wasn't working with the old definition.
 
] 
[CVS pulled Setup.description
ijones@syntaxpolice.org**20050110002807] 
[INTERFACE CHANGE: moved Setup.description to <pkgname>.cabal
ijones@syntaxpolice.org**20050110001455
 Now it searhes for *.cabal in the current directory, if it finds more
 than one, there's an error.  For now, it allows Setup.description with
 a warning.
 
 
] 
[cvs patch from ross to add -i based on includeDirs to cpp and ubild
ijones@syntaxpolice.org**20050109184013] 
[removed TODO I just implemented a different way
ijones@syntaxpolice.org**20050108220602] 
[look in libraries source directory for executable modules
ijones@syntaxpolice.org**20050108215448
 
 When building executables, one typically wants to build them based on
 the library that's contained in the cabal package.  This was difficult
 if both the executables and the library used different
 hs-source-dir's.  This patch causes executables to look at the
 library's hs-source-dir for modules when preprocessing and building.
 
 This is instead of building and locally installing a package and using
 the -package flag to build the executable, since that's more
 complicated, and won't necessarily work if the library isn't designed
 to be installed in-place.
 
] 
[better Test.mk makefile
ijones@syntaxpolice.org**20050108215207] 
[cleaned up unit test
ijones@syntaxpolice.org**20050108215124] 
[test case for executable that depends on cabal package library
ijones@syntaxpolice.org**20050108210752] 
[added docs for licenses
ijones@syntaxpolice.org**20050108195833] 
[fix from krasimir for getHomeDirectory
ijones@syntaxpolice.org**20050108191010
 
   I added getHomeDirectory function to Distribution.Compat.Directory
   which
   now is used from GHCPackageConfig.localPackageConfig instead of
   (getEnv "HOME").
   Without this fix the build process under Windows terminate with
   "does not exists (no environment variable)".
   
   NOTE: The fix works only if Cabal is built with ghc-6.3+. In any other case
   getHomeDirectory is defined as getEnv "HOME" and will continue to fail.
   This can be fixed but it will add an additional dependency of Cabal from
   shell32 under Windows and ghc < 6.3. I decided to leave the things at this
   stage because they are more maintainable in this way. If this is a pain I
   can rewrite the things latter.
 
] 
[added getopt
ijones@syntaxpolice.org**20050108191001] 
[executables that depend on package TODO
ijones@syntaxpolice.org**20050108190941] 
[fixed case where two main modules are in the same directory
ijones@syntaxpolice.org**20050107072416
 
 It's pretty common to have a situation where two modules with
 different filenames are both named Main.  If they're in the same
 directory, and we use the -odir and -hidir flags, ghc --make uses the
 Main.o produced from the first build to link the 2nd!
 
 I added a pretty tricky test case for this, after it was reported by
 Ganes Sittampalam while trying to build the HaXmL executables.
 
 I fixed it today by adding the executable name to the -odir and -hidir
 paths, to make sure that they don't use the same Main.o... this is a
 bit inefficient, though, because I'm pretty sure that means it will
 rebuild any bits of the library it depends on for each executable.
 
 Any objections to this?
 
] 
[fixed three bugs in the parser and pretty printer
ijones@syntaxpolice.org**20050107065637
 
 Two of the bugs were passing the wrong accessor function to the pretty
 printer.
 
 The third bug was that the pretty printer rendered "foo\\bar" as
 "foo\bar", but actually in order to get the slash into the string, the
 user would have to have used the quote syntax.  I think we decided
 that the quote syntax meant a haskell string, so they should input it
 as "foo\\bar", of course internally represented as "foo\bar', but when
 printed, it should show two slashes again.
 
] 
[simon and ross got rid of dots in objExtension etc
ijones@syntaxpolice.org**20050107060543] 
[cvs pull from ross paterson
ijones@syntaxpolice.org**20050106161930
   buildHugs: use lex to tokenize the source file when looking for "foreign"
   use FilePath.objExtension
   only read Setup.buildinfo if present
   trim "Multi-line!" from help message
   move hcOptions function to Distribution.PackageDescription
   add Hugs options and $@ to runhugs command line (Unix only)
 
] 
[quick fix for hugs bootstrap
ijones@syntaxpolice.org**20050106082416] 
[removed OPTIONS -cpp
ijones@syntaxpolice.org**20050106081541] 
[fixed some haddock problems
ijones@syntaxpolice.org**20050106075438] 
[fixed checking for unknown args
ijones@syntaxpolice.org**20050106071635
 Long story:
 
 It seems that Marvin removed my beautiful and powerful "getOpt"
 alterations to use the System.Console one, which I had already deemed
 to be non-beautiful because of the errors it spews when faced with
 arguments it doesn't understand.
 
 I think Marvin misunderstood the API docs that seem to suggest that
 the "commands" that get passed back from getOpt are the non-matched
 arguments.  In fact, non-matched arguments get returned as errors
 (ewwwww).
 
 So I had to re-apply my GetOpt module, and alter the parser
 accordingly.
 
 Also, since it's not OK to pass random arguments all the time (just
 when you have user hooks), I cleaned up calls to no_extra_flags to
 only get called when there's nothing sensible to do with unknown
 arguments.
 
] 
[added test case for two mains in same directory
ijones@syntaxpolice.org**20050106051909] 
[failing test cases and new assertCmdFail function
ijones@syntaxpolice.org**20050106050347] 
[cleaned and simplified makefiles to speed up build
ijones@syntaxpolice.org**20050106050241] 
[added a hook to check test case of unknown param being passed to configure
ijones@syntaxpolice.org**20050106050207] 
[copy-prefix now prepends prefix
ijones@syntaxpolice.org**20050106042307
 ** The value of --copy-prefix is now prepended to that of --prefix
 (like $DESTDIR) instead of replacing it.  As Ross pointed out, it
 doesn't really make sense for --prefix not to be a prefix of
 --copy-prefix, as the value of --prefix may be embedded in the
 generated files.
 
 ** Unit tests change to reflect
 
] 
[the default for --prefix is now /usr/local
ijones@syntaxpolice.org**20050106042251] 
[make check target
ijones@syntaxpolice.org**20050106042216] 
[quick notes
ijones@syntaxpolice.org**20050106042156] 
[cvs patches from Ross, hugs exes and preprocessing
ijones@syntaxpolice.org**20050106015854] 
[combining package descriptions
ijones@syntaxpolice.org**20050103031446] 
[made module names better, added another main module
ijones@syntaxpolice.org**20050103031332] 
[added a test case for a program using hooks
ijones@syntaxpolice.org**20050103025828] 
[added test case that shows failure of pretty print in some cases.
ijones@syntaxpolice.org**20050103024541] 
[cvs patches from Ross. mostly parser work
ijones@syntaxpolice.org**20050103014523
 ** add a newline to the end of the installed package description
 ** When pretty-printing free-format text fields, align the lines vertically
   (so that following lines will be seen as continuations) and replace empty
   lines with "." (so they'll be correctly re-parsed, instead of looking
   like a stanza separator).
 
] 
[create hugs installation directory if it doesn't exis
ijones@syntaxpolice.org**20050102193549] 
[from Ross and CVS
ijones@syntaxpolice.org**20050102192942
 First cut at installHugs.  The treatment of executables is still incomplete.
 simplistic register/unregister for Hugs:
   
   * register copies the installed package decsription into the packages dir
   
   * unregister uninstalls the package
 Hugs supports FFI without extra flags
 
] 
[small bugfix from ross for #endif
ijones@syntaxpolice.org**20050102192124] 
[quick FIXME comment
ijones@syntaxpolice.org**20050101210124] 
[used basic preConf from HugsSetup as default preConf
ijones@syntaxpolice.org**20050101205958] 
[some exports for hooks stuff
ijones@syntaxpolice.org**20050101205530] 
[now each pre-fun takes the extra args as its input
ijones@syntaxpolice.org**20050101204130] 
[export some stuff, and pick up some compat stuff for FilePath
ijones@syntaxpolice.org**20050101201527] 
[(from CVS) ross paterson commits
ijones@syntaxpolice.org**20050101190821
 ** revert to getting main module from the right place
 ** make singleStanza ignore comment lines too
 
] 
[fromJust to fromMaybe with error checking
ijones@syntaxpolice.org**20050101020625] 
[(from CVS) ross fills in buildHugs details
ijones@syntaxpolice.org**20041231013216] 
[cvs commit blob from ross patterson
ijones@syntaxpolice.org**20041230065706
 ** haddock fixes
 
 ** Add the following fields to PackageDescription:
   
   	buildPackage   :: Bool,         -- ^ package is buildable here
   	ccOptions      :: [String],     -- ^ options for C compiler
   	ldOptions      :: [String],     -- ^ options for linker
   	frameworks     :: [String],
   
   When these are system dependent (as they often are), they will need to be
   overridden, but the mechanism is left to the Cabal user.
   
   Not that I've treated these as basic fields, so they apply to the library
   (if any) and all executables in the package.  The overriding is easier
   that way.
 
 ** Make the build prefix settable with the --builddir option to configure
   (in Simple), save this in the LocalBuildInfo, and use it in subsequent
   phases.
   
   This is useful for the Hugs build, where we want to place the built
   libraries so that we can easily use them inplace.
 
 ** Some rearrangement, centring on changes to the definition of
   PPSuffixHandler:
   
   * removed the special treatment of literate source: a separate
     preprocessor can be used for these if required.
   
   * handlers can use package and local build info to construct the
     appropriate preprocessor.
   
   Also, the supplied suffix handlers list now only has entries for suffixes
   that need preprocessing (i.e. not .hs or .lhs).  Dummy entries for the
   suffixes handled by the compiler are added internally.
 
 **  Add a function getOptionsFromSource to fetch LANGUAGE and OPTIONS pragmas
   from the initial part of a Haskell source module (as proposed by SimonM
   on the libraries list).
   
   Also export the auxiliary function stripComments, which does what it says,
   optionally preserving pragmas.
 
 
] 
[more refactoring of InstallCmd
ijones@syntaxpolice.org**20041230065512] 
[small fix to match Ross's new suffixHandler concept
ijones@syntaxpolice.org**20041230065337] 
[factored mprefix out of InstallCmd
ijones@syntaxpolice.org**20041230062805] 
[oops: reapplied changes on Install command, since its used by Copy
ijones@syntaxpolice.org**20041230005528] 
[removed deprecated param from install
ijones@syntaxpolice.org**20041229200148] 
[added args to some preHooks
ijones@syntaxpolice.org**20041229195824] 
[switched order of hooks and argument parsing for each command
ijones@syntaxpolice.org**20041229193118] 
[preliminary work on hooks
ijones@syntaxpolice.org**20041220073619] 
[INTERFACE CHANGE: split modules => exposedModules executableModules
ijones@syntaxpolice.org**20041219183449
 
 ** Previously, "hidden-modules" had nothing to do with what gets
    built, and we had to compute "exposed-modules" with "modules `setdiff`
    hidden modules".  At Ross Paterson's suggestion, I added
    Exposed-Modules.
 
 ** Since the executable sections also used the "modules" field, I
    changed it to use "executable-modules", and got rid of the
    ambiguous "modules" field.  This should hopefully be more clear to
    everyone.
 
] 
[ideas from ross p
ijones@syntaxpolice.org**20041219182744] 
[package.conf from CVS
ijones@syntaxpolice.org**20041219170939] 
[hugs => ffihugs from ross paterson
ijones@syntaxpolice.org**20041219170845] 
[test cases, todos, help output
ijones@syntaxpolice.org**20041208082640] 
[Copy command for 'make'
ijones@syntaxpolice.org**20041208082619] 
[added the copy command, removed install with --install-prefix
ijones@syntaxpolice.org**20041208081401] 
[uinst not used in 'install' removed
ijones@syntaxpolice.org**20041208075515] 
[er try that again, get 0.2 this time
ijones@syntaxpolice.org**20041207193026] 
[stuff from debian, mostly by John Goerzen
ijones@syntaxpolice.org**20041207192427] 
[added LocalBuildInfo from CVS
ijones@syntaxpolice.org**20041207182048] 
[moved Makefile into GNUmakefile which should do the right thing in most cases.
ijones@syntaxpolice.org**20041207074443] 
[removed CVS Makefile from darcs. might reduce confusion
ijones@syntaxpolice.org**20041207073942] 
[input_file -> input-file
ijones@syntaxpolice.org**20041207073111
 As far as I can tell, this hasn't changed in ghc-pkg.  simonMar,
 double check this?
 
] 
[updated patch to use parseLicenseQ and parseLibNameQ
ijones@syntaxpolice.org**20041207072359] 
[ugly preprocessing stuff to prevent standard GHC build from trying to build this
ijones@syntaxpolice.org**20041207072341] 
[ugly preprocessing stuff to prevent standard GHC build from trying to build this
ijones@syntaxpolice.org*-20041207072234] 
[ugly preprocessing stuff to prevent standard GHC build from trying to build this
ijones@syntaxpolice.org**20041207072234] 
[fixed bug where generated .hs files weren't getting cleanen
ijones@syntaxpolice.org**20041207033444] 
[added missing file for preprocessing stuff
ijones@syntaxpolice.org**20041207030553] 
[added small fix to test suite
ijones@syntaxpolice.org**20041204222014] 
[extra-lib-dirs support
ekarttun@cs.helsinki.fi**20041125084205
 Adds support for an Extra-Lib-Dirs option in the 
 Setup.description file. This makes it possible
 to depend on libraries not in the default library 
 search path. 
 
 If Extra-libs corresponds to -l in ghc, then 
 Extra-lib-dirs corresponds to -L.
] 
[added test case for subdirs in c source files
ijones@syntaxpolice.org**20041117031939] 
[wad of changes imported from CVS, various authors
ijones@syntaxpolice.org**20041207053321] 
[removed getopt; unused.
ijones@syntaxpolice.org**20041207052520] 
[moved my makefile out of fptools' way
ijones@syntaxpolice.org**20041207051937] 
[updated TODO
ijones@syntaxpolice.org**20041207030625] 
[added Distribution.Compat.FilePath from CVS
ijones@syntaxpolice.org**20041204220114] 
[Minor fixes to the Windows build
simonmar@microsoft.com**20041130124515] 
[Huge wad of changes from GHC team
simonmar@microsoft.com**20041130124004
 
 - Rename Compat.* modules to Distribution.Compat.*
 - Add {-# OPTIONS -cpp #-} to a few modules
 - Distribution.Compat.ReadP: use real ReadP in GHC 6.3+
 - new module: Distribution.Extension, contains Extension type
   formerly from Distribution.Misc.
 - new module: Distribution.License, contains License type
   formerly from Distribution.Misc.
 - remove Distribution.Misc
 - new module: Distribution.ParseUtils, containing various parsing utilities
   formerly from Distribution.Package, that are re-used in 
   Distribution.InstalledPackageInfo.
 - new module: Distribution.PackageDescription contains everything related
   to PackageDescription, which was formerly in Distribution.Package.
 - Distribution.Package now contains only PackageId-related stuff.
 - Distribution.InstalledPackageInfo: update for use in GHC, add
   parsing/pretty-printing.
 - Compat.H98 is now Distribution.Compat.Error (it contained only stuff
   related to the Error monad, which isn't H98 anyway).
 - remove imports of H98 libs (use hierarchical ones instead)
 - configure now detects the GHC version (but doesn't do anything with it... yet)
 
] 
[fix for bug where c-derived object files are built and linked from different directories
ijones@syntaxpolice.org**20041117032037] 
[update TODO
ijones@syntaxpolice.org**20041117032023] 
[removed ghc5 depends for debian version 0.2-2
ijones@syntaxpolice.org**20041108165940] 
[added depends on posix
ijones@syntaxpolice.org**20041108170006] 
[Removed duplicate entry for Distribution.PreProcess.Unlit from Setup.description.
bjorn@bringert.net**20041113124243] 
[small refactoring to delay reading description file
ijones@syntaxpolice.org**20041105214813] 
[better error message for missing description file
ijones@syntaxpolice.org**20041104004109] 
[quick release notes
ijones@syntaxpolice.org**20041103191426] 
[added hugs bootstrap and install targets
ijones@syntaxpolice.org**20041103053024] 
[separated connected and unconnected 'dist' targets
ijones@syntaxpolice.org**20041103051615] 
[cleaned up makefiles for -cpp option
ijones@syntaxpolice.org**20041103051450] 
[update debian file in prep for release
ijones@syntaxpolice.org**20041103050344] 
[removed OPTIONS -cpp flags at the top of files
ijones@syntaxpolice.org**20041103045029
 this allows cabal to be compiled for hugs.
] 
[fixed bugs in description file
ijones@syntaxpolice.org**20041103045000] 
[some haddock fixes and TODO notes
ijones@syntaxpolice.org**20041103043837] 
[added CPP extension
ijones@syntaxpolice.org**20041103043807] 
[more comments
ijones@syntaxpolice.org**20041102063004] 
[basic HUGS implementation
ijones@syntaxpolice.org**20041102060558
 lots of work to do here still.  cabal can't yet bootstrap because of
 the necessit of CPP options pragmas at the top of the files.  See
 TODO list for stuff to do for Hugs.
] 
[packageConfig to localPackageConfig, comments, cleanup
ijones@syntaxpolice.org**20041102060043] 
[more intelligent checking of permissions and existence of localPackageConfig
ijones@syntaxpolice.org**20041101061013
 If the package file isn't readable during build, don't pass the
 -package-conf flag to GHC.  If it doesn't exist during register, and
 the --user flag was passed create it.  If it's not writeable, and the
 --user flag was passed, then we exit with error.
 
 This should fix debian bug# 278667
] 
[Export buildDepToDep (for Visual Studio)
simonmar@microsoft.com**20041025092539] 
[some ideas from mailing list discussion
ijones@syntaxpolice.org**20041023201352] 
[new fields, description, url, etc from David
ijones@syntaxpolice.org**20041023201256] 
[some notes about install/register
ijones@syntaxpolice.org**20041018053108] 
[allModules wasn't used.
ijones@syntaxpolice.org**20041016052701] 
[moved currentDir into utils
ijones@syntaxpolice.org**20041016051914
 
 Utils used to depend on Distribution.Package, so Package couldn't
 easily use Utils.  I removed this dependency by moving a couple of
 functions into D.Package, then moved currentDir into Utils where it
 belongs.
 
] 
[removed unnecessary configure-before-sdist
ijones@syntaxpolice.org**20041013120659] 
[fixed bug where executable sources arent included in sdist
ijones@syntaxpolice.org**20041013120205] 
[TODOs
ijones@syntaxpolice.org**20041012152003] 
[better error for missing config file
ijones@syntaxpolice.org**20041012151904] 
[Wibble to previous
simonmar@microsoft.com**20041012145030] 
[Add missing file Distribution.PreProcess.Unlit
simonmar@microsoft.com**20041012144835] 
[Build fix for Windows
simonmar@microsoft.com**20041012144809] 
[used sequenceMap and concatMap
ijones@syntaxpolice.org**20041009235711] 
[cleaned up use of knownSuffixHandlers
ijones@syntaxpolice.org**20041009232753] 
[clean now removes preprocessed sources (and is  more likely to destroy your source code so be careful)
ijones@syntaxpolice.org**20041009230737] 
[cleaned up ModuleTest for the preprocessed test
ijones@syntaxpolice.org**20041009224738] 
[used new "removedPreprocessed" function in sdist
ijones@syntaxpolice.org**20041009000626] 
[added removePreprocessed function to delete preprocessed files
ijones@syntaxpolice.org**20041008232137] 
[include unpreprocessed sources in tarball.
ijones@syntaxpolice.org**20041008211235] 
[implemented in-place building. fixed related bug
ijones@syntaxpolice.org**20041008202126
 ** now the sources are built in-place, not moved to dist before being built
 ** the bug was that for executables, the build was not putting the .o and .hi files in the right place.
 
 
] 
[toward Wall cleanliness Package.hs
ijones@syntaxpolice.org**20041008043347] 
[toward Wall cleanliness Unlit.hs
ijones@syntaxpolice.org**20041008042149] 
[toward Wall cleanliness Setup.hs
ijones@syntaxpolice.org**20041008041026] 
[toward Wall cleanliness PreProcess
ijones@syntaxpolice.org**20041008041005] 
[notes on solution to bug
ijones@syntaxpolice.org**20041007035301] 
[basic preprocessing works! with some bugs
ijones@syntaxpolice.org**20041007033517
 End-to-end preprocessing solution, including some test cases.
 One test case fails:
   right now, preprocessors just stick files into the current
   directory, then copies them into the destination.  this is no good
   since we now won't be able to tell them from real source files the
   next time around.  clean is broken here...
 
] 
[basic PreProcessor interface
ijones@syntaxpolice.org**20041007020110] 
[messing with permissions support (simonMar please check)
ijones@syntaxpolice.org**20041007015639] 
[better than hiding (copyFile) on systems without copyFile
ijones@syntaxpolice.org**20041007014625] 
[Failed to compile with ghc from CVS HEAD without that patch.
simons@cryp.to**20041004193540] 
[tried to fix file permissions bug some more
ijones@syntaxpolice.org**20040828214605] 
[patches from John Goerzen for better debian support
ijones@syntaxpolice.org**20041006160701] 
[patches from John Goerzen for GHC5 compatibility.
ijones@syntaxpolice.org**20041006160126] 
[Windows fixes
simonmar@microsoft.com**20040907112004] 
[added Distribution.PreProcess
ijones@syntaxpolice.org**20040828213456] 
[unix only patch for permissions problem
ijones@syntaxpolice.org**20040828212009] 
[reimplemented preprocessors with simpler preprocessor type.
ijones@syntaxpolice.org**20040828202036] 
[outlined new idea for preprocessor
ijones@syntaxpolice.org**20040826010017] 
[toward -Wall cleanliness
ijones@syntaxpolice.org**20040825022803] 
[toward -Wall cleanliness Install, Register
ijones@syntaxpolice.org**20040825021446] 
[toward -Wall cleanliness Configure.hs
ijones@syntaxpolice.org**20040825014437] 
[toward -Wall cleanliness Build.hs
ijones@syntaxpolice.org**20040825013652] 
[moved TODO list to top level
ijones@syntaxpolice.org**20040824143324] 
[executePreprocessor is a better name
ijones@syntaxpolice.org**20040824025153] 
[first pass at ppCommandLine
ijones@syntaxpolice.org**20040824024933] 
[added hscpp preprocessor
ijones@syntaxpolice.org**20040824005501] 
[preprocessing code, some from hmake
ijones@syntaxpolice.org**20040824003833
 These are some of the changes to HMake that Malcolm and I had
 talked about some time back.  The PPSuffixHandler is meant to
 allow extendability.  Build will probably have to take a list
 of these as an argument.
] 
[moved preprocessing function into its own module in preparation for preprocessor work
ijones@syntaxpolice.org**20040824001257] 
[copyright file, authors, TODO reorg
ijones@syntaxpolice.org**20040823233430] 
[small fix to make test suite run.
ijones@syntaxpolice.org**20040818233729] 
[Fix build problem in Distribution.Make
simonmar@microsoft.com**20040818111726] 
[Add --with-hc-pkg; some Windows fixes
simonmar@microsoft.com**20040818100026
 * Add --with-hc-pkg flag to specify the hc-pkg path separately from
   the compiler
 * #include config.h where necessary to get the definition of
   mingw32_TARGET_OS.
 * Flush stdout before writing to stderr on Windows (gets some
   messages in the right order).
] 
[Parser&Pretty printer bugfixes
ka2_mail@yahoo.com**20040810173305] 
[added something to search for all files with a particular extension
ijones@syntaxpolice.org**20040809173723] 
[New parser & pretty printer for PackageDescription
ka2_mail@yahoo.com**20040807070302] 
[some readme note son debianTemplates
ijones@syntaxpolice.org**20040810185318] 
[reorganized todo list.
ijones@syntaxpolice.org**20040808201804] 
[export emptyBuildInfo function
ka2_mail@yahoo.com**20040805193321] 
[Bugfix. Since the .o files are only added to library, it will grow after each build. The fix is to remove libHS*.a file before build.
ka2_mail@yahoo.com**20040805180604] 
[Added mkLibDir & mkBinDir functions. This helps to use the same paths in all places. Fixes a bug under Windows.
ka2_mail@yahoo.com**20040805174607] 
[Check for .. directory in splitFilePath
ka2_mail@yahoo.com**20040805165842] 
[formatting
ka2_mail@yahoo.com**20040805163614] 
[Handle .. directory in pathInits
ka2_mail@yahoo.com**20040805050605] 
[More appropriate pathInits function
ka2_mail@yahoo.com**20040804220340] 
[fix maybeAddSep function. Add maybeRemoveSep function.
ka2_mail@yahoo.com**20040804200227] 
[Add Windows's test cases. The splitFilePath function is modified to handle drive names
ka2_mail@yahoo.com**20040804185941] 
[Write proper functions for joining and splitting file path parts
ka2_mail@yahoo.com**20040804181514] 
[updated release notes
ijones@syntaxpolice.org**20040804175327] 
[added failing test case for splitExt
ijones@syntaxpolice.org**20040804014726] 
[Use --update-package option instead of --add-package since the package can be registered multiple times.
ka2_mail@yahoo.com**20040803213448] 
[Make library more Windows compatible
ka2_mail@yahoo.com**20040803211907] 
[some release notes tweaked
ijones@syntaxpolice.org**20040801231809] 
[preparing for release. small tweaks. releaseNotes
ijones@syntaxpolice.org**20040801221317] 
[small fixes
ijones@syntaxpolice.org**20040801211856] 
[Updates to the TODO
md9ms@mdstud.chalmers.se**20040731212301] 
[Allow alphanumeric characters in version tags
md9ms@mdstud.chalmers.se**20040731212221] 
[Allow .:s to be used to preserve indentation
md9ms@mdstud.chalmers.se**20040731134904] 
[made ugly dist rule
ijones@syntaxpolice.org**20040731192621] 
[fix_debianTemplate_postinst
jeremy.shaw@linspireinc.com**20040731182749
 dh_make is lame. fix postinst to substitute on PACKAGE not PACKAGE1.
] 
[hacked up haddock rule
ijones@syntaxpolice.org**20040731190128] 
[turned off broken building for NHC
ijones@syntaxpolice.org**20040731174445] 
[updates_to_achieve_first_working_debianTemplate
jeremy.shaw@linspireinc.com**20040731023259
 I removed a bunch of useless(?) stuff in the debianTemplates
 directory. And renamed some files. Seems that the dh_make template
 stuff is pretty basic -- it just substitutes the string 'package' in a
 filename with the name of the package.
 
 I also modified the rules file -- among other things 'clean' required
 'setup'. But setup was not built yet. The currently solution seems
 like a bit of a hack, but does at least generate a package.
 
 Also, I use dh_installdocs to install the installed-pkg-config instead
 of copying it explicitly in the rules file. Added a compat file
 (level 4), and a default changelog.
 
 commented out the Depends line in the control file, because there is
 currently only a -dev package.
 
 To invoke the debianTemplate stuff I do:
 
 dh_make -d -t /full/path/to/debianTemplate
 
 The -d keeps dh_make from installing a bunch of useless stuff in the
 debian directory, but it also makes it so that the copyright file does
 not get created, even if you specify -c on the command-line. I think
 that should be considered a bug.
] 
[Improve error reporting in the description parser
md9ms@mdstud.chalmers.se**20040730210442] 
[Change underscore to dash
md9ms@mdstud.chalmers.se**20040730210431] 
[Make it work in hugs
md9ms@mdstud.chalmers.se**20040730210355] 
[added postinst and prerm
ijones@syntaxpolice.org**20040730210027] 
[added debianTemplate for dh_make
ijones@syntaxpolice.org**20040730205624] 
[another workaround for darcs add script
ijones@syntaxpolice.org**20040730205510] 
[Fix Compat.H98 breakage, improve copyFile
md9ms@mdstud.chalmers.se**20040729192944
 I moved a lot of the ifdef:ing into the Compat.* modules, makes
 a lot more sense.
] 
[Updates to the TODO
md9ms@mdstud.chalmers.se**20040729151301] 
[Just take the option string as-is, why bother with comma-separation?
md9ms@mdstud.chalmers.se**20040728223811] 
[cleaned up scripts and binary
ijones@syntaxpolice.org**20040729191649] 
[trying to fix scripts
ijones@syntaxpolice.org**20040729143504] 
[renamed scripts
ijones@syntaxpolice.org**20040729143235] 
[changed name of package to match Igloo's policy
ijones@syntaxpolice.org**20040729140302] 
[added debian subdirectory
ijones@syntaxpolice.org**20040729034708] 
[broke out writing of installedPackageConfig into build step
ijones@syntaxpolice.org**20040729030610
 This will be necessary for creating debian packages.
] 
[darcs bug with file adds
ijones@syntaxpolice.org**20040728215011] 
[Make cabal buildable with nhc
md9ms@mdstud.chalmers.se**20040728174417] 
[Fix {,} problems
md9ms@mdstud.chalmers.se**20040728174112] 
[Move extension checking to the configure phase
md9ms@mdstud.chalmers.se**20040727145553] 
[Get rid of the evil CRLFs
md9ms@mdstud.chalmers.se**20040727140135] 
[Revamp command/option parsing
md9ms@mdstud.chalmers.se**20040726231403] 
[Clean up parser and add Compat.H98
md9ms@mdstud.chalmers.se**20040726161100] 
[Include hsSourceDir in the build prefix and update teset cases
md9ms@mdstud.chalmers.se**20040726160107] 
[EmptyDataDecls patch
ijones@syntaxpolice.org**20040727013226] 
[Switch from parsec parsing to ReadP parsing
md9ms@mdstud.chalmers.se**20040725230651
 Note that this uses a locally hacked ReadP (Compat.ReadP) that's
 been altered to be H98 compatible.
] 
[Clean up some make targets
md9ms@mdstud.chalmers.se**20040725223945] 
[removed doc directory, along with libraryInfrastructure.sgml. this is in CVS under haskell-report
ijones@syntaxpolice.org**20040726045810] 
[comments and TODO. tried haddockizing
ijones@syntaxpolice.org**20040726045657] 
[TODO and some inaccurate comments
ijones@syntaxpolice.org**20040726043248] 
[added explanations to many modules
ijones@syntaxpolice.org**20040726040201] 
[added sanity check for empty executables and libraries.updated TODO
ijones@syntaxpolice.org**20040726034157] 
[fixed cascading test case failure. update TODO
ijones@syntaxpolice.org**20040726033453] 
[extensions changes. suggestsion from libraries@
ijones@syntaxpolice.org**20040726032726] 
[removed HUnit depends so make install works
ijones@syntaxpolice.org**20040725215436] 
[Get tests running again
md9ms@mdstud.chalmers.se**20040725213942] 
[made test suite work again
ijones@syntaxpolice.org**20040725204405
 ** removed hugs test case that never works
 ** added -DDEBUG flags to HUnit and A
 ** fixed A's description file up a bit
 ** tried to cut back on cascading failures in moduleTest
] 
[Remove -DDEBUG from OPTIONS pragmas
md9ms@mdstud.chalmers.se**20040725120303
 If you don't actually have HUnit installed, it's a pain in the butt
 to pass -i parameters or -package-conf parameters to ghci when you
 just want to check something in a module or another. Makes more sense
 to require -DDEBUG on the command line. Also, I changed the Makefile
 to define -DDEBUG when building moduleTest, so that should still work.
] 
[Refactor constructGHCCmdLine, fix executable building and preprocessing
md9ms@mdstud.chalmers.se**20040723185218] 
[Fix hunitInstall stamping, split up clean in three targets
md9ms@mdstud.chalmers.se**20040723185026] 
[added attic
ijones@syntaxpolice.org**20040723142040] 
[preserve permissions on copyFile
ijones@syntaxpolice.org**20040723141351] 
[tweak makefile. wtf is up w/ MainB?
ijones@syntaxpolice.org**20040723135239] 
[added MainB.hs, TODO
ijones@syntaxpolice.org**20040723135050] 
[make executables build
ijones@syntaxpolice.org**20040723051659
 * lots of work on making executables build
 - added tests case for wash2hs
 - added -i hsSourceDir
 - added build dependencies
 - since we have to fix dependencies at configure time, I added
   executableDeps to localBuildInfo
   (caused change in format for localBuildInfo)
 - added code for actually putting the executables into place.
 
 * libraries
 
 - also added check to make sure there are libraries when building &
   installing the archive and such (hasLibs)
 - don't register if hasLibs is false.
] 
[added wash2hs as a test case, but haven't added the tests themselves
ijones@syntaxpolice.org**20040722211941] 
[fixed bug where we ignored hsSourceDir
ijones@syntaxpolice.org**20040722205542] 
[fixed "-foo " ++bar arguments, chnaged to "-foo", bar
ijones@syntaxpolice.org**20040722203326] 
[added building executables. that test case now passes
ijones@syntaxpolice.org**20040722202645] 
[Add main-is field for executable stanzas
md9ms@mdstud.chalmers.se**20040722161350] 
[Change license parsing to add a license-file field
md9ms@mdstud.chalmers.se**20040722145218
 As suggested by Igloo, the License field should deal with known licenses, so
 we added a separate field called License-file that takes a FilePath.
 
 It should be an error if both License and License-file are present, but this
 is not enforced yet.
] 
[added hello.c oops
ijones@syntaxpolice.org**20040722195614] 
[c-sources building and library inclusion
ijones@syntaxpolice.org**20040722154841] 
[re-fixed make clean rule
ijones@syntaxpolice.org**20040722001631] 
[test case for building executable
ijones@syntaxpolice.org**20040722000024] 
[check for ~/.ghc-packages wherever we use it.
ijones@syntaxpolice.org**20040721232515] 
[Fix license and extension parsers
md9ms@mdstud.chalmers.se**20040721212911] 
[Update tests
md9ms@mdstud.chalmers.se**20040721212852] 
[added test/a/Setup.description
ijones@syntaxpolice.org**20040721230836] 
[New implementation of parseFilePath
md9ms@mdstud.chalmers.se**20040720221904
 Hashed out with SyntaxNinja, Lemmih and Igloo. Basically, a file path can
 be either something "simple", defined by the regex [-+/_.a-zA-Z0-9]+ or
 it can be a quoted Haskell string, with all the bells and whistles that
 the Read instance allows. E.g., if you need commas or spaces or something
 funky in your paths, use string syntax.
 
 Oh, and you should only use '/' as directory separator, cabal should
 convert it to a proper separator based on the platform it's running
 on.
] 
[auto-ghci-libs, todos
ijones@syntaxpolice.org**20040721212235] 
[fixed up some makefile stuff and added build-depend to cabal
ijones@syntaxpolice.org**20040721203727] 
[Remove the mainModule parser (not needed anymore)
md9ms@mdstud.chalmers.se**20040716161223] 
[Some error handling for parseExecutableStanza
md9ms@mdstud.chalmers.se**20040716161211] 
[Make error printing slightly prettier
md9ms@mdstud.chalmers.se**20040716161153] 
[Create pkgConf if it doesn't exist
md9ms@mdstud.chalmers.se**20040716161107] 
[Update D.Make to the new interface
md9ms@mdstud.chalmers.se**20040619195855] 
[added rm for installed-pkg-config and .setup-config in clean rule.
ijones@syntaxpolice.org**20040714035139
 also changed installed-pkg-config to a dotfile.
] 
[cleaned up TODO
ijones@syntaxpolice.org**20040714033236] 
[mostly changed showPackageId to pkgName.
ijones@syntaxpolice.org**20040714030329
 ** I'm not sure why I was encoding the version string into the package
    name for ghc-pkg.  I got rid of this.  Seems to still be happy.
 
 ** Had to fix some test cases for this also.
] 
[Switched Cabal to new Setup.description file
ijones@syntaxpolice.org**20040714023730
 - this caused a problem since the parser doesn't accpet HUnit-1.0 as a
   package name.  That broke make-install.
 
   - The almost-correct behavior was to fix the version within Configure
     if they specify an exact version dependency.
 
     - But the question is, why have I encoded the version into the name
       string for ghc-pkg?  Shouldn't I remove this?  Was it to simulate
         version dependencies since ghc-pkg doesn't do this yet?
 
 	- Anyway,  make install works now.
] 
[made test cases work
ijones@syntaxpolice.org**20040714013159
 - new Setup.distribution for A
 - make clean && make for A in moduleTest
 - Setup.hs -> Setup.lhs, just because
] 
[Proper description file for HUnit
md9ms@mdstud.chalmers.se**20040713212908] 
[Update the build system to the new PackageDescription/BuildInfo architecture
md9ms@mdstud.chalmers.se**20040713212322
 Note that while the parser supports description files without library
 building and with multiple executable building, the build system does
 not (yet!)
] 
[Actually _use_ the parser in parsePackageDesc
md9ms@mdstud.chalmers.se**20040713212223] 
[Export the BuildInfo type
md9ms@mdstud.chalmers.se**20040713212157] 
[Refactor package description and parser to handle multiple executables use case
md9ms@mdstud.chalmers.se**20040712224327] 
[Change mainModules to a list of (filename,modname) pairs
md9ms@mdstud.chalmers.se**20040711232213] 
[implemented Extensions
ijones@syntaxpolice.org**20040713030827
 I've implemented a mapping[1] between compiler extensions and
 command-line flags for Cabal[2] for GHC, NHC98, and Hugs.  Can some
 representatives from each take a look at these and let me know if I'm
 wrong about how any of them work, whether I missed support for any of
 the compilers, or what-have-you?
 
 Some notes & questions:
 
 - I gathered these by the rather error-prone process of copying them
   from the end-user documentation.  If anyone notices anything that's
   missing, or can suggest some way I could discover missing items,
   please do.
 
 - I'm not including any non-standard modules, since maybe those will
   be handled by the packaging system.
 
 - Are the "hood debugging extensions" in NHC and Hugs compatible?
   Should they be included?
 
 - Do any of Hugs, GHC, and NHC disallow Long.Hierarchical.Module.Names
   by default?  Can they all turn them off?
 
 - Should there be a "Force98" option or something which does "-98" in
   NHC, "+98" in Hugs, and forces no other extensions in GHC?
   Presumably, it would disallow other extensions for the other
   compilers as well.
] 
[Changed implementation of "./setup clean"
ijones@syntaxpolice.org**20040711210623
 ** now does rm -r instead of trying to delete each created file
 ** added tests for make clean
 ** got rid of clean module altogether
 ** added removeFileRecursive to Utils
] 
[Basic options parser (needs work)
md9ms@mdstud.chalmers.se**20040710184405] 
[Extension parsing
md9ms@mdstud.chalmers.se**20040710182951] 
[Use unlines to make testPkgDesc more readable
md9ms@mdstud.chalmers.se**20040710181448] 
[Get rid of anyOf (choice . map try works just as fine)
md9ms@mdstud.chalmers.se**20040710181304] 
[Make parseFilePath parse just a single path
md9ms@mdstud.chalmers.se**20040710180618] 
[clean target. needs some work.
ijones@syntaxpolice.org**20040709045603
 -- |FIX: Doesn't remove directories created.  Perhaps it should just
 -- delete the .hi and .o files?  Perhaps it should just delete the
 -- entire build location recursively?
] 
[Move the responsibility for parsing AnyVersion to Dist.Package
md9ms@mdstud.chalmers.se**20040707195336] 
[Get rid of the "date=" silliness
md9ms@mdstud.chalmers.se**20040707194726] 
[made test cases more beautiful. added a .c winner
ijones@syntaxpolice.org**20040707042020] 
[reinstated many test cases. passes!
ijones@syntaxpolice.org**20040707041208] 
[Revamped parseDescription
md9ms@mdstud.chalmers.se**20040706111834
 * Implement parseDescription in terms of a splitLines function
 * Remove old code (also commented out test cases, sorry...)
 * The error monad wrapping Parsec's ParseError could use some work
] 
[extra libs and build depends. fixed version parser
ijones@syntaxpolice.org**20040706010103] 
[parsing for module-related fields (main-modules, etc)
ijones@syntaxpolice.org**20040706000143] 
[one small compile error
ijones@syntaxpolice.org**20040705233317] 
[file paths and free text, none of it perfect
ijones@syntaxpolice.org**20040705230114] 
[More parsing for required fields
ijones@syntaxpolice.org**20040629051241
 ** Changed 'package' field to be empty identifier
 ** Implemented multiple field parsing (works for version, name, license)
 ** implemented version parsing
 ** STILL have not got parseFreeText to stop correctly
 ** more testing
] 
[allowed Version types to carry state. lots of small changes
ijones@syntaxpolice.org**20040629030924] 
[pie-in-sky test cases
ijones@syntaxpolice.org**20040627051056
 ** Made PackageDescription derive Eq, for testing
 ** setPkgName and setPkgVersion convenience functions
 ** outline (commented out) for parseReqFields
 ** outline for parseFreeText
 ** type sig for parseDesc
 ** string for package description and known correct answer
] 
[small 'try' change, passes tests. some reformatting
ijones@syntaxpolice.org**20040627043958] 
[some parsing
ijones@syntaxpolice.org**20040625035753
 ** Started parser and tests cases
 ** But fails test cases
 ** Probably because of only one look-ahead
 ** reorganize for 1 look-ahead
] 
[fixed up make dist makefile target for cabal
ijones@syntaxpolice.org**20040620123400] 
[todos
ijones@syntaxpolice.org**20040620123206] 
[cleaned up some parse errors, more TODO
ijones@syntaxpolice.org**20040619212028] 
[cleaned up use of ~/.ghc-packages 
ijones@syntaxpolice.org**20040619205204] 
[added basic package description parsing (using read / show)
ijones@syntaxpolice.org**20040619192801
 ** HUnit and Cabal use the Setup.description file
 ** A works like it did before, but uses 'defaultMainNoRead'
] 
[OK, $USER was a bad choice, make it $user instead
md9ms@mdstud.chalmers.se**20040617211039] 
[Various Makefile hackery to make local install work better
md9ms@mdstud.chalmers.se**20040617205617] 
[Make the ghc build look at ~/.ghc-packages
md9ms@mdstud.chalmers.se**20040617205511] 
[more README, makefile comment
ijones@syntaxpolice.org**20040617022647] 
[cabal-in-cabal (updated makefile)
ijones@syntaxpolice.org**20040617020431
 ** Wrote Setup wrapper for cabal itself, but it kinda requires
    a bootstrap makefile.
 ** added a bunch of targets to the makefile to do the Right Thing
] 
[fixed up sdist a bit
ijones@syntaxpolice.org**20040617011324
 ** fixed bug in SDist where it wasn't looking in the hsSourceDir
 ** cleaned up a little
 
] 
[made Distribution.Make compile, clean makefile a bit
ijones@syntaxpolice.org**20040617011138] 
[TODO stuff
ijones@syntaxpolice.org**20040616144727] 
[Martin Sjo:gren implemented Distribution.Make
ijones@syntaxpolice.org**20040616144600] 
[Use -package in buildGHC
bjorn@bringert.net**20040615221434] 
[cleaned up tests
ijones@syntaxpolice.org**20040615025839
 ** used assertCmd for more stuff
 ** output test summary at the end
] 
[added HUnit test/example
ijones@syntaxpolice.org**20040615024652
 ** added some parsing of build-dep, so we could get some kind of dependency to the package stuff.  see TODO item
 ** assertCmd to simplify testing
 ** added test case basically like this:
 make semiclean
 ./setup configure --prefix=",tmp"
 ./setup build
 ./setup install --user
 ghc -package-conf $HOME/.ghc-packages  -package HUnit-1.0 HUnitTester.hs -o ./hunitTest
 ./hunitTest 
 ghc-pkg --config-file=$HOME/.ghc-packages -r HUnit-1.0
 make clean
 
] 
[cleaned up pushall / dist target
ijones@syntaxpolice.org**20040615013445] 
[TODO updatres
ijones@syntaxpolice.org**20040615013430] 
[fixed tests for new A location
ijones@syntaxpolice.org**20040615013351] 
[moved test stuff into subdirectory
ijones@syntaxpolice.org**20040615012716] 
[add -i flag to ghc to find sources
bjorn@bringert.net**20040614164419] 
[export Dependency, Extension and Version stuff from Distribution.Simple
bjorn@bringert.net**20040614163047] 
[some TODOs
ijones@syntaxpolice.org**20040613213933] 
[fixed registration problems
ijones@syntaxpolice.org**20040613212242
 ** added installpath to the library_dirs variable. this makes it so
    that register will not give the error "cannot find `libtest-1.0.a'
    on library path"
 ** added HS to library name in package config
 ** added labels to test cases
 ** added test case
 ** added ghc-pkg unregister for test case, so that it won't fail.
] 
["system cp" to copyFile (by bringert)
ijones@syntaxpolice.org**20040613203108] 
[added extensionToGHCFlag (from bringert)
ijones@syntaxpolice.org**20040613202103] 
[fixed pathSeparator typo, moved to pathJoin (rather than ++pathSeparatorString)
ijones@syntaxpolice.org**20040613194946] 
[preprocessing and hsSourceDir
ijones@syntaxpolice.org**20040613192823
 ** added "preprocessing" from bringert's code
 ** hugs now doesn't complain on build.
 ** hugs install now looks in dist directory
 ** added hsSourceDir field
] 
[ integrated some changes from bringert (separate install for Hugs and GHC)
ijones@syntaxpolice.org**20040613190420
 ** more tests for install hugs and ghc
 ** test --install-prefix
 ** checked return codes for more operations
 ** broke Install targets into separate functions for GHC and Hugs
 ** started using pathJoin and copyFile
 ** still more integration to go.
] 
[fixed typo in name of license field
bjorn@bringert.net**20040612173522] 
[added FIX about rawSystem in Hugs
bjorn@maggie**20040611190247] 
[cleaned up TODO added note RE install target
ijones@syntaxpolice.org**20040613015158] 
[ .o and .hi
ijones@syntaxpolice.org**20040613014143
 ** made system find ".o" and ".hi" files and move them into place for build.
 ** added search prefix to moduleToFilePath, as well as possible suffixes
 
] 
[mostly fiddle with target file locations (prefixes) and tests
ijones@syntaxpolice.org**20040613010142
 ** Added tests to look for .o and .hi files, as well as libHStest in destdir
 ** Added a handful of tests for sdist, and checked to see if sdist directory exists
 ** moved temporary sdist location from dist/build to dist/src
 ** added a prefix to several of the commands, so they know where to put files
 *** build  -- dist/build
 *** install -- both dist/build and install-prefix
 *** sdist -- dist/src and target directory, dist
 ** chaged ar command to output libHS file in correct place
] 
[made some test cases pass
ijones@syntaxpolice.org**20040612210138] 
[modified certain tests to not be IO [Test] since that's implicit
ijones@syntaxpolice.org**20040612205423] 
[added unit tests to each module
ijones@syntaxpolice.org**20040612203223
 Added unit tests to everthing
 ModuleTest imports them all, runs them
 Many of them are empty, however.
 Some still export IO [Test] which they should rather export [test].
 must fix :)
] 
[fixed conflict
ijones@syntaxpolice.org**20040611152650] 
[fixed some unused imports and variable shadowing
bjorn@bringert.net**20040610204326] 
[added clean target
bjorn@bringert.net**20040610204303] 
[escapes in windows code
ijones@syntaxpolice.org**20040610145010] 
[mostly testing, some tweaks to install and build
ijones@syntaxpolice.org**20040610043304
 ** Added some tests
 ** moved build output to dist/build
 ** helped ar find objects
 ** eurohaskell todo list
 
] 
[respects --user flag
ijones@syntaxpolice.org**20040607010802
 ** made register command respect --user flag
 ** changed install to put the sources in the place that register
    expects it, though I'm not sure if it's exactly right.
 
] 
[parsing for --user and --global flags
ijones@syntaxpolice.org**20040607004449
 * implemented --user and --global parsing for Install and Register commands
 * But but register still doesn't actually pay attention.
 
] 
[install-prefix and friends
ijones@syntaxpolice.org**20040606232915
 * enumerated some imports
 * used --install-prefix flag
 * implemented conditional register at install time
 ** breaks install for two reasons:
 1) install will try to register
 2) register is broken
 * Register is broken for three reasons:
 1) --user and --system aren't implemented
 2) install doesn't put the files in the right place (prefix/lib/package-version)
 3) install doesn't put the .hi and .o files in the right place.
 
 But you can still use install-prefix to test.
] 
[added pushall target
ijones@syntaxpolice.org**20040605214642] 
[some TODOs
ijones@syntaxpolice.org**20040605214406] 
[initial sdist
ijones@syntaxpolice.org**20040605203928
 - Moved file utilities into Utils module (big diff)
 - implemented sdist for tarballs (FIX: calls out to tar)
] 
[user specifies modules, not files
ijones@syntaxpolice.org**20040605193904
 So the user can say what modules they want, and the system will go
 find the filenames.  This works for installation.
 
 Changed some FilePaths back into Strings
] 
[moduleToFilePath
ijones@syntaxpolice.org**20040605015441
 * some basic tests
 * moduleToFilePath which converts a module name to a filename and
   searches the directory for that file, returning the path name if it
   exists
] 
[basic installation
ijones@syntaxpolice.org**20040605011804
 * Implemented basic installation
 ** Doesn't work for ghc or nhc-style, basically can copy source files to target directory
 * Some module names to filepaths, this may get changed back.
 
] 
[basic NHC build implementation with hmake
ijones@syntaxpolice.org**20040523234541] 
[cleanup
ijones@syntaxpolice.org**20040523234215
 * Cleaned up lots of warnings
 * Qualified imports
 * Type sigs
] 
[Register almost working
simonmar@microsoft.com**20040521164155] 
[Fixes to building, build C bits too
simonmar@microsoft.com**20040521154707] 
[First cut at 'setup build'
simonmar@microsoft.com**20040521153537] 
[Nicer messages for each pass
simonmar@microsoft.com**20040521143455] 
[Add stubs for all commands, various other updates
simonmar@microsoft.com**20040521142428] 
[Improve command-line parsing
simonmar@microsoft.com**20040521095647] 
[made configure even more verbose
ijones@syntaxpolice.org**20040430101803] 
[made verbose, works for hugs
ijones@syntaxpolice.org**20040430100945
 * Removed conflicts of last commit
 * made configure more verbose
 * fixed name of hugs packaging tool
 * slight improvement to some error messages
 
] 
[isaac's updates and notes
ijones@syntaxpolice.org**20040430093838] 
[Major rewrite of specification
simonpj@microsoft.com**20040429163552] 
[Move utils to D.S.Utils, setup droppings, basic impl. of Setup
simonmar@microsoft.com**20040429145733] 
[implementation of configure that works for GHC on simon 's machine
simonmar@microsoft.com**20040429142609] 
[added groupAllBy
ijones@syntaxpolice.org**20040429135752] 
[cleanup and reorg
ijones@syntaxpolice.org**20040429114512
 * Added Simple{Register,Configure}
 * Moved Simple.Default to Simple.hs
 * Moved some stuff out of Misc (into Register and configure)
 * Invented new Compiler Extensions
] 
[some cleanup
ijones@syntaxpolice.org**20040429112238] 
[parsed ConfigFlags, some code cleanup
ijones@syntaxpolice.org**20040429111822] 
[Remove snapshots from package versions
simonmar@microsoft.com**20040429104542] 
[renamed some command-line tests
ijones@syntaxpolice.org**20040429103622] 
[command parsing, changed packageinfo
ijones@syntaxpolice.org**20040429102803] 
[some cleanup
ijones@syntaxpolice.org**20040429092428] 
[basic options parsing
ijones@syntaxpolice.org**20040429090446
 * Copied GetOpt and altered it to allow unknown options to flow through
   instead of signaling an error.
 * Implemented parsing of all the flags
 * No parsing of commands yet
 * Broke up test suite a bit
 * Enumerated commands
] 
[renamed package databases again
ijones@syntaxpolice.org**20040428162716] 
[lots of TODO updates
ijones@syntaxpolice.org**20040428155759] 
[more unit tests. find the comp location
ijones@syntaxpolice.org**20040428084811] 
[added more test cases which all fail
ijones@syntaxpolice.org**20040427165851] 
[used runTestTT to actually execute the Setup tests
ijones@syntaxpolice.org**20040427155146] 
[hunit tests and export support
ijones@syntaxpolice.org**20040427154503] 
[Simon's additions to the overview doc
simonpj@microsoft.com**20040427161713] 
[Update Distribution.Version
simonmar@microsoft.com**20040427155356
 Change the Version type in Distribtion.Version to be a combination of
 a branch ([Int]) and a list of arbitrary tag strings.  This is
 intended to be a generic version type, where the interpretation of
 ordering is application-dependent.
 
 Distribution.Version also has lots of version-related stuff that is
 specific to packages: version ranges (the VersionRange type), and
 concrete show/parse functions for package versions.
] 
[sgml content
ijones@syntaxpolice.org**20040427152735] 
[documentation, including proposal and more TODO
ijones@syntaxpolice.org**20040427152458] 
[added TODO
ijones@syntaxpolice.org**20040427134352] 
[created Simple subdir, compile, and toward -Wall clean
ijones@syntaxpolice.org**20040427134159
 Added the Simple directory
 Moved Build and Install to SImple
 moved defaultMain to Simple/Default
 toward -Wall cleanliness
 
] 
[made compile
ijones@syntaxpolice.org**20040427132913] 
[moved command line stuff to Setup
ijones@syntaxpolice.org**20040427132605] 
[Flavour => CompilerFlavor
simonmar@microsoft.com**20040427114047] 
[basic todo
ijones@syntaxpolice.org**20040427104427] 
[added todo
ijones@syntaxpolice.org**20040427085340] 
[Added basic Setup.hs
ijones@syntaxpolice.org**20040427083442
 Added basic Setup.hs functionality.  Caused a lot of imports, and
 cleanup of some modules.  Derived show in various places.
 
 Many dummy functions with "FIX".  Should implement some unit tests
 next.
] 
[added basic install and some package imports
ijones@syntaxpolice.org**20040426190910] 
[added ModuleTest, made everything compile
ijones@syntaxpolice.org**20040426171659] 
[made hierarchy; new files; added headers
ijones@syntaxpolice.org**20040426163819] 
[initial Package and Use config import
ijones@syntaxpolice.org**20040426162822] 
Patch bundle hash:
6f78827205780e3cc5a9039f54792e2a703b1269
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.7 (GNU/Linux)

iD8DBQFIIii0vpDo5Pfl1oIRCrzdAJ9P73UL80dFMwBFN+03882CGMpzngCglMPK
VPiW0BN9hZ5LIvwXRLCMKtM=
=IhWv
-----END PGP SIGNATURE-----
