This project is mirrored from Pull mirroring updated .
  1. 04 Aug, 2014 1 commit
    • Edward Z. Yang's avatar
      Implement package keys, distinguishing packages built with different deps/flags · 41610a0b
      Edward Z. Yang authored
      Previously, the GHC ecosystem assumed that for any package ID (foo-0.1), there
      would only be one instance of it in the installed packages database.  This
      posed problems for situations where you want a package compiled twice against
      different sets of dependencies: they could not both exist in the package
      Package keys are a hash of the package ID and package
      dependencies, which identify a package more uniquely than a package ID, but less
      uniquely than an installed package ID. Unlike installed package IDs, these can
      be computed immediately after dependency resolution, rather than after
      compilation.  Package keys require support from the compiler.  At the moment,
      only GHC 7.10 supports package keys (the reason is that old versions of GHC
      do a sannity check to see that the <pkg-name>-<pkg-version> stored in the
      package database matches with the -package-name embedded in an hi file; so
      the format is fixed.) We fallback to package keys == package IDs for old
      Note: the ./Setup configure fallback script does not try particularly hard to
      pick consistent sets of dependencies.  If your package database is too difficult
      for it to resolve, manually provide installed package IDs or use cabal-install's
      dependency solver.
      Note: This patch *suspends* the reinstall check unless it would result in
      a different package, so cabal-install will now happily reinstall foo-0.1
      compiled against bar-0.2 if foo-0.1 already exists.
      Signed-off-by: default avatarEdward Z. Yang <>
  2. 31 Oct, 2013 2 commits
  3. 25 Aug, 2013 1 commit
    • Herbert Valerio Riedel's avatar
      Add `ghcOptOutputDir` to `GhcOptions` for GHC's `-outputdir` · b2697010
      Herbert Valerio Riedel authored
      The flag `-outputdir` sets `-odir`, `-hidir`, `-stubdir`, and `-dumpdir`.
      Using `-outputdir` has the benefit of redirecting all output files with
      only one flag to a temporary directory.
      Cabal currently only sets the first three but not the `-dumpdir` flag for
      compiling Haskell modules, which clutters the top-level package directory
      and sometimes dump files get overwritten if their names collide for
      different build targets.
      This minimal commit merely adds the `ghcOptOutputDir` flag to the data
      structures and enables its use for the compilation of Haskell modules. A
      later commit may remove the use of the now redundant `ghcOptStubDir` and
      `ghcOptHiDir` flags in favor of the new `ghcOptOutputDir` flag.
      The flag `-outputdir` is available since GHC 6.10; see also
      ghc/ghc@bb074cb7 and
  4. 12 Aug, 2013 1 commit
    • Duncan Coutts's avatar
      Add some more recent GhcOptions · f6f12fe0
      Duncan Coutts authored
      Add support for:
       -dynamic-too  (now a three-way choice with -static & -dynamic)
       -dynhisuf -dynosuf
      All the options we use internally should have their own flags. We should
      really only be using ghcOptExtra for things from the user.
  5. 03 Oct, 2012 1 commit
  6. 29 Aug, 2012 1 commit
  7. 11 May, 2012 1 commit
    • pcapriotti's avatar
      Adapt to change in GHC package db flags. · 9e030da8
      pcapriotti authored
      GHC and ghc-pkg package db flags changed from '*-package-conf' to
      '*-package-db' in 7.5.  This commit follows the change and introduces a
      version check whenever those flags are used.
  8. 22 Apr, 2012 1 commit
  9. 27 Mar, 2012 1 commit
    • Duncan Coutts's avatar
      Convert ghc option construction to use an options record · 5f50fb1e
      Duncan Coutts authored
      Using a structured representation of the ghc options rather
      than [String] makes it easier to share and reuse the code
      for building sets of ghc options, which makes it easier to
      add code for calling ghci.
      This is based on Sam Anklesaria's GSoC work on "cabal repl"