
New patches:

[Pass additional parameters in generated shell scripts
Matthias Kilian <kili@outback.escape.de>**20100516161230
 Ignore-this: 73d7f4da34a1de1bb90f592e4febe23f
 While here, simplify the argument list construction in
 invocationAsShellScript a little bit.
] hunk ./Distribution/Simple/Program/Script.hs 53
        ++ [ (case minput of
               Nothing    -> ""
               Just input -> "echo " ++ quote input ++ " | ")
-         ++ quote path ++ concatMap (\arg -> ' ':quote arg) args ]
+         ++ unwords (map quote $ path : args) ++ " \"$@\""]
 
   where
     quote :: String -> String

Context:

[Add some diagnostic info to some internal errors
Ian Lynagh <igloo@earth.li>**20100515193810
 When giving an "internal error: unexpected package db stack" error, say
 what the stack is.
] 
[Fix warnings
Ian Lynagh <igloo@earth.li>**20100509003309] 
[Add the hs output dir to the C include dirs when compiling C code
Duncan Coutts <duncan@haskell.org>**20100422001101
 Ignore-this: 11ff682fcceb3e0bede08f316c46c654
 This allows C files in a package to include the _stub.h files
 that ghc generates. This is needed for the C code to be able
 to call the C functions exported using the FFI.
] 
[Add the autogen dir to the C include dirs when checking foreign libs
Duncan Coutts <duncan@haskell.org>**20100422000908
 Ignore-this: f014681ebb019fa310cbf4a87d18637e
 This allows packages to generate .h files and stick them in the
 autogen dir, and still have local .h files include those generated
 header files. Used in gtk2hs.
] 
[Do not pass the CopyFlags to the per-compiler installLib/Exe functions
Duncan Coutts <duncan@haskell.org>**20100420225830
 Ignore-this: 62277568628a3eed636c06f4df57353e
] 
[Bump version number
Duncan Coutts <duncan@haskell.org>**20100420224011
 Ignore-this: 135d62045b5e6aedeeb865797b15cf53
] 
[Better error message when installing for unsupported compilers
Duncan Coutts <duncan@haskell.org>**20100420223935
 Ignore-this: 2f1369d9028e1f7639e73735aa25c62
] 
[Pass the exe/lib to the per-compiler installLib/Exe functions
Duncan Coutts <duncan@haskell.org>**20100420223652
 Ignore-this: 5ddfb4517bb0f89529256f8ae75d5854
 So the generic code iterates over the libs/exes rather than
 the per-compiler code doing that. It'll help when we have
 more complex inter-component dependencies.
 This is also the proper fix for ticket #525.
] 
[cleaning up and removing warnings in UHC support
Andres Loeh <andres@cs.uu.nl>**20100330171045
 Ignore-this: 1adb659d170f9cb7478e0110dcc198f7
] 
[significant progress on UHC support
Andres Loeh <andres@cs.uu.nl>**20100330170211
 Ignore-this: 193f161988c2f03032f3b73c290a8043
] 
[started on UHC support
Andres Loeh <andres@cs.uu.nl>**20091215125422
 Ignore-this: d3dc77aaf26be3fc1696eaf4a9d8e0f1
] 
[Use Setup.hs when calling setup
Duncan Coutts <duncan@haskell.org>**20100321111750
 Ignore-this: 117881f91837aa2755549edff49063fe
 In case we've got a compiled Setup binary
] 
[Allow filepath-1.2.*
Simon Marlow <marlowsd@gmail.com>**20100505101313
 Ignore-this: c5bf7a356c3347b2d907e8ad7e2d7f3a
] 
[Add the new DoRec extension to Language.Haskell.Extension
Ian Lynagh <igloo@earth.li>**20100416205627
 Part of GHC trac #3968.
] 
[Remove BSD4 from the list of known/suggested licenses
Duncan Coutts <duncan@haskell.org>**20100416040538
 Ignore-this: 8903f1d478b7c034143f700ef0873c75
 We do not ever want to suggest the use of the BSD4 license.
 This will fix a QA check message and the 'cabal init' command.
 This change should be safe to push into the stable 1.8 branch.
] 
[Add a VERSION_<package> define for each package in cabal_macros.h
Mathieu Boespflug <mboes@tweag.net>**20100329104632
 Ignore-this: a3f8a43f9f15b044f7e9c5a31359717
 
 The MIN_VERSION_<package> macros are useful to test whether we have at
 least a given version of a dependency, but we can't extract the actual
 version of dependency using this macro. This patch makes the version
 of each dependency available to the code of the cabal package, which
 can be useful when constructing global names in Template Haskell, for
 instance.
 
] 
[Also check compiling C headers at configure-time
Duncan Coutts <duncan@haskell.org>**20100415063657
 Ignore-this: ce1d74257f28099530eaa2cf8da4d42
 So we now both check if the headers can be pre-processed and separately
 if they can be compiled. If it fails the pre-processing check then it
 is usually (but not always) a missing header. If it fails to compile
 then it is definately borked, not missing. Error messages reflect this.
] 
[better error messages for erroneous local C headers
mcallister.keegan@gmail.com**20100409022543
 Ignore-this: d3840ee01cf2076fe89d14e7ccc2ccac
 Addresses the issue in tickets #532, #648.
 When the all-together test of C libraries and headers fails, use only the
 preprocessor to probe the headers individually.  If they all check out,
 give a more equivocal error message and suggest -v3.
 
] 
[document all the language extensions
mcallister.keegan@gmail.com**20100409060559
 Ignore-this: 21de95e9f614235dd2c447297c33fc0f
 Resolves ticket #344.
] 
[Various minor improvements to c2hs support
Duncan Coutts <duncan@haskell.org>**20100413083252
 Ignore-this: 37c3a2896d2d6229408f8db300817a92
   - ticket #327: require c2hs version 0.15 as minimum
   - ticket #536: pass c2hs include dirs of dependent packages
   - ticket #537: pass c2hs location of gcc -E
] 
[Get ghc, hsc2hs and cpphs programs more robustly in preprocessing
Duncan Coutts <duncan@haskell.org>**20100412023642
 Ignore-this: 14e2d1dd686dbb3256178729c4af5331
 Avoid pattern match failure in obscure circumstances
 Should fix ticket #383
] 
[Move .hs-boot file pre-processor hack to a more sensible place
Duncan Coutts <duncan@haskell.org>**20100412015127
 Ignore-this: 3608adbc406e99018862efa996c1ad96
] 
[Also set -stubdir for haddock-stomping workaround
Duncan Coutts <duncan@haskell.org>**20100411194550
 Ignore-this: f4ca351bb11ff3ffcc1f5e0332dd9db4
 Probably needed in the case of foreign exports and TH.
] 
[Adjust cpp options passed to cpp, c2hs and hsc2hs
Duncan Coutts <duncan@haskell.org>**20100411194213
 Ignore-this: 7d65b0ddcaac8bdda9954aee5a81fe1d
  * Not changed for cpp, just code refactored.
  * For c2hs add cpp-options and the sysdefines (-D${os}_BUILD_OS etc)
  * For hsc2hs add the sysdefines
] 
[de-haskell98 wash2hs
gwern0@gmail.com**20100309015416
 Ignore-this: 3b47d4982f1ebe40d9d78d71a9ab2d4d
] 
[de-haskell98 twoMains
gwern0@gmail.com**20100309015328
 Ignore-this: 48f03ca94606814463112fdcc8b9e98f
] 
[Add markdown version of user guide
Duncan Coutts <duncan@haskell.org>**20100411161012
 Ignore-this: 3bee08cc1631204ade2c7d8086f52dfc
 Plan is to switch over from docbook xml.
] 
[Workaround the fact that haddock stomps on our precious .hi and .o files
Duncan Coutts <duncan@haskell.org>**20100408225156
 Ignore-this: 301321a9ad31195da3cf78d8a0a72edd
 When using "haddock --optghc-XTemplateHaskell" haddock will write out .o
 and .hi files. This is bad because it replaces the ones we previously
 built. This results in broken packages later on. Of course haddock
 should not do this, it should write temp files elsewhere. The workaround
 is to tell haddock to write the files to a temp dir.
] 
[Remove an out-of-date comment
Ian Lynagh <igloo@earth.li>**20100326131752] 
[Factorise duplicate finding in package description checks
Duncan Coutts <duncan@haskell.org>**20100320215132
 Ignore-this: 9a0e068b05f611f77bee85ca5b943919
] 
[Fix local inplace registration for ghc-6.12
Duncan Coutts <duncan@haskell.org>**20100320172108
 Ignore-this: 197ec567d3bf300c6ed6430f03a5409d
 This is for the case of intra-package deps where the lib has to be
 registered into a local package db. We use "-inplace" suffix for
 the local installed package ids (rather than using an ABI hash).
] 
[On windows, pick up ar.exe from the ghc install before looking on the $PATH
Duncan Coutts <duncan@haskell.org>**20100320143643
 Ignore-this: a3931cad3a8fd821a9b1ddd893db8c32
 Some ar.exe versions floating around seem to have weird non-posix behaviour.
] 
[Document the "manual" attribute of flags
Ian Lynagh <igloo@earth.li>**20100317203744] 
[Tweak doc Makefile
Ian Lynagh <igloo@earth.li>**20100317202418] 
[Fix mismatch between arch and os variables in D.S.InstallDirs interpolation
Andrea Vezzosi <sanzhiyan@gmail.com>**20100119031642
 Ignore-this: 3a66bd9771f294fc1f52be8824ca051b
] 
[Get the correct value of $topdir on Windows with GHC 6.12.1
Ian Lynagh <igloo@earth.li>**20091230204613] 
[Revert the change to filter out deps of non-buildable components
Duncan Coutts <duncan@haskell.org>**20091229222533
 Ignore-this: 7f6f18997e28b843422d2c55a8bce302
 It does not work as intended and gives inconsistent results between
 cabal install and cabal configure. The problem with the approach was
 that we were filtering out the dependencies of non-buildable components
 at the end. But that does not help much since if one of the deps of
 the non-buildable component were not available then we would have
 failed earlier with a constraint failure. A proper solution would have
 to tackle it from the beginning, not just as a filter at the end.
 The meaning of build-depends and buildable: False needs more thought.
] 
[Silence warning about unused paramater
Duncan Coutts <duncan@haskell.org>**20091229211649] 
[Remove deprecated --copy-prefix= feature
Duncan Coutts <duncan@haskell.org>**20091228203513
 It's been deprecated since Cabal 1.1.4 (over 3 years).
 The replacement since then has been --destdir=
] 
[Fix generating Paths_pkgname module with hugs
Duncan Coutts <duncan@haskell.org>**20091228202618
 In the case that the progsdir is not relative to the $prefix
] 
[Change preprocessModule to preprocessFile
Duncan Coutts <duncan@haskell.org>**20091228190125
 So we can stop pretending that "main-is: foo.hs" is a module name.
 Also allows us to deprecate ModuleName.simple which bypasses the
 ModuleName type invariant.
] 
[Move registering to per-compiler modules, fix inplace register for hugs
Duncan Coutts <duncan@haskell.org>**20091228025220] 
[Add a number of TODOs
Duncan Coutts <duncan@haskell.org>**20091228024948] 
[Fix priority of the two global hugs package dbs
Duncan Coutts <duncan@haskell.org>**20091228024849] 
[Fix name clashes in hugs module
Duncan Coutts <duncan@haskell.org>**20091228024814] 
[Add parenthesis to macros in cabal_macros.h
Antoine Latter <aslatter@gmail.com>**20091229023358
 Ignore-this: 5c5e7244d10bcd82da2cbf4432b30a6d
 Now this like "#if !MIN_VERSION_base(4,2,0)" will work
] 
[Make the datadir follow the $prefix on Windows
Duncan Coutts <duncan@haskell.org>**20091228165056
 Ignore-this: ce33a328dbf2d1e419cf6e5047bff091
 This is slightly experimental, we'll see how it goes. See ticket #466.
] 
[Simplify getInstalledPackages and callers
Duncan Coutts <duncan@haskell.org>**20091223234857
 Ignore-this: 7927e992e0b040347dc24530219eb8eb
 No longer returns Maybe, we can find installed packages for all
 the compilers we support (and this feature is a requirement for
 support for new compilers).
 This is an API change so cannot merge to Cabal-1.8.x branch.
] 
[Implement support for hugs and nhc98 package databases
Duncan Coutts <duncan@haskell.org>**20091223233557
 Ignore-this: aa12e2a278e89544ead82d7c8d3b325a
 That is, work out which packages are installed for hugs and nhc98.
 In both cases there is special support for the core packages.
 In future both should use the standard method when they supply
 proper installed package info files for the bundled libraries.
] 
[Find the version of hugs
Duncan Coutts <duncan@haskell.org>**20091222175415
 This is really hard and rather nasty.
] 
[Convert XXX comments to TODO or FIXME as appropriate
Duncan Coutts <duncan@haskell.org>**20091222160247] 
[Fixes for compiling Cabal with hugs
Duncan Coutts <duncan@haskell.org>**20091223103916
 Ignore-this: f49c719d33e3909996f391e80911c51c
] 
[Make lack of language extensions an error not a warning
Duncan Coutts <duncan@haskell.org>**20091216204505
 Also improve the error message somewhat
] 
[Specify DOCTYPE when generating userguide html
Duncan Coutts <duncan@haskell.org>**20091216035321
 Ignore-this: 9d3b09e3c593a8d5f39b691ef2ceb377
 Useless docbook tools.
] 
[Registering packages needs all the package dbs listed
Duncan Coutts <duncan@haskell.org>**20091211133233
 Ignore-this: 249cc7ae1452bfa8e970f0ba24d4ff5f
 Important for the case of registering inplace when we're using a
 specific package db, e.g. when doing isolated builds.
] 
[Switch a few distribution checks to build warnings
Duncan Coutts <duncan@haskell.org>**20091202143549
 Ignore-this: bbadf449113d009b51837bc1dd3488af
 In particular the one about -prof since this leads to borked packages.
] 
[Make it so cabal passes the dylib-install-name when building dynamic libraries on Mac OS/X.
Ian Lynagh <igloo@earth.li>**20091204144142
 This is a rerecord of
     Stephen Blackheath <oversensitive.pastors.stephen@blacksapphire.com>**20091001053101
 to avoid conflicts.
] 
[Take line endings into account in IOEncodingUTF8 mode
Duncan Coutts <duncan@haskell.org>**20091202002553
 Ignore-this: 59a60d9adaf90e94b69336bbb5619d2f
 When collecting the output from programs.
] 
[Install shared libraries as executable files
Ian Lynagh <igloo@earth.li>**20091201145349
 Fixes GHC trac #3682. Patch from juhpetersen.
] 
[Fix warnings
Ian Lynagh <igloo@earth.li>**20091129164643] 
[Bump version in HEAD branch to 1.9.0
Duncan Coutts <duncan@haskell.org>**20091129161734
 Ignore-this: bbbc9fbb9abdee3f51bdcf972554d93d
 The 1.8.x branch remains at 1.8.0.1
] 
[Update changelog for 1.8.x release
Duncan Coutts <duncan@haskell.org>**20091129161613
 Ignore-this: 43b797ce87ba439869c080e0a8e20eab
] 
[Package registration files are always UTF8
Duncan Coutts <duncan@haskell.org>**20091129153341
 Ignore-this: 7863e05c5514d1fee5165fda3815b116
 As is the output from ghc-pkg dump.
] 
[Add support for text encoding when invoking a program
Duncan Coutts <duncan@haskell.org>**20091129153110
 Ignore-this: c839875b970d31200d98ead9c8730215
 Can be either locale text or specifically UTF8.
 Also tidy up the rawSystemStd* variants and pass
 a text/binary mode flag for the input and output.
] 
[Change where we add a trailing newline when showing InstalledPackageInfo
Duncan Coutts <duncan@haskell.org>**20091128171755
 Ignore-this: 5e91f3e0988cf60572eefc374735727f
 Do it in the pretty-printing rather than just before writing the file.
] 
[Update docs on a couple util functions
Duncan Coutts <duncan@haskell.org>**20091128171114
 Ignore-this: f8df6d6f06dcc2f173180fa063aba091
] 
[Update docs for class Package
Duncan Coutts <duncan@haskell.org>**20091128170909
 Ignore-this: 2b36ab0d8c422465d489ca2dc7010204
] 
[Be less verbose when checking foreign deps
Duncan Coutts <duncan@haskell.org>**20091128170810
 Ignore-this: 576c714db6ac0dad7220f9824552c30c
] 
[Add backwards compat version of findProgramOnPath
Duncan Coutts <duncan@haskell.org>**20091128152444
 Ignore-this: be475bbcbb539d2f2f834a2f0ca235f9
 Break a couple fewer package's Setup.hs files
] 
[Experimentally, change order of user-supplied program args
Duncan Coutts <duncan@haskell.org>**20091120135619
 Ignore-this: f9b8b4ecc68ee8b2294768c95a2ef774
 Put them last rather than first.
] 
[Tweak layout to work with alternative layout rule
Ian Lynagh <igloo@earth.li>**20091129163614] 
[Fix building with base 3
Duncan Coutts <duncan@haskell.org>**20091117141958
 Ignore-this: 5ee71207064f5298bb40bafbf537d684
] 
[Canonicalise the package deps returned by finalizePackageDescription
Duncan Coutts <duncan@haskell.org>**20091109193556
 Ignore-this: eb489503c4a9e27dd8d427cf707461f9
 The guarantee is supposed to be that each package name appears at most
 once with all the constraints for that dependency. The cabal-install
 planner relies on this property.
] 
[Improve the error message for missing sh.exe on Windows
Duncan Coutts <duncan@haskell.org>**20091109182624
 Ignore-this: 5801ce5598387ad238e61a075285ddf0
 When ettempting to run ./configure scripts. Fixes ticket #403.
] 
[Deprecated PatternSignatures in favor of ScopedTypeVariables
Niklas Broberg <niklas.broberg@gmail.com>**20090603121321
 Ignore-this: cc1cb044e3db25cb53e1830da34a317b
] 
[JHC support requires jhc >= 0.7.2
Duncan Coutts <duncan@haskell.org>**20091109113232
 Ignore-this: 97e456357263977187c2768c957b8be7
] 
[Remove some commented out code
Duncan Coutts <duncan@haskell.org>**20091106133047
 Ignore-this: f4a122d90207de861acc5af603cf55ea
] 
[JHC.getInstalledPackages: remove check for --user flag, since JHC-0.7.2 supports local packages
haskell@henning-thielemann.de**20091029103515] 
[JHC.buildLib: make this working for JHC-0.7.2
haskell@henning-thielemann.de**20091028223004] 
[JHC.getInstalledPackages: adapt to package lists emitted by jhc-0.7.2
haskell@henning-thielemann.de**20091028211802] 
[Bump minor version
Duncan Coutts <duncan@haskell.org>**20091104180106
 Ignore-this: 6ccbdc1bfa80f66cf74584ff66018582
 A few changes since version 1.8.0 that was released with ghc-6.12rc1
] 
[Tweak the assertion on overall package deps
Duncan Coutts <duncan@haskell.org>**20091104175912
 Ignore-this: abe2735469828829219938ee4275ebda
] 
[Exclude non-buildable components when constructing the overall package deps
Duncan Coutts <duncan@haskell.org>**20091104130435
 Ignore-this: 60a11926991ce894da07f3e4c54ed257
] 
[Pass profiling flag to ghc when compiling C files.
Bertram Felgenhauer <int-e@gmx.de>**20091103165558
 Ignore-this: 422eaeca8c7246170931adecc8556f15
 The main effect of this change is that the PROFILING macro gets defined
 when compiling C files and profiling is enabled. This is useful for code
 that inspects closures.
 
 Caveat:
   The change relies on the fact that Cabal does not track dependencies
   of C files but recompiles them every time. If dependency tracking is
   added, we'll need different extensions for profiling and non-profiling
   object files.
] 
[Build with ghc-6.6
Duncan Coutts <duncan@haskell.org>**20091028161849
 Ignore-this: 5042dc4f628b68d9d9e40d33837e9818
] 
[Fix haddock markup
Duncan Coutts <duncan@haskell.org>**20091021124111
 Ignore-this: 7a301d4ede384f2256b02dbf179c0d9b
] 
[Use -Wl,-R, for the gcc rpath flag.
Duncan Coutts <duncan@haskell.org>**20091006211326
 Ignore-this: 2323285313bad2ec91e4e27a0ae6177
 Apparently it was only gcc on Solaris that groks -R directly,
 so we have to use -Wl to pass it through to ld. Both GNU and
 Solaris ld grok -R, only GNU ld accepts -rpath.
] 
[Only pass -B... to gcc for GHC < 6.11
Ian Lynagh <igloo@earth.li>**20091012144707
 It is no longer needed in 6.12.
] 
[Don't complain if there is no ghc rts package registered
Duncan Coutts <duncan@haskell.org>**20091006172618
 Ignore-this: 8634380cb75891a13988123bbbfd372b
] 
[I was wrong, the test was correct before.
Duncan Coutts <duncan@haskell.org>**20091006172046
 Ignore-this: e1967271893b0d745d25a9ee09b624cb
 
 rolling back:
 
 Mon Oct  5 17:32:02 BST 2009  Stephen Blackheath <grossly.sensitive.stephen@blacksapphire.com>
   * Fix test case InternalLibrary4 on account of a change in Cabal's behaviour.
 
     M ./tests/PackageTests/BuildDeps/InternalLibrary4/Check.hs -5 +4
] 
[Unbreak configure for packages that depend on different versions of themselves
Duncan Coutts <duncan@haskell.org>**20091006171845
 Ignore-this: bce724e750b48ffa7e669c6573b49a8d
] 
[Bump version number to 1.8.0
Ian Lynagh <igloo@earth.li>**20091006160120] 
[Loosen the invariant, it was too strict
Simon Marlow <marlowsd@gmail.com>**20091006133756
 Ignore-this: 6087cfc11c19d4bac2fddcf007e9bb7c
 The packages do not need to be in the same order when sorted by
 package name as when sorted by InstalledPackageId.
] 
[Fix test case InternalLibrary4 on account of a change in Cabal's behaviour.
Stephen Blackheath <grossly.sensitive.stephen@blacksapphire.com>**20091005163202
 Ignore-this: abc7f45e5fe6eb8e28dee5bfe406b16c
] 
[Keep asserts for testing pre-releases
Duncan Coutts <duncan@haskell.org>**20091005161425
 Ignore-this: ca9406c17afcba272383eb3f66305a
] 
[Fix configuring for packages with internal lib deps.
Duncan Coutts <duncan@haskell.org>**20091005161235
 Ignore-this: 31d508508230864d43e3df033dd687d1
 Was using the wrong set of packages when doing the finalise.
] 
[Bump minor version
Duncan Coutts <duncan@haskell.org>**20091005114150
 Ignore-this: 85fe7d55bac00035cd92c4ffc3f71c2
] 
[Stop converting between installed package id and source package id
Duncan Coutts <duncan@haskell.org>**20091005111806
 Ignore-this: ed5b14ec4010ab1b8d5cde0ac5ac83e5
 In the LocalBuildInfo, for each component, for the list of component
 dependencies, keep both the InstalledPackageId and the PackageId.
 That way we don't need to keep converting the InstalledPackageId
 to the PackageId, via the package index (which is just horrible).
] 
[Reduce the insanity in Configure
Duncan Coutts <duncan@haskell.org>**20091005110957
 Ignore-this: 93fa0d351701e6317afb46df94e64777
 It was making so many different kinds of package index and converting
 back and forth between package id and installed package id that it
 made my brain hurt. Thou shalt not convert blithly between package Id
 and installed package Id for thou know not what thy doest.
] 
[Get and merge ghc's package dbs more sensibly
Duncan Coutts <duncan@haskell.org>**20091005110714
 Ignore-this: fc4b3c983dc7aa0ebc362e990c6a8a2b
 Use the merge rather than just making a big list.
] 
[Rewrite the PackageIndex again
Duncan Coutts <duncan@haskell.org>**20091005110330
 Ignore-this: ea36efcd3ee2bb5dae40de998b6b4de6
 It's a unified index again, rather than one for looking up by an
 InstalledPackageId and one for the source PackageId. The new one
 lets you look up by either. It also maintains the order of
 preference of different installed packages that share the same
 source PackageId. In configure we just pick the first preference.
] 
[Don't use -#include flag with ghc-6.12
Duncan Coutts <duncan@haskell.org>**20091004154334
 Ignore-this: b520998e5b5213155de0cba1680e1338
] 
[Fix sdist for packages using .lhs-boot files
Duncan Coutts <duncan@haskell.org>**20091002145221
 Ignore-this: eaed8d1170bc81b9baa3825f8b662adc
] 
[Simplify the use of simplifyVersionRange
Duncan Coutts <duncan@haskell.org>**20090920153433
 Ignore-this: fd41587284e064b185cd1db423ddf493
 Use the simplifyDependency wrapper
] 
[Fix Integer defaulting
Duncan Coutts <duncan@haskell.org>**20090920153249
 Ignore-this: a747789b708b34cf3589a4c5a9fdb9cd
] 
[Don't simplify empty/inconsistent version ranges
Duncan Coutts <duncan@haskell.org>**20090920151647
 Ignore-this: aeddcb5625dd29963036c07be5a9c2da
 They all get squashed to ">1 && <1" which while canonical is not helpful.
] 
[Fix pretty printing of version ranges to use parens in the right places
Duncan Coutts <duncan@haskell.org>**20090917042612
 Ignore-this: 198737aa806fa92774494f6e33344a84
] 
[Fix the depth calculation for the version range expression check
Duncan Coutts <duncan@haskell.org>**20090917032748
 Ignore-this: da1f0fefd17c1269f39e93e4623dc274
 Previously it was complaining about expressions like
  >= 2 && < 3
 because internally >= is represented in terms of >, == and ||.
 The fix is to use new fold that gives a view with the extra
 syntactic sugar so that <= and <= can be counted as one.
] 
[Modify foldVersionRange and add foldVersionRange'
Duncan Coutts <duncan@haskell.org>**20090917032713
 Ignore-this: cdb7ff28869dd8637cbc7d1a02620c5b
 Now foldVersionRange gives a view with no syntactic sugar
 while foldVersionRange' gives a view with the syntactic sugar.
] 
[Fix the version-range parser to allow arbitrary expressions over constraints.
Malcolm.Wallace@cs.york.ac.uk**20090911111643
 Previously, only a single conjunction (&&) or disjunction (||) was
 parseable, despite an internal representation that permits arbitrary
 combinations.  Now, any sequence of (&&) and (||) combining forms is
 parsed.  (&&) binds more tightly than (||).
] 
[Fix deadlocks when calling waitForProcess; GHC trac #3542
Ian Lynagh <igloo@earth.li>**20090928174553
 We now wait on MVars indicating that stdout and stderr have been
 closed before making the waitForProcess call.
] 
[Update dependencies
Ian Lynagh <igloo@earth.li>**20090920152411] 
[Install dyn way hi files
Duncan Coutts <duncan@haskell.org>**20090908142853
 Ignore-this: 9de867381e500fda321a29e137e71414
] 
[Use -R flags for hsc2hs wherever we use -L flags on ELF platforms.
Duncan Coutts <duncan@haskell.org>**20090828233704
 Ignore-this: 357aa0d1865a1fe6bf37fb6f41e2c93a
 This fixes use of hsc2hs in cases where things like libgmp
 is not on the system's dynamic linker path. It's ok to use
 rpath in the case of hsc2hs because the linked programs are
 run immediately and never installed.
] 
[Use -package-id rather than -package with GHC 6.11+
Simon Marlow <marlowsd@gmail.com>**20090906112416
 Ignore-this: a9cb1e8684411ea3fa04e0d54826f76b
] 
[Add the ABI hash to the InstalledPackageId for inplace registrations too
Simon Marlow <marlowsd@gmail.com>**20090826155157
 Ignore-this: f10a1e90492a356a8ed8ed78fd056176
 Previously, we just added a -inplace suffix, but this will cause
 problems when developing multiple packages inplace, and then
 installing them.
 
 Also, there was a round of refactoring: registerPackage now takes the
 InstalledPackageId as an argument, and generateRegistrationInfo is
 exposed for constructing it.  This means that callers of
 registerPackage get to munge the InstalledPackageInfo before it is
 registered.
] 
[Bump minor version to 1.7.4
Duncan Coutts <duncan@haskell.org>**20090824010433
 Ignore-this: 360111493090f2cf86a65dfa2bd41da0
 due to recent API changes
] 
[Change finalizePackageDescription to take dep test function
Duncan Coutts <duncan@haskell.org>**20090822234256
 Ignore-this: 573c4d60e9c40f8814371a6c3a0b8c9
 Ths is instead of taking a set of installed packages. This insulates
 us from the representation of the installed package set which is good
 since we now have several representations. It also opens the door to
 generalising the kinds of constraints we can handle.
] 
[Add a HACKING file
Duncan Coutts <duncan@haskell.org>**20090822151636
 Ignore-this: 222a83edbe3bf27574bfe51df7f109f0
 Seems people do not know that the source guide exists.
] 
[Add a bunch of TODOs and minor doc changes
Duncan Coutts <duncan@haskell.org>**20090822134721
 Most TODOs related to the new InstalledPackageId stuff.
] 
[Refactor and simplify the fixup in "hc-pkg dump"
Duncan Coutts <duncan@haskell.org>**20090822134408
 We have to set the installedPackageId if it's missing.
 There's no need for this to depend on the version of ghc which
 is nice since this module is not supposed to be ghc specific.
] 
[Rename the InstalledPackageInfo field package to sourcePackageId
Duncan Coutts <duncan@haskell.org>**20090822134111
 The old one was always too generic and it now contrasts
 better with the new installedPackageId field.
] 
[Use a simpler method for the check on the base-upper-bound
Duncan Coutts <duncan@haskell.org>**20090812133313
 Ignore-this: 9234cc76670a135906c8b7d2e19e6199
 The key point is that we do not complain for packages
 that do not depend on base at all (like ghc-prim).
] 
[Add a unuque identifier for installed packages (part 9 of 9)
Simon Marlow <marlowsd@gmail.com>**20090806132217
 Ignore-this: 942731e2e26cfad6c53e728b911f1912
 
 When registering, choose the InstalledPackageId.
 
  - When registering inplace, use "foo-1.0-inplace"
 
  - If this isn't GHC, just use "foo-1.0-installed"
 
  - When installing a package with GHC, call
    Distribution.Simple.GHC.libAbiHash to get the hash, and
    use "foo-1.0-<hash>".
] 
[Add a unuque identifier for installed packages (part 6 of 9)
Simon Marlow <marlowsd@gmail.com>**20090806132002
 Ignore-this: 80e560a4b659edd2ec9345aa57af862a
 
 Add libAbiHash, which extracts a String representing a hash of
 the ABI of a built library.  It can fail if the library has not
 yet been built.
] 
[Add a unuque identifier for installed packages (part 1 of 9)
Simon Marlow <marlowsd@gmail.com>**20090806131928
 Ignore-this: b774e5719e666baee504e1f52381cc8b
   
   NOTE: the patch has been split into 9 pieces for easy
   reviewing, the individual pieces won't build on their own.
   
 Part 1 does the following:
 
 Distribution.Package: 
   - define the InstalledPackageId type as a newtype of String
 
 Distribution.InstalledPackageInfo:
   - add an installedPackageId field to InstalledPackageInfo
   - change the type of the depends field from [PackageIdentifier]
     to [InstalledPackageId]
 
 
 The idea behind this change is to add a way to uniquely identify
 installed packages, letting us decouple the identity of an installed
 package instance from its package name and version.  The benefits of
 this are
 
   - We get to detect when a package is broken because its
     dependencies have been recompiled, or because it is being
     used with a different package than it was compiled against.
 
   - We have the possibility of having multiple instances of a
     given <package>-<version> installed at the same time.  In the
     future this might be used for "ways".  It might also be
     useful during the process of upgrading/recompiling packages.
] 
[Add a unuque identifier for installed packages (part 2 of 9)
Simon Marlow <marlowsd@gmail.com>**20090806131906
 Ignore-this: f3fba4465373bd4b7397384f08ca189e
 
 Note: this patch doesn't build on its own, you also need the rest of
 the patch series.
 
 Compatibility with older GHCs.  When reading a package database
 created by an older version of GHC without installedPackageIds, we
 have to fake an InstalledPackageId for the internal
 InstalledPackageInfo.
 
 So, when reading in an InstalledPackageInfo from an older GHC, we set
 the installedPackageId to be the textual representation of the
 PackageIdentifier: i.e. <package>-<version>.  Now, previously the
 depends field of InstalledPackageInfo was [PackageIdentifier], and is
 now [InstalledPackageId], so we will read each PackageIdentifier as an
 InstalledPackageId (a String).  The dependencies will still point to
 the correct package, however, because we have chosen the
 installedPackageId to be the textual representation of the
 PackageIdentifier.
] 
[Add a unuque identifier for installed packages (part 4 of 9)
Simon Marlow <marlowsd@gmail.com>**20090806131829
 Ignore-this: cd1f965c30d3dbd26dd184b3fd126163
 
 Distribution.Simple.LocalBuildInfo: 
 
   - the LocalBuildInfo record contains an index of the installed
     packages; this has changed from PackageIndex InstalledPackageInfo
     to InstalledPackageIndex.
 
   - ComponentLocalBuildInfo stores the "external package dependencies"
     of the component, which was 
       componentPackageDeps :: [PackageId]
     and is now
       componentInstalledPackageDeps :: [InstalledPackageId]
 
   - we now export
       componentPackageDeps :: LocalBuildInfo -> [PackageId]
     (since to get the PackageId for an InstalledPackageId, you need
     to look it up in the InstalledPackageIndex, which is in the
     LocalBuildInfo)
 
   - similarly, previously
       externalPackageDeps :: LocalBuildInfo -> [PackageId]
     is now
       externalPackageDeps :: LocalBuildInfo -> [InstalledPackageId]
] 
[Add a unuque identifier for installed packages (part 3 of 9)
Simon Marlow <marlowsd@gmail.com>**20090806131810
 Ignore-this: 455a736ea5a3241aa6040f4c684ab0b3
 
 This part adds the InstalledPackageIndex type to
 Distribution.Simple.PackageIndex.  Now that packages have a unique
 identifier within a package database, it makes sense to use this as
 the key for looking up installed packages, so InstalledPackageIndex is
 a mapping from InstalledPackageId to InstalledPackageInfo.
 
 Distribution.Simple.PackageIndex still supports other kinds of package
 mappings: PackageIndex is a mapping from PackageName.
 
 All the functions in the section "Special Queries" now work on
 InstalledPackageIndex rather than PackageFixedDeps pkg => PackageIndex
 pkg:
 
   topologicalOrder,
   reverseTopologicalOrder,
   dependencyInconsistencies,
   dependencyCycles,
   brokenPackages,
   dependencyClosure,
   reverseDependencyClosure
   dependencyGraph
] 
[Add a unuque identifier for installed packages (part 5 of 9)
Simon Marlow <marlowsd@gmail.com>**20090806131748
 Ignore-this: 9e242223ca16314148bf92616c19838b
 
 Follow changes to Distribution.Simple.LocalBuildInfo.componentPackageDeps.
] 
[Add a unuque identifier for installed packages (part 7 of 9)
Simon Marlow <marlowsd@gmail.com>**20090806131728
 Ignore-this: cf0e7da3e1e8e2b39336649c479c0938
 
 Follow changes in Distribution.Simple.LocalBuildInfo (installedPkgs is
 now an InstalledPackageIndex).
] 
[Add a unuque identifier for installed packages (part 8 of 9)
Simon Marlow <marlowsd@gmail.com>**20090806131700
 Ignore-this: 7cc5db4eb24ced8f3e8770fb8c19650f
 
 Distribution.Simple.Configure: follow changes to PackageIndex and
 INstalledPackageInfo.
] 
[Refactoring: fit into 80 columns
Simon Marlow <marlowsd@gmail.com>**20090806115825
 Ignore-this: e4e9bdea632814842121fcf7c7d6c3a
] 
[Fix the base-upper-bound Cabal check error
Ian Lynagh <igloo@earth.li>**20090811204455] 
[Fix "unused-do-bind" warnings properly
Duncan Coutts <duncan@haskell.org>**20090727161125
 Though I'm not at all sure I like the _ <- bind idiom.
] 
[Undo incorrect fixes for "unused-do-bind" warnings.
Duncan Coutts <duncan@haskell.org>**20090727160907
 We capture (and discard) the program output because we do not
 want it printed to the console. We do not currently have a
 specific variant for redirecting the output to /dev/null so
 we simply use the variant that captures the output.
 
 rolling back:
 
 Fri Jul 10 22:04:45 BST 2009  Ian Lynagh <igloo@earth.li>
   * Don't ask for the output of running ld, as we ignore it anyway
 
     M ./Distribution/Simple/GHC.hs -2 +2
     M ./Distribution/Simple/LHC.hs -2 +2
 Fri Jul 10 22:08:02 BST 2009  Ian Lynagh <igloo@earth.li>
   * Don't use the Stdout variant of rawSystemProgramConf to call gcc
   We ignore the output anyway
 
     M ./Distribution/Simple/Configure.hs -2 +3
] 
[Pass GHC >= 6.11 the -fbuilding-cabal-package flag
Ian Lynagh <igloo@earth.li>**20090726181405] 
[Bump version to 1.7.3 due to recent API changes
Duncan Coutts <duncan@haskell.org>**20090707095901] 
[Simplify and generalise installDirsTemplateEnv 
Duncan Coutts <duncan@haskell.org>**20090705205411
 Take a set of templates rather than file paths.
] 
[Rename and export substituteInstallDirTemplates
Duncan Coutts <duncan@haskell.org>**20090705205257
 This does the mutual substituition of the installation
 directory templates into each other.
] 
[Follow the change in GHC's split-objs directory naming
Ian Lynagh <igloo@earth.li>**20090723234430] 
[Fix a "warn-unused-do-bind" warning
Ian Lynagh <igloo@earth.li>**20090710212059] 
[Don't use the Stdout variant of rawSystemProgramConf to call gcc
Ian Lynagh <igloo@earth.li>**20090710210802
 We ignore the output anyway
] 
[Don't ask for the output of running ld, as we ignore it anyway
Ian Lynagh <igloo@earth.li>**20090710210445] 
[Fix some "warn-unused-do-bind" warnings where we want to ignore the value
Ian Lynagh <igloo@earth.li>**20090710210407] 
[Fix unused import warnings
Ian Lynagh <igloo@earth.li>**20090707133559] 
[Remove unused imports
Ian Lynagh <igloo@earth.li>**20090707115824] 
[Follow changes in haddock
Ian Lynagh <igloo@earth.li>**20090705193610
 The --verbose flag is now called --verbosity
] 
[Undo a simplification in the type of absoluteInstallDirs
Duncan Coutts <duncan@haskell.org>**20090705154155
 Existing Setup scripts use it so we can't change it. Fixes #563.
] 
[Describe the autoconfUserHooks option more accurately in the user guide
Duncan Coutts <duncan@haskell.org>**20090614191400] 
[Fix && entity refs in doc xml
Duncan Coutts <duncan@haskell.org>**20090614191230] 
[documentation update: add a description of the syntax for 'compiler' fields in .cabal files
Brent Yorgey <byorgey@cis.upenn.edu>**20090610194550] 
[use Haskell 98 import syntax
Ross Paterson <ross@soi.city.ac.uk>**20090610174619
 Ignore-this: 26774087968e247b41d69350c015bc30
] 
[fix typo of exitcode
Ross Paterson <ross@soi.city.ac.uk>**20090610174541
 Ignore-this: e21da0e6178e69694011e5286b382d72
] 
[Rearrange the PathTemplateEnv stuff and export more pieces
Duncan Coutts <duncan@haskell.org>**20090607224721] 
[Rewrite the Register module
Duncan Coutts <duncan@haskell.org>**20090607182821
 It was getting increasingly convoluted and incomprehensible.
 Now uses the Program.HcPkg and Program.Scripts modules.
] 
[Simplify OSX ranlib madness
Duncan Coutts <duncan@haskell.org>**20090607180717] 
[Use new Program.Ld and Program.Ar in GHC module
Duncan Coutts <duncan@haskell.org>**20090607180534] 
[Use the new HcPkg module in the GHC getInstalledPackages function
Duncan Coutts <duncan@haskell.org>**20090607180442] 
[Add specialised modules for handling ar and ld
Duncan Coutts <duncan@haskell.org>**20090607180257] 
[Add improved xargs style function
Duncan Coutts <duncan@haskell.org>**20090607180214
 More flexible and based on the ProgramInvocation stuff
] 
[Pass verbosity to hc-pkg
Duncan Coutts <duncan@haskell.org>**20090607180146] 
[Use a better api for registering libs in the internal package db
Duncan Coutts <duncan@haskell.org>**20090607125436] 
[Add new Program modules
Duncan Coutts <duncan@haskell.org>**20090607121301] 
[New module for handling calling the hc-pkg program
Duncan Coutts <duncan@haskell.org>**20090607120650] 
[New module to write program invocations as shell scripts or batch files
Duncan Coutts <duncan@haskell.org>**20090607120520
 For tasks like registering where we call hc-pkg, this allows us to
 produce a single program invocation and then either run it directly
 or write it out as a script.
] 
[Re-export the program invocation stuff from the Program module
Duncan Coutts <duncan@haskell.org>**20090607120404] 
[Fix rawSystemStdin util function
Duncan Coutts <duncan@haskell.org>**20090607120324
 Close the input after pushing it. Return any error message.
] 
[Split the Program module up a bit
Duncan Coutts <duncan@haskell.org>**20090607101246
 Add an explicit intermediate ProgramInvocation data type.
] 
[Do not pass Maybe LocalBuildInfo to clean hook
Duncan Coutts <duncan@haskell.org>**20090604203830
 It is a bad idea for clean to do anything different depending
 on whether the package was configured already or not. The
 actual cleaning code did not use the LocalBuildInfo so this
 only changes in the UserHooks interface. No Setup.hs scripts
 actually make of this parameter for the clean hook.
 Part of ticket #133.
] 
[Simplify checkPackageProblems function
Duncan Coutts <duncan@haskell.org>**20090604203709
 Since we now always have a GenericPackageDescription
] 
[Change UserHooks.confHook to use simply GenericPackageDescription
Duncan Coutts <duncan@haskell.org>**20090604203400
 Rather than Either GenericPackageDescription PackageDescription
 In principle this is an interface change that could break Setup.hs
 scripts but in practise the few scripts that use confHook just pass
 the arguments through and so are not sensitve to the type change.
] 
[Change UserHooks.readDesc to use GenericPackageDescription
Duncan Coutts <duncan@haskell.org>**20090604202837
 Also changes Simple.defaultMainNoRead to use GenericPackageDescription.
 This is an API change that in principle could break Setup.hs scripts
 but in practise there are no Setup.hs scripts that use either.
] 
[Help Cabal find gcc/ld on Windows
Simon Marlow <marlowsd@gmail.com>**20090626140250
 Ignore-this: bad21fe3047bc6e23165160c88dd53d9
 the layout changed in the new GHC build system
] 
[clean up createTempDirectory, using System.Posix or System.Directory
Simon Marlow <marlowsd@gmail.com>**20090625105648
 Ignore-this: 732aac57116c308198a8aaa2f67ec475
 rather than low-level System.Posix.Internals operations which are
 about to go away.
] 
[TAG 2009-06-25
Ian Lynagh <igloo@earth.li>**20090625160144] 
Patch bundle hash:
9ff328c7d1f4befc38f8eebaad7d69b866822b8c
