Hack that fixes the issue

Line
1Fri Jun 11 12:36:35 PDT 2010  ezyang@mit.edu
2  * Hack Haddock to work by omitting executable package dependencies.
3
4New patches:
5
6[Hack Haddock to work by omitting executable package dependencies.
7ezyang@mit.edu**20100611193635
8 Ignore-this: a300b21d15552f6e7d7864be25d041db
9] {
11 import Control.Exception (assert)
12 import Data.Monoid
13 import Data.Maybe    ( fromMaybe, listToMaybe )
14+import Data.List     ( nub )
15
16 import System.FilePath((</>), (<.>), splitFileName, splitExtension,
17                        normalise, splitPath, joinPath)
19                     -> IO ([(FilePath,Maybe FilePath)], Maybe String)
20 haddockPackageFlags lbi htmlTemplate = do
21   let allPkgs = installedPkgs lbi
22-      directDeps = map fst (externalPackageDeps lbi)
23+      directDeps = map fst . nub $maybe [] componentPackageDeps (libraryConfig lbi) 24 transitiveDeps <- case dependencyClosure allPkgs directDeps of 25 Left x -> return x 26 Right _ -> die "Can't find transitive deps for haddock" 27} 28 29Context: 30 31[Restored 'runTests' UserHook 32Thomas Tuegel <ttuegel@gmail.com>**20100604175635 33 Ignore-this: 128369134d640522c9e5fc3008c121c2 34 Ticket #215 (Overhaul support for packages' tests). Deprecated 'runTests' 35 UserHook to maintain compatibility with old packages, but encourage authors to 36 update to the new interface. 37] 38[Logging test output to file 39Thomas Tuegel <ttuegel@gmail.com>**20100603210204 40 Ignore-this: 6f2254b3e0c330039992f01957e62a8f 41 Ticket #215 (Overhaul support for packages' tests). Log test output to a 42 uniquely named file in the system temporary directory. This avoids flooding the 43 terminal with long error messages. 44] 45[Defined constant for matching test type 'executable == 1' 46Thomas Tuegel <ttuegel@gmail.com>**20100603150106 47 Ignore-this: 9eacb8f34bf7f86b704bf1aa3ac94660 48 Ticket #215 (Overhaul support for packages' tests). 49] 50[Corrected function 'withTest' and updated documentation 51Thomas Tuegel <ttuegel@gmail.com>**20100602203311 52 Ignore-this: adb13ce3e294405e1a9706202465feb1 53 Ticket #215 (Overhaul support for packages' tests). 54] 55[Test command runs all executable testsuites 56Thomas Tuegel <ttuegel@gmail.com>**20100601145827 57 Ignore-this: 7e5ccf7c9061e52b82d1647bd3b5e1c0 58 Ticket #215 (Overhaul support for packages' tests). The 'test' command runs all 59 executable tests listed in the package description when the package is 60 configured with tests enabled. The exit codes and standard output/error are 61 collected and reported. 62] 63[Using more specific error messages for unsupported test types 64Thomas Tuegel <ttuegel@gmail.com>**20100601145430 65 Ignore-this: c6fa9827e890fa37cb06c8005c14edb 66 Ticket #215 (Overhaul support for packages' tests). Replaced generic error 67 message about unsupported test types with specific error messages for each 68 stage of the build/test process. This required changing the type of 'withTest' 69 to better match 'withExe' and 'withLib'. 70] 71[Check testsuite during package sanity checks 72Thomas Tuegel <ttuegel@gmail.com>**20100527204242 73 Ignore-this: 1a80a8da0d8d55778605c87abbaa7708 74 Ticket #215 (Overhaul support for packages' tests). Check for 75 duplicate testsuite name or modules during 'cabal check'. 76] 77[Check for duplicate testsuite names 78Thomas Tuegel <ttuegel@gmail.com>**20100527195438 79 Ignore-this: a9425d813d5e396a834c2cb33162090c 80 Ticket #215 (Overhaul support for packages' tests). During 81 package configuration, check for testsuites with the same name 82 as other testsuites or executables. 83] 84[Conditional inclusion of testsuites 85Thomas Tuegel <ttuegel@gmail.com>**20100526195728 86 Ignore-this: a342fbd013e4c1b61f1a8c0a707c7a2f 87 Ticket #215 (Overhaul support for packages' tests). The 88 "--enable-tests" and "--disable-tests" command-line flags are 89 introduced, with "--disable-tests" being the default. If tests 90 are disabled, the testsuites are stripped from the 91 GenericPackageDescription during the configure stage, before 92 dependencies are resolved. 93] 94[Testsuite for Test stanza parsing 95Thomas Tuegel <ttuegel@gmail.com>**20100526195509 96 Ignore-this: 72405e3311a7b0827decd07251373176 97 Ticket #215 (Overhaul support for packages' tests). Parse and 98 finalize a simple, dummy .cabal file containing a Test stanza. 99 Compare with the PackageDescription it which should result 100 from parsing. 101] 102[Configure and build executable testsuites 103Thomas Tuegel <ttuegel@gmail.com>**20100526194355 104 Ignore-this: ae27f422a5565778c43bd25c553b2952 105 Ticket #215 (Overhaul support for packages' test). During the 106 build stage, executable testsuites are handled analogously to 107 ordinary executables. This means their sources are 108 preprocessed and compiled. To actually compile, the build 109 stage actions are performed on a dummy Executable. 110] 111[Parse Test stanzas 112Thomas Tuegel <ttuegel@gmail.com>**20100526194027 113 Ignore-this: aba259fefc52dd6cf95e58624a527b8a 114 Ticket #215 (Overhaul support for packages' tests). Test 115 stanzas are parsed into the GenericPackageDescription and 116 PackageDescription data structures. 117] 118[Fix QA check on version range syntax to detect use of ()'s 119Duncan Coutts <duncan@haskell.org>**20100602173703 120 Ignore-this: ae60f158b63b458a42086f262b2bc277 121 The problem was that we do the QA check on using the new version range 122 syntax after parsing. The new syntax allows ()'s but previously the 123 code threw them away in the parser stage. We now retain them in the 124 AST and deal with them appropriately. This now allows the QA check to 125 be accurate and detect things like "build-depends: base (>= 4.2)". 126] 127[Fix the wrapping of ghc options for the LHC backend. 128Lemmih <lemmih@gmail.com>**20100602154611 129 Ignore-this: 92e42803c0db45403a5ef618fd5d31ef 130] 131[change LHC builder to use new command line interface 132austin seipp <as@0xff.ath.cx>**20100531173525 133 Ignore-this: ffece261e28f302cfbe0d7de51ed03a 134] 135[Add QA checks for tested-with field 136Duncan Coutts <duncan@haskell.org>**20100601174045 137 Ignore-this: 96fcaa07e52edd94dabfbbe546dfc9f 138 Not allowed invalid version ranges. Also check for use of new syntax. 139] 140[Bump version to 1.9.2 141Duncan Coutts <duncan@haskell.org>**20100531121711 142 Ignore-this: 462e00ecf4497be46209d310de16f192 143] 144[Make test suite dependencies less strict 145Johan Tibell <johan.tibell@gmail.com>**20100527203753 146 Ignore-this: 509c4e9a5dc2fc33fc39a4c6a748fc89 147] 148[Fix warnings in LHC module 149Duncan Coutts <duncan@haskell.org>**20100528004559 150 Ignore-this: 4def35179c2509f9cd0d393ada9ffb23 151] 152[Add a README explaining how to build and run the test suite 153Johan Tibell <johan.tibell@gmail.com>**20100527212701 154 Ignore-this: 13b5cf62708214d5fc3b40fb3662084d 155 Fixes ticket #693. 156] 157[Make ar create index for in-place libraries when building 158Johan Tibell <johan.tibell@gmail.com>**20100527211104 159 Ignore-this: 93e79618b6f015cb069abaadcab96ff 160 Should fix ticket #318 161] 162[Fix building packages with ghc-6.8 or older 163Duncan Coutts <duncan@haskell.org>**20100521141048 164 Ignore-this: 65952598af9ac520c3d2764a8a2e63c 165] 166[There's no rts package for LHC. 167Lemmih <lemmih@gmail.com>**20100519192710 168 Ignore-this: 65094c079459b6283fc5b00fa1f1aac2 169] 170[Fix register --global/--user 171Duncan Coutts <duncan@haskell.org>**20100515213204 172 Ignore-this: 86a5e9dc03e47a8dc11595d6eadb5937 173 It is a rather silly feature and is not guaranteed to work. Having 174 configured and built using one set of dbs, there's no guarantee you 175 can register into another set. We should probably just remove it. 176] 177[Add some diagnostic info to some internal errors 178Ian Lynagh <igloo@earth.li>**20100515193810 179 When giving an "internal error: unexpected package db stack" error, say 180 what the stack is. 181] 182[Fix warnings 183Ian Lynagh <igloo@earth.li>**20100509003309] 184[Allow filepath-1.2.* 185Simon Marlow <marlowsd@gmail.com>**20100505101313 186 Ignore-this: c5bf7a356c3347b2d907e8ad7e2d7f3a 187] 188[Add the hs output dir to the C include dirs when compiling C code 189Duncan Coutts <duncan@haskell.org>**20100422001101 190 Ignore-this: 11ff682fcceb3e0bede08f316c46c654 191 This allows C files in a package to include the _stub.h files 192 that ghc generates. This is needed for the C code to be able 193 to call the C functions exported using the FFI. 194] 195[Add the autogen dir to the C include dirs when checking foreign libs 196Duncan Coutts <duncan@haskell.org>**20100422000908 197 Ignore-this: f014681ebb019fa310cbf4a87d18637e 198 This allows packages to generate .h files and stick them in the 199 autogen dir, and still have local .h files include those generated 200 header files. Used in gtk2hs. 201] 202[Do not pass the CopyFlags to the per-compiler installLib/Exe functions 203Duncan Coutts <duncan@haskell.org>**20100420225830 204 Ignore-this: 62277568628a3eed636c06f4df57353e 205] 206[Bump version number 207Duncan Coutts <duncan@haskell.org>**20100420224011 208 Ignore-this: 135d62045b5e6aedeeb865797b15cf53 209] 210[Better error message when installing for unsupported compilers 211Duncan Coutts <duncan@haskell.org>**20100420223935 212 Ignore-this: 2f1369d9028e1f7639e73735aa25c62 213] 214[Pass the exe/lib to the per-compiler installLib/Exe functions 215Duncan Coutts <duncan@haskell.org>**20100420223652 216 Ignore-this: 5ddfb4517bb0f89529256f8ae75d5854 217 So the generic code iterates over the libs/exes rather than 218 the per-compiler code doing that. It'll help when we have 219 more complex inter-component dependencies. 220 This is also the proper fix for ticket #525. 221] 222[cleaning up and removing warnings in UHC support 223Andres Loeh <andres@cs.uu.nl>**20100330171045 224 Ignore-this: 1adb659d170f9cb7478e0110dcc198f7 225] 226[significant progress on UHC support 227Andres Loeh <andres@cs.uu.nl>**20100330170211 228 Ignore-this: 193f161988c2f03032f3b73c290a8043 229] 230[started on UHC support 231Andres Loeh <andres@cs.uu.nl>**20091215125422 232 Ignore-this: d3dc77aaf26be3fc1696eaf4a9d8e0f1 233] 234[Use Setup.hs when calling setup 235Duncan Coutts <duncan@haskell.org>**20100321111750 236 Ignore-this: 117881f91837aa2755549edff49063fe 237 In case we've got a compiled Setup binary 238] 239[Add the new DoRec extension to Language.Haskell.Extension 240Ian Lynagh <igloo@earth.li>**20100416205627 241 Part of GHC trac #3968. 242] 243[Remove BSD4 from the list of known/suggested licenses 244Duncan Coutts <duncan@haskell.org>**20100416040538 245 Ignore-this: 8903f1d478b7c034143f700ef0873c75 246 We do not ever want to suggest the use of the BSD4 license. 247 This will fix a QA check message and the 'cabal init' command. 248 This change should be safe to push into the stable 1.8 branch. 249] 250[Add a VERSION_<package> define for each package in cabal_macros.h 251Mathieu Boespflug <mboes@tweag.net>**20100329104632 252 Ignore-this: a3f8a43f9f15b044f7e9c5a31359717 253 254 The MIN_VERSION_<package> macros are useful to test whether we have at 255 least a given version of a dependency, but we can't extract the actual 256 version of dependency using this macro. This patch makes the version 257 of each dependency available to the code of the cabal package, which 258 can be useful when constructing global names in Template Haskell, for 259 instance. 260 261] 262[Also check compiling C headers at configure-time 263Duncan Coutts <duncan@haskell.org>**20100415063657 264 Ignore-this: ce1d74257f28099530eaa2cf8da4d42 265 So we now both check if the headers can be pre-processed and separately 266 if they can be compiled. If it fails the pre-processing check then it 267 is usually (but not always) a missing header. If it fails to compile 268 then it is definately borked, not missing. Error messages reflect this. 269] 270[better error messages for erroneous local C headers 271mcallister.keegan@gmail.com**20100409022543 272 Ignore-this: d3840ee01cf2076fe89d14e7ccc2ccac 273 Addresses the issue in tickets #532, #648. 274 When the all-together test of C libraries and headers fails, use only the 275 preprocessor to probe the headers individually. If they all check out, 276 give a more equivocal error message and suggest -v3. 277 278] 279[document all the language extensions 280mcallister.keegan@gmail.com**20100409060559 281 Ignore-this: 21de95e9f614235dd2c447297c33fc0f 282 Resolves ticket #344. 283] 284[Various minor improvements to c2hs support 285Duncan Coutts <duncan@haskell.org>**20100413083252 286 Ignore-this: 37c3a2896d2d6229408f8db300817a92 287 - ticket #327: require c2hs version 0.15 as minimum 288 - ticket #536: pass c2hs include dirs of dependent packages 289 - ticket #537: pass c2hs location of gcc -E 290] 291[Get ghc, hsc2hs and cpphs programs more robustly in preprocessing 292Duncan Coutts <duncan@haskell.org>**20100412023642 293 Ignore-this: 14e2d1dd686dbb3256178729c4af5331 294 Avoid pattern match failure in obscure circumstances 295 Should fix ticket #383 296] 297[Move .hs-boot file pre-processor hack to a more sensible place 298Duncan Coutts <duncan@haskell.org>**20100412015127 299 Ignore-this: 3608adbc406e99018862efa996c1ad96 300] 301[Also set -stubdir for haddock-stomping workaround 302Duncan Coutts <duncan@haskell.org>**20100411194550 303 Ignore-this: f4ca351bb11ff3ffcc1f5e0332dd9db4 304 Probably needed in the case of foreign exports and TH. 305] 306[Adjust cpp options passed to cpp, c2hs and hsc2hs 307Duncan Coutts <duncan@haskell.org>**20100411194213 308 Ignore-this: 7d65b0ddcaac8bdda9954aee5a81fe1d 309 * Not changed for cpp, just code refactored. 310 * For c2hs add cpp-options and the sysdefines (-D${os}_BUILD_OS etc)
311  * For hsc2hs add the sysdefines
312]
314gwern0@gmail.com**20100309015416
315 Ignore-this: 3b47d4982f1ebe40d9d78d71a9ab2d4d
316]
318gwern0@gmail.com**20100309015328
319 Ignore-this: 48f03ca94606814463112fdcc8b9e98f
320]
321[Add markdown version of user guide
324 Plan is to switch over from docbook xml.
325]
326[Workaround the fact that haddock stomps on our precious .hi and .o files
330 and .hi files. This is bad because it replaces the ones we previously
331 built. This results in broken packages later on. Of course haddock
332 should not do this, it should write temp files elsewhere. The workaround
333 is to tell haddock to write the files to a temp dir.
334]
335[Remove an out-of-date comment
336Ian Lynagh <igloo@earth.li>**20100326131752]
337[Factorise duplicate finding in package description checks
339 Ignore-this: 9a0e068b05f611f77bee85ca5b943919
340]
341[Fix local inplace registration for ghc-6.12
343 Ignore-this: 197ec567d3bf300c6ed6430f03a5409d
344 This is for the case of intra-package deps where the lib has to be
345 registered into a local package db. We use "-inplace" suffix for
346 the local installed package ids (rather than using an ABI hash).
347]
348[On windows, pick up ar.exe from the ghc install before looking on the $PATH 349Duncan Coutts <duncan@haskell.org>**20100320143643 350 Ignore-this: a3931cad3a8fd821a9b1ddd893db8c32 351 Some ar.exe versions floating around seem to have weird non-posix behaviour. 352] 353[Document the "manual" attribute of flags 354Ian Lynagh <igloo@earth.li>**20100317203744] 355[Tweak doc Makefile 356Ian Lynagh <igloo@earth.li>**20100317202418] 357[Fix mismatch between arch and os variables in D.S.InstallDirs interpolation 358Andrea Vezzosi <sanzhiyan@gmail.com>**20100119031642 359 Ignore-this: 3a66bd9771f294fc1f52be8824ca051b 360] 361[Get the correct value of$topdir on Windows with GHC 6.12.1
362Ian Lynagh <igloo@earth.li>**20091230204613]
363[Revert the change to filter out deps of non-buildable components
365 Ignore-this: 7f6f18997e28b843422d2c55a8bce302
366 It does not work as intended and gives inconsistent results between
367 cabal install and cabal configure. The problem with the approach was
368 that we were filtering out the dependencies of non-buildable components
369 at the end. But that does not help much since if one of the deps of
370 the non-buildable component were not available then we would have
371 failed earlier with a constraint failure. A proper solution would have
372 to tackle it from the beginning, not just as a filter at the end.
373 The meaning of build-depends and buildable: False needs more thought.
374]
377[Remove deprecated --copy-prefix= feature
379 It's been deprecated since Cabal 1.1.4 (over 3 years).
380 The replacement since then has been --destdir=
381]
382[Fix generating Paths_pkgname module with hugs
384 In the case that the progsdir is not relative to the $prefix 385] 386[Change preprocessModule to preprocessFile 387Duncan Coutts <duncan@haskell.org>**20091228190125 388 So we can stop pretending that "main-is: foo.hs" is a module name. 389 Also allows us to deprecate ModuleName.simple which bypasses the 390 ModuleName type invariant. 391] 392[Move registering to per-compiler modules, fix inplace register for hugs 393Duncan Coutts <duncan@haskell.org>**20091228025220] 394[Add a number of TODOs 395Duncan Coutts <duncan@haskell.org>**20091228024948] 396[Fix priority of the two global hugs package dbs 397Duncan Coutts <duncan@haskell.org>**20091228024849] 398[Fix name clashes in hugs module 399Duncan Coutts <duncan@haskell.org>**20091228024814] 400[Add parenthesis to macros in cabal_macros.h 401Antoine Latter <aslatter@gmail.com>**20091229023358 402 Ignore-this: 5c5e7244d10bcd82da2cbf4432b30a6d 403 Now this like "#if !MIN_VERSION_base(4,2,0)" will work 404] 405[Make the datadir follow the$prefix on Windows
407 Ignore-this: ce33a328dbf2d1e419cf6e5047bff091
408 This is slightly experimental, we'll see how it goes. See ticket #466.
409]
410[Simplify getInstalledPackages and callers
412 Ignore-this: 7927e992e0b040347dc24530219eb8eb
413 No longer returns Maybe, we can find installed packages for all
414 the compilers we support (and this feature is a requirement for
415 support for new compilers).
416 This is an API change so cannot merge to Cabal-1.8.x branch.
417]
418[Implement support for hugs and nhc98 package databases
421 That is, work out which packages are installed for hugs and nhc98.
422 In both cases there is special support for the core packages.
423 In future both should use the standard method when they supply
424 proper installed package info files for the bundled libraries.
425]
426[Find the version of hugs
428 This is really hard and rather nasty.
429]
430[Convert XXX comments to TODO or FIXME as appropriate
432[Fixes for compiling Cabal with hugs
434 Ignore-this: f49c719d33e3909996f391e80911c51c
435]
436[Make lack of language extensions an error not a warning
438 Also improve the error message somewhat
439]
440[Specify DOCTYPE when generating userguide html
442 Ignore-this: 9d3b09e3c593a8d5f39b691ef2ceb377
443 Useless docbook tools.
444]
445[Registering packages needs all the package dbs listed
447 Ignore-this: 249cc7ae1452bfa8e970f0ba24d4ff5f
448 Important for the case of registering inplace when we're using a
449 specific package db, e.g. when doing isolated builds.
450]
451[Switch a few distribution checks to build warnings
454 In particular the one about -prof since this leads to borked packages.
455]
456[Make it so cabal passes the dylib-install-name when building dynamic libraries on Mac OS/X.
457Ian Lynagh <igloo@earth.li>**20091204144142
458 This is a rerecord of
459     Stephen Blackheath <oversensitive.pastors.stephen@blacksapphire.com>**20091001053101
460 to avoid conflicts.
461]
462[Take line endings into account in IOEncodingUTF8 mode
465 When collecting the output from programs.
466]
467[Install shared libraries as executable files
468Ian Lynagh <igloo@earth.li>**20091201145349
469 Fixes GHC trac #3682. Patch from juhpetersen.
470]
471[Fix warnings
472Ian Lynagh <igloo@earth.li>**20091129164643]
473[Tweak layout to work with alternative layout rule
474Ian Lynagh <igloo@earth.li>**20091129163614]
475[Bump version in HEAD branch to 1.9.0
477 Ignore-this: bbbc9fbb9abdee3f51bdcf972554d93d
478 The 1.8.x branch remains at 1.8.0.1
479]
480[Update changelog for 1.8.x release
482 Ignore-this: 43b797ce87ba439869c080e0a8e20eab
483]
484[Package registration files are always UTF8
486 Ignore-this: 7863e05c5514d1fee5165fda3815b116
487 As is the output from ghc-pkg dump.
488]
489[Add support for text encoding when invoking a program
492 Can be either locale text or specifically UTF8.
493 Also tidy up the rawSystemStd* variants and pass
494 a text/binary mode flag for the input and output.
495]
496[Change where we add a trailing newline when showing InstalledPackageInfo
498 Ignore-this: 5e91f3e0988cf60572eefc374735727f
499 Do it in the pretty-printing rather than just before writing the file.
500]
501[Update docs on a couple util functions
503 Ignore-this: f8df6d6f06dcc2f173180fa063aba091
504]
505[Update docs for class Package
507 Ignore-this: 2b36ab0d8c422465d489ca2dc7010204
508]
509[Be less verbose when checking foreign deps
512]
513[Add backwards compat version of findProgramOnPath
515 Ignore-this: be475bbcbb539d2f2f834a2f0ca235f9
516 Break a couple fewer package's Setup.hs files
517]
518[Experimentally, change order of user-supplied program args
520 Ignore-this: f9b8b4ecc68ee8b2294768c95a2ef774
521 Put them last rather than first.
522]
523[Fix building with base 3
525 Ignore-this: 5ee71207064f5298bb40bafbf537d684
526]
527[Canonicalise the package deps returned by finalizePackageDescription
529 Ignore-this: eb489503c4a9e27dd8d427cf707461f9
530 The guarantee is supposed to be that each package name appears at most
531 once with all the constraints for that dependency. The cabal-install
532 planner relies on this property.
533]
534[Improve the error message for missing sh.exe on Windows
537 When ettempting to run ./configure scripts. Fixes ticket #403.
538]
539[Deprecated PatternSignatures in favor of ScopedTypeVariables
540Niklas Broberg <niklas.broberg@gmail.com>**20090603121321
541 Ignore-this: cc1cb044e3db25cb53e1830da34a317b
542]
543[JHC support requires jhc >= 0.7.2
545 Ignore-this: 97e456357263977187c2768c957b8be7
546]
547[Remove some commented out code
549 Ignore-this: f4a122d90207de861acc5af603cf55ea
550]
551[JHC.getInstalledPackages: remove check for --user flag, since JHC-0.7.2 supports local packages
553[JHC.buildLib: make this working for JHC-0.7.2
555[JHC.getInstalledPackages: adapt to package lists emitted by jhc-0.7.2
557[Bump minor version
559 Ignore-this: 6ccbdc1bfa80f66cf74584ff66018582
560 A few changes since version 1.8.0 that was released with ghc-6.12rc1
561]
562[Tweak the assertion on overall package deps
564 Ignore-this: abe2735469828829219938ee4275ebda
565]
566[Exclude non-buildable components when constructing the overall package deps
568 Ignore-this: 60a11926991ce894da07f3e4c54ed257
569]
570[Pass profiling flag to ghc when compiling C files.
571Bertram Felgenhauer <int-e@gmx.de>**20091103165558
573 The main effect of this change is that the PROFILING macro gets defined
574 when compiling C files and profiling is enabled. This is useful for code
575 that inspects closures.
576
577 Caveat:
578   The change relies on the fact that Cabal does not track dependencies
579   of C files but recompiles them every time. If dependency tracking is
580   added, we'll need different extensions for profiling and non-profiling
581   object files.
582]
583[Build with ghc-6.6
585 Ignore-this: 5042dc4f628b68d9d9e40d33837e9818
586]
589 Ignore-this: 7a301d4ede384f2256b02dbf179c0d9b
590]
591[Only pass -B... to gcc for GHC < 6.11
592Ian Lynagh <igloo@earth.li>**20091012144707
593 It is no longer needed in 6.12.
594]
595[Use -Wl,-R, for the gcc rpath flag.
598 Apparently it was only gcc on Solaris that groks -R directly,
599 so we have to use -Wl to pass it through to ld. Both GNU and
600 Solaris ld grok -R, only GNU ld accepts -rpath.
601]
602[Don't complain if there is no ghc rts package registered
604 Ignore-this: 8634380cb75891a13988123bbbfd372b
605]
606[I was wrong, the test was correct before.
608 Ignore-this: e1967271893b0d745d25a9ee09b624cb
609
610 rolling back:
611
612 Mon Oct  5 17:32:02 BST 2009  Stephen Blackheath <grossly.sensitive.stephen@blacksapphire.com>
613   * Fix test case InternalLibrary4 on account of a change in Cabal's behaviour.
614
615     M ./tests/PackageTests/BuildDeps/InternalLibrary4/Check.hs -5 +4
616]
617[Unbreak configure for packages that depend on different versions of themselves
619 Ignore-this: bce724e750b48ffa7e669c6573b49a8d
620]
621[Bump version number to 1.8.0
622Ian Lynagh <igloo@earth.li>**20091006160120]
623[Loosen the invariant, it was too strict
624Simon Marlow <marlowsd@gmail.com>**20091006133756
625 Ignore-this: 6087cfc11c19d4bac2fddcf007e9bb7c
626 The packages do not need to be in the same order when sorted by
627 package name as when sorted by InstalledPackageId.
628]
629[Fix test case InternalLibrary4 on account of a change in Cabal's behaviour.
630Stephen Blackheath <grossly.sensitive.stephen@blacksapphire.com>**20091005163202
631 Ignore-this: abc7f45e5fe6eb8e28dee5bfe406b16c
632]
633[Keep asserts for testing pre-releases
635 Ignore-this: ca9406c17afcba272383eb3f66305a
636]
637[Fix configuring for packages with internal lib deps.
639 Ignore-this: 31d508508230864d43e3df033dd687d1
640 Was using the wrong set of packages when doing the finalise.
641]
642[Bump minor version
644 Ignore-this: 85fe7d55bac00035cd92c4ffc3f71c2
645]
646[Stop converting between installed package id and source package id
648 Ignore-this: ed5b14ec4010ab1b8d5cde0ac5ac83e5
649 In the LocalBuildInfo, for each component, for the list of component
650 dependencies, keep both the InstalledPackageId and the PackageId.
651 That way we don't need to keep converting the InstalledPackageId
652 to the PackageId, via the package index (which is just horrible).
653]
654[Reduce the insanity in Configure
656 Ignore-this: 93fa0d351701e6317afb46df94e64777
657 It was making so many different kinds of package index and converting
658 back and forth between package id and installed package id that it
659 made my brain hurt. Thou shalt not convert blithly between package Id
660 and installed package Id for thou know not what thy doest.
661]
662[Get and merge ghc's package dbs more sensibly
664 Ignore-this: fc4b3c983dc7aa0ebc362e990c6a8a2b
665 Use the merge rather than just making a big list.
666]
667[Rewrite the PackageIndex again
669 Ignore-this: ea36efcd3ee2bb5dae40de998b6b4de6
670 It's a unified index again, rather than one for looking up by an
671 InstalledPackageId and one for the source PackageId. The new one
672 lets you look up by either. It also maintains the order of
673 preference of different installed packages that share the same
674 source PackageId. In configure we just pick the first preference.
675]
676[Don't use -#include flag with ghc-6.12
678 Ignore-this: b520998e5b5213155de0cba1680e1338
679]
680[Fix sdist for packages using .lhs-boot files
683]
684[Fix deadlocks when calling waitForProcess; GHC trac #3542
685Ian Lynagh <igloo@earth.li>**20090928174553
686 We now wait on MVars indicating that stdout and stderr have been
687 closed before making the waitForProcess call.
688]
689[Update dependencies
690Ian Lynagh <igloo@earth.li>**20090920152411]
691[Simplify the use of simplifyVersionRange
693 Ignore-this: fd41587284e064b185cd1db423ddf493
694 Use the simplifyDependency wrapper
695]
696[Fix Integer defaulting
698 Ignore-this: a747789b708b34cf3589a4c5a9fdb9cd
699]
700[Don't simplify empty/inconsistent version ranges
702 Ignore-this: aeddcb5625dd29963036c07be5a9c2da
703 They all get squashed to ">1 && <1" which while canonical is not helpful.
704]
705[Fix pretty printing of version ranges to use parens in the right places
707 Ignore-this: 198737aa806fa92774494f6e33344a84
708]
709[Fix the depth calculation for the version range expression check
711 Ignore-this: da1f0fefd17c1269f39e93e4623dc274
712 Previously it was complaining about expressions like
713  >= 2 && < 3
714 because internally >= is represented in terms of >, == and ||.
715 The fix is to use new fold that gives a view with the extra
716 syntactic sugar so that <= and <= can be counted as one.
717]
720 Ignore-this: cdb7ff28869dd8637cbc7d1a02620c5b
721 Now foldVersionRange gives a view with no syntactic sugar
722 while foldVersionRange' gives a view with the syntactic sugar.
723]
724[Fix the version-range parser to allow arbitrary expressions over constraints.
725Malcolm.Wallace@cs.york.ac.uk**20090911111643
726 Previously, only a single conjunction (&&) or disjunction (||) was
727 parseable, despite an internal representation that permits arbitrary
728 combinations.  Now, any sequence of (&&) and (||) combining forms is
729 parsed.  (&&) binds more tightly than (||).
730]
731[Use -package-id rather than -package with GHC 6.11+
732Simon Marlow <marlowsd@gmail.com>**20090906112416
733 Ignore-this: a9cb1e8684411ea3fa04e0d54826f76b
734]
735[Install dyn way hi files
737 Ignore-this: 9de867381e500fda321a29e137e71414
738]
739[Use -R flags for hsc2hs wherever we use -L flags on ELF platforms.
741 Ignore-this: 357aa0d1865a1fe6bf37fb6f41e2c93a
742 This fixes use of hsc2hs in cases where things like libgmp
743 is not on the system's dynamic linker path. It's ok to use
744 rpath in the case of hsc2hs because the linked programs are
745 run immediately and never installed.
746]
747[Add the ABI hash to the InstalledPackageId for inplace registrations too
748Simon Marlow <marlowsd@gmail.com>**20090826155157
749 Ignore-this: f10a1e90492a356a8ed8ed78fd056176
750 Previously, we just added a -inplace suffix, but this will cause
751 problems when developing multiple packages inplace, and then
752 installing them.
753
754 Also, there was a round of refactoring: registerPackage now takes the
755 InstalledPackageId as an argument, and generateRegistrationInfo is
756 exposed for constructing it.  This means that callers of
757 registerPackage get to munge the InstalledPackageInfo before it is
758 registered.
759]
760[Bump minor version to 1.7.4
762 Ignore-this: 360111493090f2cf86a65dfa2bd41da0
763 due to recent API changes
764]
765[Change finalizePackageDescription to take dep test function
767 Ignore-this: 573c4d60e9c40f8814371a6c3a0b8c9
768 Ths is instead of taking a set of installed packages. This insulates
769 us from the representation of the installed package set which is good
770 since we now have several representations. It also opens the door to
771 generalising the kinds of constraints we can handle.
772]
775 Ignore-this: 222a83edbe3bf27574bfe51df7f109f0
776 Seems people do not know that the source guide exists.
777]
778[Add a bunch of TODOs and minor doc changes
780 Most TODOs related to the new InstalledPackageId stuff.
781]
782[Refactor and simplify the fixup in "hc-pkg dump"
784 We have to set the installedPackageId if it's missing.
785 There's no need for this to depend on the version of ghc which
786 is nice since this module is not supposed to be ghc specific.
787]
788[Rename the InstalledPackageInfo field package to sourcePackageId
790 The old one was always too generic and it now contrasts
791 better with the new installedPackageId field.
792]
793[Add a unuque identifier for installed packages (part 9 of 9)
794Simon Marlow <marlowsd@gmail.com>**20090806132217
796
797 When registering, choose the InstalledPackageId.
798
799  - When registering inplace, use "foo-1.0-inplace"
800
801  - If this isn't GHC, just use "foo-1.0-installed"
802
803  - When installing a package with GHC, call
804    Distribution.Simple.GHC.libAbiHash to get the hash, and
805    use "foo-1.0-<hash>".
806]
807[Add a unuque identifier for installed packages (part 7 of 9)
808Simon Marlow <marlowsd@gmail.com>**20090806131728
809 Ignore-this: cf0e7da3e1e8e2b39336649c479c0938
810
811 Follow changes in Distribution.Simple.LocalBuildInfo (installedPkgs is
812 now an InstalledPackageIndex).
813]
814[Add a unuque identifier for installed packages (part 8 of 9)
815Simon Marlow <marlowsd@gmail.com>**20090806131700
816 Ignore-this: 7cc5db4eb24ced8f3e8770fb8c19650f
817
818 Distribution.Simple.Configure: follow changes to PackageIndex and
819 INstalledPackageInfo.
820]
821[Add a unuque identifier for installed packages (part 6 of 9)
822Simon Marlow <marlowsd@gmail.com>**20090806132002
823 Ignore-this: 80e560a4b659edd2ec9345aa57af862a
824
825 Add libAbiHash, which extracts a String representing a hash of
826 the ABI of a built library.  It can fail if the library has not
827 yet been built.
828]
829[Add a unuque identifier for installed packages (part 5 of 9)
830Simon Marlow <marlowsd@gmail.com>**20090806131748
831 Ignore-this: 9e242223ca16314148bf92616c19838b
832
834]
835[Add a unuque identifier for installed packages (part 4 of 9)
836Simon Marlow <marlowsd@gmail.com>**20090806131829
837 Ignore-this: cd1f965c30d3dbd26dd184b3fd126163
838
839 Distribution.Simple.LocalBuildInfo:
840
841   - the LocalBuildInfo record contains an index of the installed
842     packages; this has changed from PackageIndex InstalledPackageInfo
843     to InstalledPackageIndex.
844
845   - ComponentLocalBuildInfo stores the "external package dependencies"
846     of the component, which was
847       componentPackageDeps :: [PackageId]
848     and is now
849       componentInstalledPackageDeps :: [InstalledPackageId]
850
851   - we now export
852       componentPackageDeps :: LocalBuildInfo -> [PackageId]
853     (since to get the PackageId for an InstalledPackageId, you need
854     to look it up in the InstalledPackageIndex, which is in the
855     LocalBuildInfo)
856
857   - similarly, previously
858       externalPackageDeps :: LocalBuildInfo -> [PackageId]
859     is now
860       externalPackageDeps :: LocalBuildInfo -> [InstalledPackageId]
861]
862[Add a unuque identifier for installed packages (part 3 of 9)
863Simon Marlow <marlowsd@gmail.com>**20090806131810
864 Ignore-this: 455a736ea5a3241aa6040f4c684ab0b3
865
866 This part adds the InstalledPackageIndex type to
867 Distribution.Simple.PackageIndex.  Now that packages have a unique
868 identifier within a package database, it makes sense to use this as
869 the key for looking up installed packages, so InstalledPackageIndex is
870 a mapping from InstalledPackageId to InstalledPackageInfo.
871
872 Distribution.Simple.PackageIndex still supports other kinds of package
873 mappings: PackageIndex is a mapping from PackageName.
874
875 All the functions in the section "Special Queries" now work on
876 InstalledPackageIndex rather than PackageFixedDeps pkg => PackageIndex
877 pkg:
878
879   topologicalOrder,
880   reverseTopologicalOrder,
881   dependencyInconsistencies,
882   dependencyCycles,
883   brokenPackages,
884   dependencyClosure,
885   reverseDependencyClosure
886   dependencyGraph
887]
888[Add a unuque identifier for installed packages (part 2 of 9)
889Simon Marlow <marlowsd@gmail.com>**20090806131906
890 Ignore-this: f3fba4465373bd4b7397384f08ca189e
891
892 Note: this patch doesn't build on its own, you also need the rest of
893 the patch series.
894
895 Compatibility with older GHCs.  When reading a package database
896 created by an older version of GHC without installedPackageIds, we
897 have to fake an InstalledPackageId for the internal
898 InstalledPackageInfo.
899
900 So, when reading in an InstalledPackageInfo from an older GHC, we set
901 the installedPackageId to be the textual representation of the
902 PackageIdentifier: i.e. <package>-<version>.  Now, previously the
903 depends field of InstalledPackageInfo was [PackageIdentifier], and is
904 now [InstalledPackageId], so we will read each PackageIdentifier as an
905 InstalledPackageId (a String).  The dependencies will still point to
906 the correct package, however, because we have chosen the
907 installedPackageId to be the textual representation of the
908 PackageIdentifier.
909]
910[Add a unuque identifier for installed packages (part 1 of 9)
911Simon Marlow <marlowsd@gmail.com>**20090806131928
912 Ignore-this: b774e5719e666baee504e1f52381cc8b
913
914   NOTE: the patch has been split into 9 pieces for easy
915   reviewing, the individual pieces won't build on their own.
916
917 Part 1 does the following:
918
919 Distribution.Package:
920   - define the InstalledPackageId type as a newtype of String
921
922 Distribution.InstalledPackageInfo:
923   - add an installedPackageId field to InstalledPackageInfo
924   - change the type of the depends field from [PackageIdentifier]
925     to [InstalledPackageId]
926
927
928 The idea behind this change is to add a way to uniquely identify
929 installed packages, letting us decouple the identity of an installed
930 package instance from its package name and version.  The benefits of
931 this are
932
933   - We get to detect when a package is broken because its
934     dependencies have been recompiled, or because it is being
935     used with a different package than it was compiled against.
936
937   - We have the possibility of having multiple instances of a
938     given <package>-<version> installed at the same time.  In the
939     future this might be used for "ways".  It might also be
940     useful during the process of upgrading/recompiling packages.
941]
942[Refactoring: fit into 80 columns
943Simon Marlow <marlowsd@gmail.com>**20090806115825
944 Ignore-this: e4e9bdea632814842121fcf7c7d6c3a
945]
946[Use a simpler method for the check on the base-upper-bound
948 Ignore-this: 9234cc76670a135906c8b7d2e19e6199
949 The key point is that we do not complain for packages
950 that do not depend on base at all (like ghc-prim).
951]
952[Fix the base-upper-bound Cabal check error
953Ian Lynagh <igloo@earth.li>**20090811204455]
954[Fix "unused-do-bind" warnings properly
956 Though I'm not at all sure I like the _ <- bind idiom.
957]
958[Undo incorrect fixes for "unused-do-bind" warnings.
960 We capture (and discard) the program output because we do not
961 want it printed to the console. We do not currently have a
962 specific variant for redirecting the output to /dev/null so
963 we simply use the variant that captures the output.
964
965 rolling back:
966
967 Fri Jul 10 22:04:45 BST 2009  Ian Lynagh <igloo@earth.li>
968   * Don't ask for the output of running ld, as we ignore it anyway
969
970     M ./Distribution/Simple/GHC.hs -2 +2
971     M ./Distribution/Simple/LHC.hs -2 +2
972 Fri Jul 10 22:08:02 BST 2009  Ian Lynagh <igloo@earth.li>
973   * Don't use the Stdout variant of rawSystemProgramConf to call gcc
974   We ignore the output anyway
975
976     M ./Distribution/Simple/Configure.hs -2 +3
977]
978[Pass GHC >= 6.11 the -fbuilding-cabal-package flag
979Ian Lynagh <igloo@earth.li>**20090726181405]
980[Follow the change in GHC's split-objs directory naming
981Ian Lynagh <igloo@earth.li>**20090723234430]
982[Fix a "warn-unused-do-bind" warning
983Ian Lynagh <igloo@earth.li>**20090710212059]
984[Don't use the Stdout variant of rawSystemProgramConf to call gcc
985Ian Lynagh <igloo@earth.li>**20090710210802
986 We ignore the output anyway
987]
988[Don't ask for the output of running ld, as we ignore it anyway
989Ian Lynagh <igloo@earth.li>**20090710210445]
990[Fix some "warn-unused-do-bind" warnings where we want to ignore the value
991Ian Lynagh <igloo@earth.li>**20090710210407]
992[Fix unused import warnings
993Ian Lynagh <igloo@earth.li>**20090707133559]
994[Remove unused imports
995Ian Lynagh <igloo@earth.li>**20090707115824]
996[Bump version to 1.7.3 due to recent API changes
998[Simplify and generalise installDirsTemplateEnv
1000 Take a set of templates rather than file paths.
1001]
1002[Rename and export substituteInstallDirTemplates
1004 This does the mutual substituition of the installation
1005 directory templates into each other.
1006]
1008Ian Lynagh <igloo@earth.li>**20090705193610
1009 The --verbose flag is now called --verbosity
1010]
1011[TAG 2009-06-25
1012Ian Lynagh <igloo@earth.li>**20090625160144]
1013[Undo a simplification in the type of absoluteInstallDirs
1015 Existing Setup scripts use it so we can't change it. Fixes #563.
1016]
1017[Help Cabal find gcc/ld on Windows
1018Simon Marlow <marlowsd@gmail.com>**20090626140250
1020 the layout changed in the new GHC build system
1021]
1022[clean up createTempDirectory, using System.Posix or System.Directory
1023Simon Marlow <marlowsd@gmail.com>**20090625105648
1024 Ignore-this: 732aac57116c308198a8aaa2f67ec475
1025 rather than low-level System.Posix.Internals operations which are
1027]
1029Simon Marlow <marlowsd@gmail.com>**20090622133654
1030 Ignore-this: d2c775473d6dfb1dcca40f51834a2d26
1031]
1032[update to work with the new GHC IO library internals (fdToHandle)
1033Simon Marlow <marlowsd@gmail.com>**20090612095346
1034 Ignore-this: 2697bd2b64b3231ab4d9bb13490c124f
1035]
1036[Describe the autoconfUserHooks option more accurately in the user guide
1038[Fix && entity refs in doc xml
1040[documentation update: add a description of the syntax for 'compiler' fields in .cabal files
1041Brent Yorgey <byorgey@cis.upenn.edu>**20090610194550]
1043Ross Paterson <ross@soi.city.ac.uk>**20090610174619
1044 Ignore-this: 26774087968e247b41d69350c015bc30
1045]
1046[fix typo of exitcode
1047Ross Paterson <ross@soi.city.ac.uk>**20090610174541
1048 Ignore-this: e21da0e6178e69694011e5286b382d72
1049]
1050[Put a "%expect 0" directive in the .y file of a test
1051Ian Lynagh <igloo@earth.li>**20090608204035]
1052[Rearrange the PathTemplateEnv stuff and export more pieces
1054[Rewrite the Register module
1056 It was getting increasingly convoluted and incomprehensible.
1057 Now uses the Program.HcPkg and Program.Scripts modules.
1058]
1061[Use new Program.Ld and Program.Ar in GHC module
1063[Use the new HcPkg module in the GHC getInstalledPackages function
1065[Add specialised modules for handling ar and ld
1069 More flexible and based on the ProgramInvocation stuff
1070]
1071[Pass verbosity to hc-pkg
1073[Use a better api for registering libs in the internal package db
1077[New module for handling calling the hc-pkg program
1079[New module to write program invocations as shell scripts or batch files
1081 For tasks like registering where we call hc-pkg, this allows us to
1082 produce a single program invocation and then either run it directly
1083 or write it out as a script.
1084]
1085[Re-export the program invocation stuff from the Program module
1087[Fix rawSystemStdin util function
1089 Close the input after pushing it. Return any error message.
1090]
1091[Split the Program module up a bit
1093 Add an explicit intermediate ProgramInvocation data type.
1094]
1095[Do not pass Maybe LocalBuildInfo to clean hook
1097 It is a bad idea for clean to do anything different depending
1098 on whether the package was configured already or not. The
1099 actual cleaning code did not use the LocalBuildInfo so this
1100 only changes in the UserHooks interface. No Setup.hs scripts
1101 actually make of this parameter for the clean hook.
1102 Part of ticket #133.
1103]
1104[Simplify checkPackageProblems function
1106 Since we now always have a GenericPackageDescription
1107]
1108[Change UserHooks.confHook to use simply GenericPackageDescription
1110 Rather than Either GenericPackageDescription PackageDescription
1111 In principle this is an interface change that could break Setup.hs
1112 scripts but in practise the few scripts that use confHook just pass
1113 the arguments through and so are not sensitve to the type change.
1114]
1117 Also changes Simple.defaultMainNoRead to use GenericPackageDescription.
1118 This is an API change that in principle could break Setup.hs scripts
1119 but in practise there are no Setup.hs scripts that use either.
1120]
1121[Pass a verbosity flag to ghc-pkg
1122Ian Lynagh <igloo@earth.li>**20090605143244]
1123[When build calls register, pass the verbosity level too
1124Ian Lynagh <igloo@earth.li>**20090605142718]
1125[Fix unlit
1126Ian Lynagh <igloo@earth.li>**20090605130801
1127 The arguments to isPrefixOf were the wrong way round. We want to see if
1128 the line starts "\\begin{code}", not if the line is a prefix of that string.
1129]
1130[Tweak a comment so that it doesn't confuse haddock
1131Ian Lynagh <igloo@earth.li>**20090605130728]
1132[Tweak new build system
1133Ian Lynagh <igloo@earth.li>**20090404204426]
1134[GHC new build system fixes
1135Ian Lynagh <igloo@earth.li>**20090329153151]
1136[Add ghc.mk for the new GHC build system
1137Ian Lynagh <igloo@earth.li>**20090324211819]
1138[Bump version due to recent changes
1140[Ticket #89 final: Regression tests for new dependency behaviour.
1141rubbernecking.trumpet.stephen@blacksapphire.com**20090601215651
1142 Ignore-this: 52e04d50f1d045a14706096413c19a85
1143]
1144[Make message "refers to a library which is defined within the same.." more grammatical
1145rubbernecking.trumpet.stephen@blacksapphire.com**20090601214918
1146 Ignore-this: 3887c33ff39105f3483ca97a7f05f3eb
1147]
1148[Remove a couple unused imports.
1150[Ban upwardly open version ranges in dependencies on base
1152 Fixes ticket #435. This is an approximation. It will ban most
1153 but not all cases where a package specifies no upper bound.
1154 There should be no false positives however, that is cases that
1155 really are always bounded above that the check flags up.
1156 Doing a fully precise test needs a little more work.
1157]
1158[Split requireProgram into two different functions
1160 Now requireProgram doesn't take a version range and does not check
1161 the program version (indeed it doesn't need to have one). The new
1162 function requireProgramVersion takes a required program version
1163 range and returns the program version. Also update callers.
1164 Also fixes the check that GHC has a version number.
1165]
1166[Ignore a byte order mark (BOM) when reading UTF8 text files
1168 Yes of course UTF8 text files should not use the BOM but
1169 notepad.exe does anyway. Fixes ticket #533.
1170]
1171[executables can now depend on a library in the same package.
1173 Fixes ticket #89. The library gets registered into an inplace
1174 package db file which is used when building the executables.
1175 Based partly on an original patch by Stephen Blackheath.
1176]
1177[Always build ar files with indexes
1179 Since we have to be able to use these inplace we always need
1180 the index it's not enough to just make the index on installing.
1181 This particularly affects OSX.
1182]
1183[Make rendering the ghc package db stack more lenient
1185 Allow the user package db to appear after a specific one.
1186 No reason not to and makes some things in cabal-install more convenient.
1187]
1188[Simplify version ranges in configure messages and errors
1190 Part of #369
1191]
1194 Just uses simplifyVersionRange on the version range in the dep
1195]
1196[Use the PackageDbStack in the local build info and compiler modules
1198 This lets us pass a whole stack of package databases to the compiler.
1199 This is more flexible than passing just one and working out what
1200 other dbs that implies. This also lets us us more than one specific
1201 package db, which we need for the inplace package db use case.
1202]
1203[Simplify version ranges before printing in configure error message
1205 Part of ticket #369. Now instead of:
1206   setup: At least the following dependencies are missing:
1207   base <3 && <4 && <3 && <3 && <4
1208 we get:
1209   setup: At least the following dependencies are missing:
1210   base <3
1211]
1212[Bump version to 1.7.1 due to recent changes
1214[Minor renaming
1216 Part of one of Stephen Blackheath's patches
1217]
1218[Improve an internal error message slightly
1220[Detect intra-package build-depends
1222 Based on an original patch by Stephen Blackheath
1223 With this change build-depends on a library within the same package
1224 are detected. Such deps are not full handled yet so for the moment
1225 they are explicitly banned, however this is another step towards
1226 actually supporting such dependencies. In particular deps on
1227 internal libs are resolved to the internal one in preference to any
1228 existing external version of the same lib.
1229]
1230[Use accurate per-component package deps
1232 Based on an original patch by Stephen Blackheath
1233 Previously each component got built using the union of all package
1234 deps of all components in the entire package. Now we use exactly the
1235 deps specified for that component. To prevent breaking old packages
1236 that rely on the sloppy behaviour, package will only get the new
1237 behaviour if they specify they need at least cabal-version: >= 1.7.1
1238]
1239[Add *LBI variants of withLib and withExe that give corresponding build info
1240rubbernecking.trumpet.stephen@blacksapphire.com**20090528113232
1241 Ignore-this: 6856385f1c210e33c352da4a0b6e876a
1242]
1243[Register XmlSyntax and RegularPatterns as known extensions in Language.Haskell.Extension
1244Niklas Broberg <d00nibro@chalmers.se>**20090529102848
1245 Ignore-this: 32aacd8aeef9402a1fdf3966a213db7d
1246
1247 Concrete XML syntax is used in the Haskell Server Pages extension
1248 language, and a description can be found in the paper "Haskell Server
1250 Workshop '05.
1251
1252 Regular expression pattern matching is described in the paper "Regular
1253 Expression Patterns" by Niklas Broberg, Andreas Farre and Josef
1254 Svenningsson, published in ICFP '04.
1255]
1256[Resolve merge conflict with dynlibPref patch
1258 The dynlibPref patch accidentally was only pushed to ghc's branch.
1259]
1260[Use dynlibdir = libdir for the moment
1261Duncan Coutts <duncan@well-typed.com>**20090519134115
1262 It will need more thought about how much control the user needs
1263 and what the default shared libs management scheme should be.
1264]
1265[Use componentPackageDeps, remove packageDeps, add externalPackageDeps
1267 So now when building, we actually use per-component set of package deps.
1268 There's no actual change in behaviour yet as we're still setting each of
1269 the componentPackageDeps to the union of all the package deps.
1270]
1271[Pass ComponentLocalBuildInfo to the buildLib/Exe
1273 Not yet used
1274]
1275[Simplify writeInstalledConfig slightly
1277[No need to drop dist/installed-pkg-config after every build
1279 We generate this file if necessary when registering.
1280]
1281[Make absoluteInstallDirs only take the package id
1283 It doesn't need the entire PackageDescription
1284]
1285[Rejig calls to per-compiler build functions
1287 So it's now a bit clearer what is going on in the generic build code
1288 Also shift info calls up to generic code
1289]
1290[Split nhc and hugs's build action into buildLib and buildExe
1292[Split JHC's build into buildLib and buildExe
1294[Sync LHC module from GHC module
1296[Give withLib and withExe sensible types
1298[Fix types of libModules and exeModules
1300 Take a Library/Executable rather than a PackageDescription
1301 Means we're more precise in using it, just passing the info we need.
1302]
1303[Split ghc's build action into buildLib and buildExe
1305[Remove unused ghc-only executable wrapper feature
1307 Some kind of shell script wrapper feature might be useful,
1308 but we should design it properly.
1309]
1310[Fixup .cabal file with the removed modules and files
1312[Fix warnings about unused definitions and imports
1314[Remove the makefile generation feature
1316 It was an ugly hack and ghc no longer uses it.
1317]
1320 We want to have each component have it's own dependencies,
1321 rather than using the union of deps of the whole package.
1322]
1323[Ticket #89 part 2: Dependency-related test cases and a simple test harness
1324rubbernecking.trumpet.stephen@blacksapphire.com**20090526133509
1325 Ignore-this: 830dd56363c34d8edff65314cd8ccb2
1326 The purpose of these tests is mostly to pin down some existing behaviour to
1327 ensure it doesn't get broken by the ticket #89 changes.
1328]
1329[Ticket #89 part 1: add targetBuildDepends field to PackageDescription's target-specific BuildInfos
1330rubbernecking.trumpet.stephen@blacksapphire.com**20090526133729
1332 This provides dependencies specifically for each library and executable target.
1333 buildDepends is calculated as the union of the individual targetBuildDepends,
1334 giving a result that's exactly equivalent to the old behaviour.
1335]
1336[LHC: register the external core files.
1337Lemmih <lemmih@gmail.com>**20090521021511
1338 Ignore-this: d4e484d7b8e541c3ec4cb35ba8aba4d0
1339]
1340[Update the support for LHC.
1341Lemmih <lemmih@gmail.com>**20090515211659
1342 Ignore-this: 2884d3eca0596a441e3b3c008e16fd6f
1343]
1346 Eg now says something like:
1347 cabal: Haddock's internal GHC version must match the configured GHC version.
1348 The GHC version is 6.8.2 but haddock is using GHC version 6.10.1
1349]
1351Andrea Vezzosi <sanzhiyan@gmail.com>**20090302015137
1352 Ignore-this: d186a5dbebe6d7fdc64e6414493c6271
1354]
1355[Make die use an IOError that gets handled at the top level
1357 Rather than printing the error there and then and throwing an
1358 exit exception. The top handler now catches IOErrors and
1359 formats and prints them before throwing an exit exception.
1360 Fixes ticket #512.
1361]
1363Andrea Vezzosi <sanzhiyan@gmail.com>**20090219153738
1364 Ignore-this: 5b465b2b0f5ee001caa0cb19355d6fce
1365 In addition to (hopefully) making clear what's going on
1366 we now do the additional preprocessing for all the versions of haddock
1367 (but not for hscolour) and we run cpp before moving the files.
1368]
1369[Allow --with-ghc to be specified when running Cabal
1370Ian Lynagh <igloo@earth.li>**20090225172249]
1371[fix imports for non-GHC
1372Ross Paterson <ross@soi.city.ac.uk>**20090221164939
1373 Ignore-this: 12756e3863e312352d5f6c69bba63b92
1374]
1375[Fix user guide docs about --disable-library-vanilla
1377 It is not default. Looks like it was a copy and paste error.
1378]
1379[Specify a temp output file for the header/lib checks
1381 Otherwise we litter the current dir with a.out and *.o files.
1382]
1385[Use more cc options when checking for header files and libs
1387 Use -I. to simulate the search path that gets used when we tell ghc
1388 to -#include something. Also use the include dirs and cc options of
1389 dependent packages. These two changes fix about 3 packages each.
1390]
1391[Validate the docbook xml before processing.
1393 Apparently xsltproc does not validate against the dtd.
1394 This should stop errors creaping back in.
1395]
1396[Make documentation validate
1397Samuel Bronson <naesten@gmail.com>**20090212235057]
1398[Folly the directions for docbook-xsl
1399Samuel Bronson <naesten@gmail.com>**20090213022615
1400 As it says in http://docbook.sourceforge.net/release/xsl/current/README:
1401
1402   - Use the base canonical URI in combination with one of the
1403     pathnames below. For example, for "chunked" HTML, output:
1404
1405     http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl
1406
1407]
1408[Fix compat functions for setting file permissions on windows
1410 Spotted by Dominic Steinitz
1411]
1414[Don't build ghci lib if we're not making vanilla libs
1416 As the .o files will not exist.
1417]
1418[Correct docdir -> mandir in InstallDirs
1419Samuel Bronson <naesten@gmail.com>**20090203043338]
1420[Fix message suggesting the --executables flag
1421Samuel Bronson <naesten@gmail.com>**20090201010708]
1422[Remove #ifdefery for windows, renameFile now works properly
1424 It's even atomic on windows so we don't need the workaround.
1425]
1426[Make withTempDirectory create a new secure temp dir
1428 Rather than taking a specific dir to create.
1429 Update the one use of the function.
1430]
1433 Also clean up imports
1434]
1435[Improve the error message for missing foreign libs and make it fatal
1437 The check should now be accurate enough that we can make it an
1438 error rather than just a warning.
1439]
1440[Use the cc, cpp and ld options when checking foreign headers and libs
1442 In partiular this is needed for packages that use ./configure
1443 scripts to write .buildinfo files since they typically do not
1444 split the cpp/cc/ldoptions into the more specific fields.
1445]
1446[Do the check for foreign libs after running configure
1448 This lets us pick up build info discovered by the ./configure script
1449]
1450[move imports outside ifdef GHC
1451Ross Paterson <ross@soi.city.ac.uk>**20090130153505]
1452[Document most of the new file utility functions
1454[#262 iterative tests for foreign dependencies
1455Gleb Alexeyev <gleb.alexeev@gmail.com>**20090130120228
1456 Optimize for succesful case. First try all libs and includes in one command,
1457 proceed with further tests only if the first test fails. The same goes for libs
1458 and headers: look for an offending one only when overall test fails.
1459
1460]
1461[Misc minor comment and help message changes
1463[Deprecate smartCopySources and copyDirectoryRecursiveVerbose
1465 Also use simplified implementation in terms of recently added functions.
1466]
1467[Switch copyFileVerbose to use compat copyFile
1469 All remaining uses of it do not require copying permissions
1470]
1471[Let the setFileExecutable function work with hugs too
1473[Switch hugs wrapper code to use setFileExecutable
1475 instead of get/setPermissions which don't really work properly.
1476]
1477[Switch last uses of copyFile to copyFileVerbose
1479[Stop using smartCopySources or copyDirectoryRecursiveVerbose
1481 Instead if copyDirectoryRecursiveVerbose use installDirectoryContents
1482 and for smartCopySources use findModuleFiles and installExecutableFiles
1483 In both cases the point is so that we use functions for installing
1484 files rather than functions to copy files.
1485]
1486[Use installOrdinaryFile and installExecutableFile in various places
1489]
1490[Make the Compat.CopyFile module with with old and new ghc
1492[Add a bunch of utility functions for installing files
1494 We want to separate the functions that do ordinary file copies
1495 from the functions that install files because in the latter
1496 case we have to do funky things with file permissions.
1497]
1500 This lets us get rid of the Compat.Permissions module
1501]
1502[Export setFileOrdinary and setFileExecutable from Compat.CopyFile
1505gleb.alexeev@gmail.com**20090126185832
1506
1507 This is just a basic check - generate a sample program and check if it compiles and links with relevant flags. Error messages (warning messages,
1508 actually) could use some improvement.
1509]
1510[Pass include directories to LHC
1511Samuel Bronson <naesten@gmail.com>**20090127220021]
1514 This is to work around the file permissions problems with the
1515 standard System.Directory.copyFile function. When installing
1516 files we do not want to copy permissions or attributes from the
1517 source files. On unix we want to use specific permissions and
1518 on windows we want to inherit default permissions. On unix:
1519 copyOrdinaryFile   sets the permissions to -rw-r--r--
1520 copyExecutableFile sets the permissions to -rwxr-xr-x
1521]
1522[Remove unused support for installing dynamic exe files
1524 No idea why this was ever added, they've never been built.
1525]
1526[Check for ghc-options: -threaded in libraries
1528 It's totally unnecessary and messes up profiling in older ghc versions.
1529]
1530[Filter ghc-options -threaded for libs too
1532[New changelog entries for 1.7.x
1534[Update changelog for 1.6.0.2
1536[Fix openNewBinaryFile on Windows with ghc-6.6
1538 fdToHandle calls fdGetMode which does not work with ghc-6.6 on
1539 windows, the workaround is not to call fdToHandle, but call
1540 openFd directly. Bug reported by Alistair Bayley, ticket #473.
1541]
1542[filter -threaded when profiling is on
1544 Fixes #317. Based on a patch by gleb.alexeev@gmail.com
1545]
1546[Move installDataFiles out of line to match installIncludeFiles
1548[Fix installIncludeFiles to create target directories properly
1550 Previously for 'install-includes: subdir/blah.h' we would not
1551 create the subdir in the target location.
1552]
1553[Typo in docs for source-repository
1554Joachim Breitner <mail@joachim-breitner.de>**20090121220747]
1555[Make 'ghc-options: -O0' a warning rather than an error
1557[Improve runE parse error message
1559 Only really used in parsing config files derived from command line flags.
1560]
1563 It is ghc's optimised InstalledPackageInfo parser that needs updating.
1564
1565 rolling back:
1566
1567 Fri Dec 12 18:36:22 GMT 2008  Ian Lynagh <igloo@earth.li>
1569   We were ending up with things like
1570       InstalledPackageInfo {
1571           ...
1573           ...
1574       }
1575   i.e. "LGPL Nothing" rather than "LGPL", which we couldn't then read.
1576
1578]
1579[Swap the order of global usage messages
1581 Put the more important one first.
1582]
1583[Enable the global command usage to be set
1585 extend it rather than overriding it.
1586 Also rearrange slightly the default global --help output.
1587]
1588[On Windows, if gcc isn't where we expect it then keep looking
1589Ian Lynagh <igloo@earth.li>**20090109153507]
1590[Ban ghc-options: --make
1592 I dunno, some people...
1593]
1594[Update changelog for 1.6.0.2 release
1596[Make the compiler PackageDB stuff more flexible
1598 We support using multiple package dbs, however the method for
1599 specifying them is very limited. We specify a single package db
1600 and that implicitly specifies any other needed dbs. For example
1601 the user or a specific db require the global db too. We now
1602 represent that stack explicitly. The user interface still uses
1603 the single value method and we convert internally.
1604]
1606Ian Lynagh <igloo@earth.li>**20081212183622
1607 We were ending up with things like
1608     InstalledPackageInfo {
1609         ...
1611         ...
1612     }
1613 i.e. "LGPL Nothing" rather than "LGPL", which we couldn't then read.
1614]
1615[Un-deprecate Distribution.ModuleName.simple for now
1616Ian Lynagh <igloo@earth.li>**20081212164540
1617 Distribution/Simple/PreProcess.hs uses it, so this causes build failures
1618 with -Werror.
1619]
1620[Use the first three lhc version digits
1622 Rather than two, and do it in a simpler way.
1623]
1624[Remove obsolete test code
1626[Update the VersionInterval properties which now all pass
1628[Eliminate NoLowerBound, Versions do have a lower bound of 0.
1630 This eliminates the duplicate representation of ">= 0" vs "-any"
1631 and makes VersionIntervals properly canonical.
1632]
1633[Update and extend the Version quickcheck properties
1635 One property fails. The failure reveals that the VersionInterval type
1636 is not quite a canonical representation of the VersionRange semantics.
1637 This is because the lowest Version is [0] and not -infinity, so for
1638 example the intervals (.., 0] and [0,0] are equivalent.
1639]
1642 With properties.
1643]
1644[Export withinVersion and deprecate betweenVersionsInclusive
1646[Add checking of Version validity to the VersionIntervals invariant
1648 Version numbers have to be a non-empty sequence of non-negataive ints.
1649]
1650[Fix implementation of withinIntervals
1652[Fix configCompilerAux to consider user-supplied program flags
1654 This fixes a bug in cabal-install
1655]
1658 Also document the functions in the ModuleName module.
1659]
1660[Check for absolute, outside-of-tree and dist/ paths
1662[Export more VersionIntervals operations
1664 and check internal invariants
1665]
1666[Check for use of cc-options: -O
1668[Fake support for NamedFieldPuns in ghc-6.8
1670 Implement it in terms of the -XRecordPuns which was accidentally
1671 added in ghc-6.8 and deprecates in 6.10 in favor of NamedFieldPuns
1672 So this is for compatability so we can tell package authors always
1674]
1675[Make getting ghc supported language extensions its own function
1677[Check for use of deprecated extensions
1679[Add a list of deprecated extenstions
1681 Along with possibly another extension that replaces it.
1682]
1683[Change the checking of new language extensions
1685 Check for new language extensions added in Cabal-1.2 and also 1.6.
1686 Simplify the checking of -X ghc flags. Now always suggest using
1687 the extensions field, as we separately warn about new extenssons.
1688]
1689[Tweak docs for VersionRange and VersionIntervals
1691[Correct and simplify checkVersion
1693[Make users of VersionIntervals use the new view function
1695[Make VersionIntervals an abstract type
1697 Provide asVersionIntervals as the view function for a VersionRange
1698 This will let us enforce the internal data invariant
1699]
1700[Slight clarity improvement in compiler language extension handling
1702[Slightly simplify the maintenance burden of adding new language extensions
1704[Distributing a package with no synopsis and no description is inexcusable
1706 Previously if one or the other or both were missing we only warned.
1707 Now if neither are given it's an error. We still warn about either
1708 missing.
1709]
1710[Add Test.Laws module for checking class laws
1712 For Functor, Monoid and Traversable.
1713]
1714[Add QC Arbitrary instances for Version and VersionRange
1719Andrea Vezzosi <sanzhiyan@gmail.com>**20081201114853]
1724 Since Cabal-1.4 we've been able to parse versioned licenses
1725 and unknown licenses without the parser falling over.
1726]
1727[Don't nub lists of dependencies
1729 It's pretty meaningless since it's only a syntactic check.
1730 The proper thing is to maintain a dependency set or to
1731 simplify dependencies before printing them.
1732]
1733[Fix the date in the LICENSE file
1735[Fix the version number in the makefile
1737[Use VersionRange abstractly
1739[Do the cabal version check properly.
1741 Instead of matching on the actual expression ">= x.y" we use the
1742 sematic view of the version range so we can do it precisely.
1743 Also use foldVersionRange to simplify a couple functions.
1744]
1745[Drop support for ghc-6.4 era OPTIONS pragmas
1747 It's still possible to build with ghc-6.4 but you have to pass
1748 extra flags like "ghc --make -cpp -fffi Setup.hs" We could not
1749 keep those OPTIONS pragmas and make it warning-free with ghc-6.10.
1751]
1752[Almost make the VersionRange type abstract
1754 Export constructor functions and deprecate all the real constructors
1755 We should not be pattern matching on this type because it's just
1756 syntax. For meaningful questions we should be matching on the
1757 VersionIntervals type which represents the semantics.
1758]
1759[Change isAnyVersion to be a semantic rather than syntactic test
1761 Also add simplify and isNoVersion.
1762]
1763[Add VersionIntervals, a view of VersionRange
1765 as a sequence of non-overlapping intervals. This provides a canonical
1766 representation for the semantics of a VersionRange. This makes several
1767 operations easier.
1768]
1769[Fix pretty-printing of version wildcards, was missing leading ==
1771[Add a fold function for the VersionRange
1773 Use it to simplify the eval / withinRange function
1774]
1775[Improve the error on invalid file globs slightly
1777[Use commaSep everywhere in the Check module
1779[Fix message in the extra-source-files field check
1781[Add checks for file glob syntax
1783 It requires cabal-version: >= 1.6 to be specified
1784]
1785[Add check for use of "build-depends: foo == 1.*" syntax
1787 It requires Cabal-1.6 or later.
1788]
1789[Distinguish version wild cards in the VersionRange AST
1791 Rather than encoding them in existing constructors.
1792 This will enable us to check that uses of the new syntax
1793 are flagged in .cabal files with cabal-version: >= 1.6
1794]
1795[Fix comment in LHC module
1797 Yes, LHC really does use ghc-pkg (with a different package.conf)
1798]
1799[Use the new bug-reports and source-repository info in the .cabal file
1801[Simplify build-depends and base3/4 flags
1803[Simplify default global libdir for LHC
1805 So it uses libdir=\$prefix/lib rather than libdir=/usr/local/lib
1806]
1807[Simplify the compat exceptions stuff
1809[Fix warnings in the LHC module
1811[Distribution/Simple/GHC.hs: remove tabs for whitespace to eliminate warnings in cabal-install
1812gwern0@gmail.com**20081122190011
1814]
1817[Bump Cabal HEAD version to 1.7.x development series
1819 Support for LHC is the first divergence between 1.7
1820 and the stable 1.6.x series.
1821]
1822[Update changelog for 1.6.0.x fixes
1824[LHC: Don't use --no-user-package-conf. It doesn't work with ghc-6.8.
1825Lemmih <lemmih@gmail.com>**20081122012341
1826 Ignore-this: 88a837b38cf3e897cc5ed4bb22046cee
1827]
1828[Semi-decent lhc support.
1829Lemmih <lemmih@gmail.com>**20081121034138]
1830[Make auto-generated *_paths.hs module warning-free.
1832
1833 On newer GHCs using {-# OPTIONS_GHC -fffi #-} gives a warning which
1834 can lead to a compile failure when -Werror is activated.  We therefore
1835 emit this option if we know that the LANGUAGE pragma is supported
1836 (ghc >= 6.6.1).
1837]
1838[Escape ld-options with the -optl prefix when passing them to ghc
1840 Fixes ticket #389
1841]
1842[Simplify previous pkg-config fix
1844[Fix bug where we'd try to configure an empty set of pkg-config packages
1846 This happened when the lib used pkg-config but the exe did not.
1847 It cropped up in hsSqlite3-0.0.5.
1848]