Patch: Spelling Correction of 'transative'

Denis Bueno dbueno at
Thu Aug 21 23:22:53 EDT 2008

Thu Aug 21 21:19:51 MDT 2008  dbueno at
  * Correct spelling of 'transative'.

New patches:

[Correct spelling of 'transative'.
dbueno at**20080822031951] {
hunk ./Distribution/Simple/PackageSet.hs 296
--- | Tries to take the transative closure of the package dependencies.
+-- | Tries to take the transitive closure of the package dependencies.
hunk ./Distribution/Simple/PackageSet.hs 298
--- If the transative closure is complete then it returns that subset of the
+-- If the transitive closure is complete then it returns that subset of the
hunk ./Distribution/Simple/PackageSet.hs 322
--- | Takes the transative closure of the packages reverse dependencies.
+-- | Takes the transitive closure of the packages reverse dependencies.


[Don't pass cc-options to Haskell compilations
Simon Marlow <marlowsd at>**20080821133421
 This has no effect with GHC 6.9, and with earlier GHC's it was a
 misuse of cc-options.
[Don't propagate cc-options to the InstalledPackageInfo
Simon Marlow <marlowsd at>**20080821132551
 cc-options is for options to be passed to C compilations in the
 current package.  If we propagate those options to the
 InstalledPackageInfo, they get passed to C compilations in any package
 that depends on this one, which could be disastrous.  I've seen
 cc-options like these:

    cc-options:      -optc-std=c99
    cc-options:         -D_FILE_OFFSET_BITS=64
    Cc-options:      -Wall

 these are all clearly intended to be local, but are in fact currently
 propagated to all dependent packages.
[Fix spelling of compatibility
Duncan Coutts <duncan at>**20080818194951
 At request of gwern who found that it was driving him nuts.
[Minor info and help message improvements
Duncan Coutts <duncan at>**20080813124957]
[unbreak for non-GHC
Malcolm.Wallace at**20080814182558]
[Catch exit exceptions as well as IO exceptions after running programs
Ian Lynagh <igloo at>**20080813213035
 We need to catch IO exceptions for things like "couldn't find the program",
 but we also need to catch exit exceptions as Cabal uses them to signal
 what the program returned.
[Move Paths_pkgname and cabal_macros.h generation into their own modules
Duncan Coutts <duncan at>**20080813193245]
[Add util rewriteFile :: FilePath -> String -> IO ()
Duncan Coutts <duncan at>**20080813192017
 Write a file but only if it would have new content.
 If we would be writing the same as the existing content
 then leave the file as is so that we do not update the
 file's modification time.
[fix imports for nhc98
Malcolm.Wallace at**20080813132112]
[Don't warn about missing strip.exe on Windows
Duncan Coutts <duncan at>**20080812220415
 We don't expect Windows systems to have the strip program anyway.
[Flush stdout when printing debugging messages
Duncan Coutts <duncan at>**20080812212236]
[Fix warnings in Windows Paths_pkgname module
Duncan Coutts <duncan at>**20080812211349]
[Fix the config-file field name of the install command's packagedb option
Duncan Coutts <duncan at>**20080812171207]
[Add alias type PackageId = PackageIdentifier
Duncan Coutts <duncan at>**20080812171006]
[Add data Platform = Platform Arch OS
Duncan Coutts <duncan at>**20080812160941
 Since we tend to pass them around together rather a lot.
 Also add a Text instance with a format like "i386-linux"
[Don't use tab characters in the generated Paths module
Duncan Coutts <duncan at>**20080812160731]
[Add auto-generated CPP macros for package version testing
Simon Marlow <marlowsd at>**20080811173016

 Now when using CPP you get


 for each <package> in build-depends, which is true if the version of
 <package> in use is >= A.B.C, using the normal ordering on version

 This is done by auto-generating a header file
 dist/build/autogen/cabal_macros.h, and passing a -include flag when
 running CPP.
[allow Cabal to use base-4
Simon Marlow <marlowsd at>**20080806130512]
[Make binary-dist do nothing in doc/Makefile, for now
Ian Lynagh <igloo at>**20080810005135]
[When running "Setup makefile", put "default: all" at the top of the Makefile
Ian Lynagh <igloo at>**20080809211148
 This make "make" work even if Makefile.local contains any targets.
[Use 'ghc-pkg dump' instead of 'ghc-pkg describe *'
David Waern**20080807190307

 Does not implement lazy parsing of the output of ghc-pkg dump, so this
 is only a partial fix of #311.

 For more information about why we want to use ghc-pkg dump, see GHC
 ticket #2201.
[Simplify InstalledPackageInfo parser and pretty printer
Duncan Coutts <duncan at>**20080806122807
 Using the new utils in ParseUtils.
[Add parsse utils for simple flat formats.
Duncan Coutts <duncan at>**20080806122613
 Should help to simplify the InstalledPackageInfo parser
 and also for similar formats in cabal-install.
[Tidy up the ppFields function and uses
Duncan Coutts <duncan at>**20080806121315
 Put the arguments in a more sensible order:
 ppFields :: [FieldDescr a] -> a -> Doc
 and make the implementation clearer.
 clean up the use of it in the PackageDescription.Parse module
[Windows fixes
Ian Lynagh <igloo at>**20080803201253]
[setup makefile: put the source-dir suffix rules after the distdir suffix rules
Simon Marlow <marlowsd at>**20080806130309
 This matches the behaviour of 'setup build' works, and is robust to
 people accidentally having old preprocessed sources lying around in the
 source dir.
[Generalise checkPackageFiles to any monad, not just IO
Duncan Coutts <duncan at>**20080806001547
 This is to let us use the same checks for virtual or
 in-memory file systems, like tarball contents.
[Move parseFreeText into ParseUtils and use it more widely
Duncan Coutts <duncan at>**20080806001352]
[Document and refactor 'parsePackageDescription'.
Thomas Schilling <nominolo at>**20080804190324

 Hopefully this makes this function more understandable and easier to
[Adjust registration to allow packages with no modules or objects
Duncan Coutts <duncan at>**20080804155826
 So ghc-pkg does not complain about missing files and dirs.
[Don't try to install libHSfoo.a if the lib had no object files
Duncan Coutts <duncan at>**20080804143817
 To allow meta-packages.
[Fix instance Monoid ConfigFlags for configStripExes
Duncan Coutts <duncan at>**20080802002045]
[Document the "exposed" .cabal file field
Duncan Coutts <duncan at>**20080731162807]
[Fix the Windows build
Ian Lynagh <igloo at>**20080731194841]
[Remove unused imports
Ian Lynagh <igloo at>**20080730194526]
[Make Cabal compatible with extensible exceptions
Ian Lynagh <igloo at>**20080730183910
 The code is now also more correct, e.g. when we are ignoring IO exceptions
 while trying to delete something, we don't also ignore timeout exceptions.
[Remove unused imports
Duncan Coutts <duncan at>**20080730182957]
[Remove unused inDir util function
Duncan Coutts <duncan at>**20080730165031]
[Add an "exposed" field to the .cabal file library section
Duncan Coutts <duncan at>**20080730164516
 It's a bool flag that says if by default the library should
 be registered with the compiler as exposed/unhidden (for
 compilers which have such a concept, ie ghc). You might want
 to do this for packages which would otherwise pollute the
 module namespace or clash with other common packages.
 It should be very rarely used. The only current examples we
 know of are the ghc api package and the dph packages.
[Rearrange the Monoid instances for Library, Executable, BuildInfo
Duncan Coutts <duncan at>**20080730163432
 No functional change, just moving code about.
 We now define the Monoid methods directly rather than in
 terms of emptyLibrary, unionLibrary etc.
[Do the ghc rts ldOptions hack in a slightly more hygenic way
Duncan Coutts <duncan at>**20080729195714]
[Fix uses of verbosity > deafening to use >=
Duncan Coutts <duncan at>**20080729191855
 The maximum verbosity value is deafening so >= the correct test.
 This primarily affected haddock.
[Do not use ',' as a list separator for the cpp/cc/ld-options fields
Duncan Coutts <duncan at>**20080729170556
 It breaks for some options like "ld-options: -Wl,-z,now"
 No existing .cabal files on hackage were using ',' as a
 list separator so this should not break anything.
[Pass the right -F and --framework flags when running hsc2hs on OS X
Ian Lynagh <igloo at>**20080729172757]
[Tweak a test to not go via the pretty printer
Ian Lynagh <igloo at>**20080729172750]
[Fix linking with hsc2hs on OS X
Ian Lynagh <igloo at>**20080729170215
 We don't tell hsc2hs to link the actual Haskell packages, so with GHC's
 rts package we need to also filter out the -u flags.
[Tweak whitespace
Ian Lynagh <igloo at>**20080729163729]
[Move docs for build-depends into the build information section
Duncan Coutts <duncan at>**20080729162024
 Since it is shared between libs and exes. Extend the documentation
 to describe the syntax of version constraints, including the new
 version range syntax "build-depends: foo ==1.2.*".
[Remove references to cabal-setup from the documentation
Duncan Coutts <duncan at>**20080729160950
 Change to runhaskell Setup or cabal-install as appropriate.
[Move the docs for the buildable field to a better place.
Duncan Coutts <duncan at>**20080729160808
 It doesn't need to be right up near the top.
[Document more clearly that every modules must be listed
Duncan Coutts <duncan at>**20080729160308
 in one of the fields exposed-modules, other-modules or main-is
 Add an extra note to the section on the Paths_pkgname module
 as the fact that it's automatically generated confuses people.
[Document the wildcard behaviour in data-files and extra-source-files fields
Duncan Coutts <duncan at>**20080729155920]
[Document the $os and $arch install path vars
Duncan Coutts <duncan at>**20080729155654]
[File globs must match at least one file or it's an error.
Duncan Coutts <duncan at>**20080729154050]
[Fix the semantics of the simple file globbing to be sane
Duncan Coutts <duncan at>**20080729152624
 I realised when I started to document it that the behaviour
 was not terribly consistent or sensible. The meaning now is:
   The limitation is that * wildcards are only allowed in
   place of the file name, not in the directory name or
   file extension. In particular, wildcards do not include
   directories contents recursively. Furthermore, if a
   wildcard is used it must be used with an extension, so
   "data-files: data/*" is not allowed. When matching a
   wildcard plus extension, a file's full extension must
   match exactly, so "*.gz" matches "foo.gz" but not
 The reason for providing only a very limited form of wildcard
 is to concisely express the common case of a large number of
 related files of the same file type without making it too easy
 to accidentally include unwanted files.
[Allow $arch and $os in install paths.
Duncan Coutts <duncan at>**20080729151952
 Fixes ticket #312. For example a user could use:
   cabal configure --libsubdir="$pkgid/$compiler/$arch"
 if they wanted to have packages for multiple architectures
 co-exist in the same filestore area.
[Use "pkg == 1.2.*" as the version wildcard syntax
Duncan Coutts <duncan at>**20080729151612
 Rather than "pkg ~ 1.2.*". This seemed to be the consensus.
 The syntax "pkg == 1.2.*" means "pkg >= 1.2 && < 1.3" and it
 is to encourage people to put upper bounds on api versions.
[Pass -no-user-package-conf to ghc when not using UserPackageDB
Duncan Coutts <duncan at>**20080729145040
 Should eliminate the corner case where we're doing a global
 install but the user package db contains the exact same
 version as in the global package db. Perhaps we should warn
 in that case anyway since it's likely to go wrong later.
[disambiguate Control.Exception.catch for nhc98
Malcolm.Wallace at**20080728164506]
[more import qualification to help nhc98
Malcolm.Wallace at**20080728153629]
[help nhc98's module disambiguator a bit
Malcolm.Wallace at**20080724165753]
[Substitute for $topdir when we read GHC's InstalledPackageInfo's
Ian Lynagh <igloo at>**20080723112232]
[Fix the location of gcc.exe in a Windows GHC installation
Ian Lynagh <igloo at>**20080723101848]
[Don't need the complex code in detecting hsc2hs anymore
Duncan Coutts <duncan at>**20080720234019
 Since we do not need to know if hsc2hs uses ghc or gcc as cc
 by default since in either case we now tell it to use gcc.
[Always use gcc as cc with hsc2hs
Duncan Coutts <duncan at>**20080720233759
 Lookup what flags to use from the package index. Previously this
 was done by calling ghc as cc and passing -package flags to ghc.
 ghc would then lookup what extra flags to pass to gcc. We now do
 that ourselves directly and it's a good deal simpler and it's
 portable to the other haskell implementations. This is only a
 first go, the flags may not all be exactly right. Needs testing.
[Add gccProgram
Duncan Coutts <duncan at>**20080720232818
 on Windows we have to find ghc's private copy of gcc.exe
[Add PackageSet.topologicalOrder and reverseTopologicalOrder
Duncan Coutts <duncan at>**20080720223731
 with type :: PackageFixedDeps pkg => PackageSet pkg -> [pkg]
[Change some PackageSet functions to return the package rather than the id
Duncan Coutts <duncan at>**20080720221702
 dependencyGraph and reverseDependencyClosure now return the
 full package rather than just the PackageIdentifier
[Convert from PackageIndex to PackageSet
Duncan Coutts <duncan at>**20080720194924
 Turns out the feature to do case-insensitive lookups was only
 needed in cabal-install (and only in one little part) and
 elsewhere it causes problems. So use PackageSet instead.
[If we have GHC >= 6.9 then use the new -optdep replacement flags
Ian Lynagh <igloo at>**20080722163346]
[And exitcode of 2 from ghc-pkg when doing describe '*' means no packages
Ian Lynagh <igloo at>**20080722125759
 This is a bit of a kludge around GHC's #2201, until Cabal is updated to
 use ghc-pkg dump.
[Fix warnings and add a comment explaining why we pass -x to strip on OS X
Ian Lynagh <igloo at>**20080720220851]
[Pass -x to strip on OSX
Duncan Coutts <duncan at>**20080720204609]
[Generate expanded makefile rules directly, rather than using $(eval ...)
Ian Lynagh <igloo at>**20080720194801
 We used to do this with $(eval ...) and $(call ...) in the
 Makefile, but make 3.79.1 (which is what comes with msys)
 doesn't understand $(eval ...), so now we just stick the
 expanded loop directly into the Makefile we generate.
[Put GHC's programArgs in GHC_OPTS when making a Makefile
Ian Lynagh <igloo at>**20080715132429]
[Pass -package-conf foo when using GHC as CC
Ian Lynagh <igloo at>**20080713123958]
[If we are using ghc as hsc2hs's cc, then tell it where package.conf is
Ian Lynagh <igloo at>**20080713110548
 if we have been told to use a specific one with --package-db
[Fix installing datafiles
Ian Lynagh <igloo at>**20080712173934
 If datadir is foo and the datafile is bar then we should install it to
 $datadir/bar, not $datadir/foo/bar.
[Fix the "Setup makefile" rules for C files
Ian Lynagh <igloo at>**20080712173851]
[If install is given a distPref, pass it on to copy and register
Ian Lynagh <igloo at>**20080712121916]
[derive Eq for ConfiguredProgram
Duncan Coutts <duncan at>**20080711160138
 a request from Saizan
[Simplify ghc version test slightly
Duncan Coutts <duncan at>**20080711142026]
[Add a hack to copy .hs-boot files into dist/...
Ian Lynagh <igloo at>**20080711000826
 When a preprocessor generates a .hs file we need to put the .hs-boot
 file next to it so that GHC can find it.
[Teach "Setup makefile" how to cope with multiple hs-source-dirs
Ian Lynagh <igloo at>**20080711000726]
[Fix some whitespace in
Ian Lynagh <igloo at>**20080710231519]
[In, put all the rules that mentions srcdir together
Ian Lynagh <igloo at>**20080710231415]
[Fix haddocking (with old haddocks?)
Ian Lynagh <igloo at>**20080703154714]
[Correct the order of args given by --PROG-options
Duncan Coutts <duncan at>**20080710181437
 They were getting reversed. Problem located by Igloo.
[Remove the need for a compat Data.Map module
Duncan Coutts <duncan at>**20080710154600
 Stop using Map.alter, use the same solution as the PackageIndex module.
[fix #if __GLASGOW_HASKELL__ test
Ross Paterson <ross at>**20080705105048

 The problem is that


 is also true for non-GHC.  It should be

[help nhc98's import overlap resolver
Malcolm.Wallace at**20080704140613]
[massage a pattern-with-context around nhc98's typechecker
Malcolm.Wallace at**20080704140541]
[Fix using specified package databases
Ian Lynagh <igloo at>**20080703001216
 If we are using a specified package database, we need to tell GHC what
 it is when building
[Fix the build with GHC 6.4.2: Data.Map.alter doesn't exist
Ian Lynagh <igloo at>**20080703001151]
[Allow installing executables in-place, and using shell script wrappers
Ian Lynagh <igloo at>**20080629164939
 GHC-only currently.
[haddock typo
Ian Lynagh <igloo at>**20080629114342]
[Fix a haddock typo
Ian Lynagh <igloo at>**20080629114239]
[Update .darcs-boring
Ian Lynagh <igloo at>**20080627182013]
[TAG 2008-05-28
Ian Lynagh <igloo at>**20080528004259]
[Remove the SetupWrapper module
Duncan Coutts <duncan at>**20080628173010
 It's not used in Cabal itself and while cabal-install used
 it previously, it now has its own extended implementation.
[Update module headers
Duncan Coutts <duncan at>**20080628172550
 Use cabal-devel at as the maintainer in most cases except for
 a few which were pre-existing modules copied from elsewhere or modules
 like L.H.Extension which really belong to libraries at
 Remove the useless stability module. We have more detailed information
 on stability elsewhere (in the version number and user guide).
 Add more top level module documentation, taken from the source guide.
[Whitespace changes, convert tabs to spaces
Duncan Coutts <duncan at>**20080626200933]
[Remove a couple old deprecated empty modules
Duncan Coutts <duncan at>**20080626195204]
[Add ModuleName as a new type instead of using String everywhere
Duncan Coutts <duncan at>**20080626192939]
[Tweaks to the readme, hopefully will reduce confusion
Duncan Coutts <duncan at>**20080625232051]
[Add compat InstalledPackageInfo types for older GHCs
Duncan Coutts <duncan at>**20080621013727
 We need these types for their Read instances so that we
 can still read older GHCs package db files when we make
 changes to the current InstalledPackageInfo type, or the
 types contained in it, like PackageIdentifier or License.
[Add simple file name globbing (*) to data-files and extra-source-files
Duncan Coutts <duncan at>**20080626171424]
[Use conservative render style for display
Duncan Coutts <duncan at>**20080619222258]
[Include trailing newline in hscolour command description
Duncan Coutts <duncan at>**20080619220940]
[Add PackageSet, like PackageIndex but case sensitive
Duncan Coutts <duncan at>**20080614003705
 Actually it turns out that we don't need case insensitivity in many
 cases, mosty just for simple lookups in the UI. For everything else
 the ordinary Ord instance is much simpler. The fact that listing the
 contents of a PackageIndex doesn't come out in Ord order actually
 causes real problems in cabal-install and necessitates re-sorting.
 So we should move to using PackageSet in most cases and just leave
 the search and lookup operations in PackageIndex.
[Add PackageName as a newtype
Duncan Coutts <duncan at>**20080614002926]
[No more need for the distinction between null and emptyBuildInfo
Duncan Coutts <duncan at>**20080614001654
 Now that we have removed the hsSourceDirs = [currentDir] default
 from emptyBuildInfo it is now equal to nullBuildInfo.
[Add version wildcard syntax
Duncan Coutts <duncan at>**20080619175006
   build-depends: foo ~1.2.*
   build-depends: foo >=1.2 && <1.3
 It's also valid everywhere else version ranges are used.
[haddock-2.2 and later do now support the --hoogle flag
Duncan Coutts <duncan at>**20080613205445]
['.' should not always be in hs-source dirs
Duncan Coutts <duncan at>**20080613230352
 We changed the parsing of list fields in the .cabal file so that it
 adds to the current value rather than replacing it. This allows you
 to put multiple entries for a list field and they all get
 concatenated. However that means that the '.' in the hsSourceDirs of
 emptyBuildInfo is always added to and not replaced like we did
 previously. That's not what we want in this case. We want to use '.'
 for hsSourceDirs *only* if hsSourceDirs is otherwise null. As it
 happens, due to the way the configurations code works, we're already
 filling in the default if it'd otherwise be null so we do not need
 '.' in the emptyBuildInfo at all.
[Fix css location in generation of user guide
Duncan Coutts <duncan at>**20080617133811]
[Update changelog for
Duncan Coutts <duncan at>**20080617130434]
[Makefile tweak, setup depends on Setup.hs
Duncan Coutts <duncan at>**20080616175446]
[construct InstalledPackageInfo from scratch rather than by overriding
Duncan Coutts <duncan at>**20080616171505
 It means we catch any fields that get added. As it happens we were
 missing a field, though its value is supposed to be just [] which is
 the same value as we got from the default emptyInstalledPackageInfo.
[force results inside withHaskellFile
Ross Paterson <ross at>**20080614160707

 withUTF8FileContents now closes the file, so we need to force what we're
 computing from the contents before it's gone.
[Include the readme and the changelog in the tarball
Duncan Coutts <duncan at>**20080612190558]
[Move the out of the root dir
Duncan Coutts <duncan at>**20080612190317
 Having it there confuses people.
 They think they have to run it as part of the install process.
[Put upper bounds on all the build-depends
Duncan Coutts <duncan at>**20080612174958]
[Add the release to the changelog
Duncan Coutts <duncan at>**20080612164242]
[Add the release to the changelog
Duncan Coutts <duncan at>**20080612164144]
[Update the README and convert it to markdown syntax
Duncan Coutts <duncan at>**20080612162906]
[Update the release notes
Duncan Coutts <duncan at>**20080612154624]
[Update copyright and authors list in the .cabal file
Duncan Coutts <duncan at>**20080612154444]
[base-1.0 does not have Data.Map.alter so use insertWith instead
Duncan Coutts <duncan at>**20080612154309]
[Lift the restriction that libraries must have exposed-modules
Duncan Coutts <duncan at>**20080612092924
 This allows libs that have only private modules or C code. This
 might be used to make libs that have non-exposed modules and only
 export C APIs. It could also be used to make packages that consist
 only of C code. That might be useful for bindings where it may
 make sense to split the C and Haskell code into separate packages.
[Use the standard autogenModulesDir rather than a local copy
Duncan Coutts <duncan at>**20080612092855]
[Fix the register --gen-pkg-config flag
Duncan Coutts <duncan at>**20080612092425
 When specified without any file name it is supposed to use
 a default file name rather than be ignored completely.
[Filter out the Paths_pkgname file in sdist
Duncan Coutts <duncan at>**20080612091810
 Fixes ticket #187 finally (I hope).
[Switch the hugs code to safe file reading and writing
Duncan Coutts <duncan at>**20080610180947]
[Use writeFileAtomic everywhere instead of writeFile
Duncan Coutts <duncan at>**20080610180727]
[Switch to scoped file reading rather than lazy readFile
Duncan Coutts <duncan at>**20080610180528]
[Close the package.conf file after reading it
Duncan Coutts <duncan at>**20080610180217
 We had a bug on windows where we open and read ghc's package.conf
 database but because we did not consume the final newline we did
 not close the file. Then when we called ghc-pkg to register a
 package it failed because it could not rename the open file.
[Add withFileContents and withUTF8FileContents
Duncan Coutts <duncan at>**20080610180150
 Safe block scoped reading of files.
 These guarantee that the file gets closed.
[Fix pre-processing for haddock and executables
Duncan Coutts <duncan at>**20080609233609
 Now look in the right place to find the pre-processed source
 files belongign to executables. Fixes ticket #252.
[Fail better when using haddock 2.x and the --hoogle flag
Duncan Coutts <duncan at>**20080609190555
 Fixes ticket #249
[Install haddock interface only when generated
Duncan Coutts <duncan at>**20080609190251
 This is actually Andrea Rossato's patch but it didn't merge
 cleanly due to more recent changes. Fixes ticket #250.
[Install license file into the right place
Duncan Coutts <duncan at>**20080609185840
 even if the license file was kept in a subdir of the src tree.
 The canonical example was: license-file: debian/copyright
 It was being installed into $docdir/debian/ and failing since
 that dir did not exist. It's now installed into just $docdir.
[Note compatability issue in deprecation message for defaultUserHooks
Duncan Coutts <duncan at>**20080527135830]
[Bump version due to api changes
Duncan Coutts <duncan at>**20080529104714]
[Put spaces round || and && when displaying version range expressions
Duncan Coutts <duncan at>**20080529104214
 This makes them much more readable.
[Change the PackageIndex invariant so the buckets are ordered
Duncan Coutts <duncan at>**20080529095346
 Each bucket holds packages with the same name case-insensitively.
 Previously each buckets was internally unordered. Now they're
 ordered by the full package id which means first by package name
 case-sensitively and then by version.
[Add thisPackageVersion and notThisPackageVersion
Duncan Coutts <duncan at>**20080529092607
 Util functions for makeing dependencies from package identifiers.
 thisPackageVersion    (foo-1.0) = foo ==1.0
 notThisPackageVersion (foo-1.0) = foo /=1.0
 The latter is handy as a constraint in dependency resolution.
[Add notThisVersion :: Version -> VersionRange
Duncan Coutts <duncan at>**20080529092244
 Opposite of ThisVersion, it means /= x.y but is actually implemented
 as > x.y || < x.y as we do not have not or not equal as primitives.
[Write out Bool config values correctly
Duncan Coutts <duncan at>**20080521153420
 Used by cabal-install when writing the default ~/.cabal/config file.
 Previously it was using show for type Maybe Bool and writing out
 "Just True" when of course it should just be "True".
[Rename doc/fptools.css to avoid the ghc build system cleaning it
Duncan Coutts <duncan at>**20080520191700
 The user guide gets built in two different ways. There's a target
 in Cabal's the top level Makefile and there is also the stuff that
 the ghc build system uses. The ghc build system expects to copy in
 doc/fptools.css and then delete it again on make clean. We want a
 persistent copy so that we can make the docs when we've just got a
 standalone Cabal build tree, so that's now kept as doc/Cabal.css.
[Remove gnerated file (doc/fptools.css)
Ian Lynagh <igloo at>*-20080511130035]
[document data-dir field
Bertram Felgenhauer <int-e at>**20080509131306]
[add data-dir field to package config
Bertram Felgenhauer <int-e at>**20080509130448
 Cabal will look for data files to install relative to the directory given
 in the data-dir field, allowing package authors to better structure their
 source tree. There's no behavioural change by default.
[Allow the bindir, libdir and libexec dir to be specified via env vars too
Duncan Coutts <duncan at>**20080519173808
 Same as for the datadir. Eg for package Foo, you'd use
 Foo_bindir=... Foo_datadir=... Foo_libexecdir=... ./Foo
 The next step would be generating a wrapper script that allows
 running the program inplace. It should also work for a library.
[Remove unused import
Duncan Coutts <duncan at>**20080513094301]
[Do not display version tags
Duncan Coutts <duncan at>**20080509094455]
[Remove Distribution.Compat.Exception from other-modules
Duncan Coutts <duncan at>**20080514171822]
[Add PackageIndex.lookupPackageName and extra deletion functions
Duncan Coutts <duncan at>**20080514162954]
[Check invariant on every construction and elide on lookups
Duncan Coutts <duncan at>**20080514154104]
[Remove redundant Char test in parseBuildToolName
Duncan Coutts <duncan at>**20080514153343
 It was made redundant after the isSymbol test was removed.
 Spotted by Igloo.
[Eliminate use of bracketOnError, use handle instead
Duncan Coutts <duncan at>**20080514153206
 It's actually more appropriate anyway.
 This means we don't need any Distribution.Compat.Exception.
[Define bracketOnError in compat; fixes the build for GHC 6.4
Ian Lynagh <igloo at>*-20080514003919]
[Add in {-# OPTIONS #-} for the benefit of ghc-6.4.x
Duncan Coutts <duncan at>**20080514144728
 Which do not grok OPTIONS_GHC or LANGUAGE pragmas
[fix scope errors in non-GHC branch of an #ifdef
Malcolm.Wallace at**20080514112530]
[Prefix the datadir env var with the package name
Duncan Coutts <duncan at>**20080514094203
 Partly as it is more likely not to clash with other users and since
 in general different libs within a program may need different paths.
[Made it possible to run executeables with data files in place.
Johan Tibell <johan.tibell at>**20080413134155
 Added an environment variable, DATA_DIR, that is checked before the
 installation data directory is used.
[Don't use Data.Char.isSymbol as it doesn't exist in base-1.0
Duncan Coutts <duncan at>**20080514083405
 This is an alternative fix to creating a Distribution.Compat.Char
[Modules that use cpp have to have cpp language prama to say so
Duncan Coutts <duncan at>**20080514082913
 Otherwise we cannot compile with just ghc --make
 which is actually essential for bootstrapping.
[Make Distribution.Compat.Char for isSymbol; fixes the build with GHC 6.4
Ian Lynagh <igloo at>*-20080514004703]
[Add new compat modules to Cabal file
Ian Lynagh <igloo at>**20080514022119]
[Make Distribution.Compat.Char for isSymbol; fixes the build with GHC 6.4
Ian Lynagh <igloo at>**20080514004703]
[Hack around lack of Read for Map in GHC 6.4
Ian Lynagh <igloo at>**20080514004400
 This is made worse by Show on Map being strange in GHC 6.4.
 The code could be better, but it works, and all the ugliness is in
 #if's that we can remove at some point down the line.
[Define bracketOnError in compat; fixes the build for GHC 6.4
Ian Lynagh <igloo at>**20080514003919]
[Print exit code and stderr for failing progs at debug level verbosity
Duncan Coutts <duncan at>**20080513094055
 Also adjust the verbosity level we get during configure at -v3
 Should make it a bit easier to track down failing calls.
[Remove a hardcoded "dist"
Ian Lynagh <igloo at>**20080511181305]
[Make the "dist" directory configurable
Ian Lynagh <igloo at>**20080511155640]
[Remove gnerated file (doc/fptools.css)
Ian Lynagh <igloo at>**20080511130035]
[Fix a bug in the unlitter
Ian Lynagh <igloo at>**20080510233852
 If we see a birdtrack while we are in latex mode, then we stay in latex
 mode - don't change into bird mode!
[Display Cabal version in configure output with -v
Duncan Coutts <duncan at>**20080509163507
 eg "Using Cabal-1.5.1 compiled by ghc-6.8"
 Annoyingly ghc doesn't give us its full version number.
[Add PackageIndex.reverseDependencyClosure
Duncan Coutts <duncan at>**20080506234902
 It's similar to dependencyClosure but looks at reverse dependencies.
 For example it's useful to find all packages that depend on broken
 packages and are thus themselves broken.
[Improve style and performance of PackageIndex.dependencyClosure
Duncan Coutts <duncan at>**20080506234447
 Keep the completed set as another PackageIndex rather than a list.
 We want to return an index at the end anyway and in the mean time
 we want to do lots of lookups to see if we've visited previously.
[Add PackageIndex.dependencyGraph that builds a Graph
Duncan Coutts <duncan at>**20080506234326
 Useful for some more tricky queries.
[Add PackageIndex.delete
Duncan Coutts <duncan at>**20080506131603
 We occasionally need to remove packages from an index
 eg to restrict the choices of a dependency resolver.
[Remove a test for the specific kind of exception for nhc98 compatibility
Duncan Coutts <duncan at>**20080506102804
 This was the check for ghc-pkg failing. We cannot check for the
 exception being an ExitException since that assumes ghc's
 representation of the Exception type, whereas nhc98 defines:
 type Exception = IOError
[Cope better with ghc bug #2201, display a better error message
Duncan Coutts <duncan at>**20080505085746
 Otherwise it can (and does) really confuse people.
 The problem is that the command $ ghc-pkg-6.9 describe '*' --user
 returns a non-zero exit code if the user package db is empty.
 ghc-pkg intends this exit code to tell us if the query returned
 any results (one can use more complex queries as tests) but Cabal
 interprets it as failure. Indeed we cannot distinguish it from
 any other kind of failure from ghc-pkg.
[Add PackageIndex.dependencyCycles
Duncan Coutts <duncan at>**20080504131626
 Finds any cycles (strongly connected components) in the dependencies
 of set of packages. This is useful for checking the correctness of
 installation plans.
[Change dependencyInconsistencies to not take the pseudo top package
Duncan Coutts <duncan at>**20080504130802
 The one case where we need the pseudo top package we can use
 PackageIndex.insert instead to get the same effect and there
 are other cases in cabal-install where we do not want a pseudo
 top package.
[Reverse the order of the args to PackageIndex.insert
Duncan Coutts <duncan at>**20080504130317
 To take the index last like the other functions and like Data.Map.
 It is actually more convenient that way round.
[Revert the change about the --internal flag and a warning about haddock
Duncan Coutts <duncan at>**20080501223131
 Just a bit of confusion over the behaviour of the --executable flag.
[Document --internal in Cabal.xml
Joachim Breitner <mail at>**20080501153356]
[With --executable, --internal just adds --ignore-all-exports
Joachim Breitner <mail at>**20080501152544]
[Implement --internal flag
Joachim Breitner <mail at>**20080501152421
 Passing --internal to the haddock stage does these things:
  * Does not pass --hide parameter to haddock
  * Passes --ignore-all-exports parameter
  * Appends "(internal documentation)" to the title
[Add an --internal flag to HaddockFlags
Joachim Breitner <mail at>**20080501145103]
[Revert the other `fmap` to (.)
Malcolm.Wallace at**20080501110006
 To avoid needing a non-H'98 instance of Functor for (->).
[Revert one change of (.) to fmap. It was not necessary and broke nhc98.
Duncan Coutts <duncan at>**20080501104620
 The other one was needed as we changed a type from Bool to Maybe Bool.
[Add help command as per ticket #272
Duncan Coutts <duncan at>**20080430133740
 "cabal help" behaves like "cabal --help"
 "cabal help cmd" behaves like "cabal cmd --help"
 Should still work with command line completion.
[Change handling of bool command line args to allow an unset state
Duncan Coutts <duncan at>**20080429201123
 For bool valued flags we were always producing the command line
 string corresponding to a false flag value, even if the flag was
 not set. For example we'd always get "--disable-shared".
 It is important for cabal-install to be able to take an empty set
 of flags, override a few flags and turn the flags back into
 command line strings without getting a lot of extra defaults.
 Partly this is because we have to work with older versions of the
 Cabal library command line which does not recognise the new options.
[Remove the feature for highlighting the default cases in --help output
Duncan Coutts <duncan at>**20080429191206
 Turns out it doesn't help us much because in many cases the initial/default
 flags are actually empty so we cannot identify the default values.
[Make the old test code compile
Duncan Coutts <duncan at>**20080428225729
 Still a lot of bit rot, many of the full tests fail due to changed paths
[Fix license parsing
Duncan Coutts <duncan at>**20080428192255
 Spotted by the testsuite which I'm trying to resurrect.
[Fix fix for #224.
Thomas Schilling <nominolo at>**20080426164537

 Changing from list of Dependencies to Maps resulted in the wrong Monoid
 instance being used.  I'd still like to be able to run a test suite on
 this but that'd require a lot more work to do properly...
[When multiple specifying list fields in the same section combine them
Duncan Coutts <duncan at>**20080423201519
 eg if you had:
 extensions: Foo
 extensions: Bar, Baz
 then previously we only ended up with [Bar, Baz]. Now we get them all.
 Only applies to list fields, for single fields the second value is taken
 and the first is silently discarded. This isn't good of course but the
 fix is harder since we're not in a context where we can report errors.
 Really we should just declare up front what kind of field it is and
 inherit the right behaviour automagically, either duplicates disallowed
 or allowed and combined with mappend.
[Normalise file names in warning messages
Duncan Coutts <duncan at>**20080423190457
 We already do this for error messages.
[Fix the check for -XFooBar ghc-options flags to be more permissive
Duncan Coutts <duncan at>**20080423190243
 Previously we rejected all such flags but that posed the problem that older
 versions of Cabal, like 1.1.6 did not understand new extensions so we
 could not actually follow the advice and use the extenion. So now we only
 warn about -X flags if they refer to old extensions that Cabal 1.1.6 knew
 about. If the .cabal file specifies cabal-version: >= 1.2 or similar
 (anything that excludes 1.1.6) then we warn about all -X flags.
[Add checks for unknown OS Arch and Compiler names
Duncan Coutts <duncan at>**20080423151410
 They're ok locally but for distribution they need to be known.
[Package check now take a GenericPackageDescription
Duncan Coutts <duncan at>**20080423150354
 Unfortunately in some cases we only have a already-configured
 PackageDescription to we have to expose a checkConfiguredPackage.
 We should refactor things so that we keep all the information
 even in a configured PackageDescription.
[Make warning messages show the file name
Duncan Coutts <duncan at>**20080422141909]
[Update UTF8 code
Duncan Coutts <duncan at>**20080422141539
 Some code and test cases taken from the utf8-string package.
 Updated copyright notice appropriately (I think).
[fix import for nhc98
Malcolm.Wallace at**20080422133009]
[Don't nub extra-libs in unionBuildInfo
Duncan Coutts <duncan at>**20080420192312
 It's possible that we sometimes need to list the same library
 more than once if there are circular symbol references.
[Fix unionBuildInfo
Duncan Coutts <duncan at>**20080420180520
 Fix ticket #264 to use nub only on the fields which are treated as sets.
 Probably we should be using the right types and mappend for each field.
 Change to construct a new value from scratch rather than overriding one
 of the two args. This helps to make sure we're updating all the field
 as we get a warning if we miss any. Turns out we were missing the ghc
 profiling and shared libs options which meant they were getting dropped.
 That had the effect of ghc-prof-options: in .cabal files being ignored.
 Thanks to 'midfield' from #haskell for spotting this.
[Add newtype FlagName and FlagAssignment type alias
Duncan Coutts <duncan at>**20080415204854
 and use them in the appropriate places.
[Add PackageIndex.insert and reverse merge/mappend
Duncan Coutts <duncan at>**20080415203637
 Packages in the second argument to merge now mask those in the first.
[Make finalizePackageDescription use CompilerId type
Duncan Coutts <duncan at>**20080413224111
 Use the proper data type rather than a tuple (CompilerFlavor, Version)
[Fix #224.  We do not yet warn if the user specified a dependency that
Thomas Schilling <nominolo at>**20080413182659
 did not occur in the package (it is just silently ignored.)
[Add 'readP_to_E' function that takes the longest parse.
Thomas Schilling <nominolo at>**20080413182042]
[Add simple test case for the dependency resolution case.  This should
Thomas Schilling <nominolo at>**20080413132002
 go into the test suite one day.
[Fix/Add documentation.
Thomas Schilling <nominolo at>**20080413131839]
[Change dependency resolution algorithm.
Thomas Schilling <nominolo at>**20080413131807

 There were two reasons to do this.  Firstly, this formulation makes it
 easier to add the --constraint command line flag that adds additional
 constraints on the packages that should be used.

 Secondly, with the orgininal algorithm it was possible to satisfy the
 constraint "foo < 1, foo > 2" if we had two versions of package "foo"
 which each satisfy one constraint.  This patch fixes this by requiring
 the same package to satisfy both constraints (which of course is
 impossible in this case).
[expose ghcOptions
jeanphilippe.bernardy at**20080417211221
 This helps finding the options to pass to GHC API in various tools
[expose tryGetConfigStateFile
jeanphilippe.bernardy at**20080417180248
 This is needed by Yi to (try to) load an arbitrary
[fix for #187 -- directory of Paths_packagename is included when
looking for source files
Andres Loeh <mail at>**20080412204904]
[Check for the required cabal version early in parsing
Duncan Coutts <duncan at>**20080409154655
 Previously we only checked the "cabal-version" field after parsing
 and all other configure processing. If the package really needs a
 later Cabal version it is of course highly likely that parsing or
 configure are going to fail and the user is not going to get the
 helpful error message about the version of Cabal required. So now
 we do the check early during parsing. If a later version is
 required and parsing subsequently fails, we now report the version
 issue, not the subsequent parse error. If parsing succeeds we
 still issue a warning which should be a useful hint to the user if
 subsequent configure processing fails.
[Use relative file paths in .cabal parse error messages
Duncan Coutts <duncan at>**20080409154030
 Do this by normalising the file path in the error message
 and when looking for .cabal files, by looking in '.' rather
 than the absolute path of the current directory.
[Remove unused import
Duncan Coutts <duncan at>**20080409073352]
[Fix for detecting ~/.cabal/ dir as a .cabal file
Duncan Coutts <duncan at>**20080409073236
 Which happened if you use cabal configure in your home dir.
 Now produced the right error message, or if you actually put
 a cabal project in your home dir, it might actually work.
 Also, do the same fix for findHookedPackageDesc.
[Fix spelling in error message
Duncan Coutts <duncan at>**20080408134610]
[Fix names of profiling libs
Duncan Coutts <duncan at>**20080407013449
 I broke this recently when refactoring. Restore the original behaviour.
 Was generating "libHSfoo_p-1.0.a" when it should be "libHSfoo-1.0_p.a".
[TAG 1.5.1
Duncan Coutts <duncan at>**20080329181329]
[Bump version to 1.5.1 -- the next development series
Duncan Coutts <duncan at>**20080329181146
 Though we should try and limit divergence until 1.4.0 is released.
[factor out showPWarning function
Ross Paterson <ross at>**20080328115612]
[Tweak warning message about bool fields to include the field name
Duncan Coutts <duncan at>**20080328012006
 Warning: The 'buildable' field is case sensitive, use 'True' or 'False'.
[Simplify the parser for flags in conditions
Duncan Coutts <duncan at>**20080327221632
 It's a bit more consistent.
[We do not show the field value on a parse error so don't pretend we do.
Duncan Coutts <duncan at>**20080327221442
 Drop the trailing ": " on the error message. We could provide the field
 value but they're often multi-line and we cannot pin-point where the
 error is exactly.
[Use the Text Bool instance for parsing literals in conditions
Duncan Coutts <duncan at>**20080327215501
 Since it exactly matches what the previous condition parser did.
 So we have two different ways of parsing Bool depending on
 context. Sigh. Both match exactly what was done in Cabal-1.2.
[Parse Bool fields using more cunning, allow new parses with a warning
Duncan Coutts <duncan at>**20080327213411
 We want to allow case-insensitive parsing however we don't want
 packages being uploaded to hackage that will break older versions of
 Cabal. If we allow new valid parses then we will end up breaking
 stuff. So what we really want to do is allow new parses but warn if
 they're not ones that older versions of Cabal would have allowed. So
 long as hackage rejects pakcages that have parse warnings then we can
 prevent new .cabal files appearing on hackage that would break older
 Cabal versions. Our current parser (ReadP) does not support warnings
 so we have to handle the bool fields specially in the parser wrapper
 layer that we added to handle errors and warnings. This can go away
 when we use a parser with support for error and warning messages.
[Add scripts for testing compatability with hackage packages
Duncan Coutts <duncan at>**20080327161540
 So far just a test that all the non-trivial Setup.(l)hs scripts
 compile. This only tests the latest versions, though if one were
 to download a complete archive then one could test them all.
 To speed up the check we skip Setup.hs scripts that have fewer
 than 22 words. Below this cutoff there are no custom hooks and
 it catches the great majority of scripts which greatly speeds up
 the check.
[Rename various *Verbose fields to *Verbosity instead
Duncan Coutts <duncan at>**20080327034815
 Despite appearances this is actually not completely pointless.
 For the Cabal-1.4 branch we need the *Verbose fields to have the
 same types as they did in Cabal-1.2, becuase lots of Setup.hs
 scripts use them and our change to make them all have type Flag
 makes many Setup.hs scripts fail. A solution for the 1.4 branch
 is to rename the real field and to add the old field back in.
 To keep as much similarity as possible between the HEAD and 1.4
 branches I'm applying the name change in both.
 On the plus side it's a better name anyway.
[Make UTF-8 decoding errors in .cabal files non-fatal
Duncan Coutts <duncan at>**20080327031740
 Previously we checked for invalid UTF-8 in the first phase of the
 parser, which splitting the file up into nested sections and fields.
 This meant the whole parser falls over if there is invalid UTF-8
 anywhere in the file. Sadly there are already packages on hackage
 with invalid UTF-8 so we would fail when parsing the hackage index.
 The solution is to move the check into the parsing of the individual
 fields and making it a warning not an error. We most typically get
 invalid UTF-8 in free text fields like author name, copyright,
 description etc so this should work out ok usually.
 We now get pretty decent error messages, like:
   Warning: hsx.cabal:5: Invalid UTF-8 text in the 'author' field.
 The warning type is now structured so that hackage will be able to
 distinguish general non-fatal warnings from UTF-8 decoding problems
 which really should be fatal errors for package uploads.
[Separate the OS/Arch classifiation used for different purposes
Duncan Coutts <duncan at>**20080327005321
 We have to classify System.Info.{os,arch} strings into the OS and Arch
 enums. For that purpose we have to be quite permissive since there are
 lots of ailases that the various Haskell implementations use. However
 for parsing os and arch names in .cabal files we'd prefer to use
 canonical names, though we do have to allow the couple aliases already
 in common use.
[Arch and OS names were previously allowed to contain "_-", restore that.
Duncan Coutts <duncan at>**20080327004631
 That is the arch and os strings in conditionals in .cabal files, like:
   if arch(x86_64)
 Previously the parser used isAlphaNum c || (c `elem` "_-"). This is
 crucial for arch names like "x86_64". So make the new parser for OS
 and Arch types use the same string parser as before (there is a string
 parse part and a separate classification of known OS/Arch values).
[allow underscores in arch names
Ross Paterson <ross at>**20080326165912

 Stops it barfing on arch(x86_64).
[TAG 1.3.9
Duncan Coutts <duncan at>**20080326142629]
Patch bundle hash:


More information about the cabal-devel mailing list