This project is mirrored from https://github.com/haskell/Cabal. Pull mirroring updated .
  1. 10 Sep, 2017 1 commit
  2. 09 Aug, 2017 1 commit
    • Herbert Valerio Riedel's avatar
      Refactor 'RelaxDeps' to avoid semantic ambiguity of mempty value · 4066ea7a
      Herbert Valerio Riedel authored
      This removes the redundancy between `RelaxDepsNone` and
      `RelaxDepsSome []` by removing `RelaxDepsNone`.
      
      This way we avoid the risk of subtle bugs that can occur if the same
      semantic value can be expressed in a non-unique way.
      
      A further step to normalise the type would be to turn `[RelaxedDep]`
      into `Set RelaxedDep`, but there is no operation that would
      significantly benefit from that yet.
      4066ea7a
  3. 02 Aug, 2017 2 commits
  4. 01 Aug, 2017 1 commit
  5. 19 May, 2017 1 commit
  6. 18 May, 2017 1 commit
    • Herbert Valerio Riedel's avatar
      Remove --allow-{newer,older} support from Cabal · a95b8f4e
      Herbert Valerio Riedel authored
      This is a preparatory refactoring needed for future work such as #4203.
      
      I've refrained from doing additional cleanups in order to keep this a
      refactoring that mostly moves around blocks of code mostly
      unchanged (except for whitespace), and make it easier to review.
      
      This feature was originally implemented because its lack was complained
      about by Stack/Stackage developers. However, after it got implemented it
      was never really being used; what's more, it's causing us overhead for
      no benefit as well as blocking us improving the implementation via the
      likes of #4203.
      
      Closes #3581
      a95b8f4e
  7. 05 May, 2017 1 commit
  8. 03 May, 2017 1 commit
  9. 01 May, 2017 1 commit
    • kristenk's avatar
      Uncomment --independent-goals flag. · 4ee0df39
      kristenk authored
      --independent-goals could be useful for using local packages as setup or
      build-tool dependencies in new-build.  See #4295 for an example of a dependency
      problem that requires --independent-goals.  The flag is off by default.
      4ee0df39
  10. 29 Apr, 2017 1 commit
    • Moritz Angermann's avatar
      Add `doctest’ command. · 435fd96e
      Moritz Angermann authored
      This adds the `doctest` command to cabal.  It does however not yet work as the driver
      is baiscally a stub.
      
      This is therfore only the first step towards #2327.
      435fd96e
  11. 23 Mar, 2017 1 commit
  12. 11 Mar, 2017 1 commit
  13. 27 Feb, 2017 3 commits
  14. 24 Feb, 2017 1 commit
  15. 19 Feb, 2017 2 commits
  16. 19 Jan, 2017 2 commits
  17. 17 Jan, 2017 4 commits
  18. 16 Jan, 2017 1 commit
  19. 12 Jan, 2017 1 commit
  20. 05 Jan, 2017 1 commit
  21. 05 Dec, 2016 1 commit
  22. 27 Nov, 2016 2 commits
  23. 15 Nov, 2016 1 commit
    • Herbert Valerio Riedel's avatar
      Add `--index-state` support to `cabal get` · f10b7a28
      Herbert Valerio Riedel authored
      With this `cabal get` gains the ability to
      
       a) unpack and update with the .cabal revision which was
          active at the given index-state, as well as
      
       b) allow to unpack the most recent package version
          (while satisfying imposed version constraints) as of
          the given index-state
      
      The `--index-state` flag can be combined with `--pristine` if only b) is
      desired.
      f10b7a28
  24. 14 Nov, 2016 1 commit
  25. 20 Oct, 2016 1 commit
    • Christiaan Baaij's avatar
      Add `--dynlibdir` · d2da6558
      Christiaan Baaij authored
      `--dynlibdir` indicates the directory in which dynamic libraries
      are installed. By default this setting is equal to:
      
      `$libdir/$abi`
      
      The static libraries will still end up in:
      
      `$libdir/$libsubdir`
      
      With `$libsubdir/$abi` as the default directory for dynamic
      libraries, dynamic libraries will by default end up in a
      single shared directory (per package database). This has the
      potential to reduce start-up times for dynamically linked
      executable as only one RPATH per package database will be
      needed.
      
      This commit uses the functionality defined in
      
      https://phabricator.haskell.org/D2611
      
      to tell GHC's > 8.0.1 package database that dynamic libraries
      are copied to the directories mentioned in the
      
      `dynamic-library-dirs`
      
      field.
      d2da6558
  26. 08 Oct, 2016 1 commit
  27. 28 Sep, 2016 1 commit
    • Herbert Valerio Riedel's avatar
      Make `Version` type opaque (#3905) · bb2026c4
      Herbert Valerio Riedel authored
      Similiar to dabd9d98 which made
      `PackageName` opaque, this makes `Distribution.Version.Version` opaque.
      
      The most common version numbers occuring on Hackage are 3- and
      4-part versions. This results in significant Heap overhead due to
      `Data.Version`'s inefficient internal representation.
      
      So like the `PackageName` commit, this commit is a preparatory commit to
      pave the way for replacing `Version`'s internal representation by a
      representation with a memory footprint which can be an order of
      magnitude smaller.
      
      Finally, this also adds a new functor-like convenience function
      
          alterVersion :: ([Int] -> [Int]) -> Version -> Version
      
      for modifying the version number components.
      bb2026c4
  28. 26 Sep, 2016 2 commits
  29. 24 Sep, 2016 1 commit
  30. 19 Sep, 2016 1 commit
    • Edward Z. Yang's avatar
      Never use --enable-profiling when invoking Setup. · bf3d3e68
      Edward Z. Yang authored
      In Cabal 1.22.5.0, the semantics of
      --disable-profiling/--enable-profiling depend on ordering (because there
      is a hack that operates by looking at the current flag assignment and
      doing something). In particular, if I specify --enable-library-profiling
      --disable-profiling, I end up with library profiling DISABLED.
      
      The fix is that we NEVER pass --enable-profiling or --disable-profiling
      to Cabal. At the moment, and according to my historical analysis, Cabal
      ONLY uses configProf to affect the effective library/executable
      profiling, which means that anything we do with --enable-profiling, we
      can do using the library/executable profiling individually. Since these
      are always flags for the versions of Cabal library we support, we will
      get order invariance. Historical versions have varied on whether or not
      setting executable profiling implies library profiling, but if we set
      both explicitly this change in behavior doesn't matter.
      
      This patch is difficult to test because the bad profiling flags
      can't be induced on an inplace build.  I tested by hand by building
      a package that depended on 'distributive' by hand.
      
      Fixes #3790.
      Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
      bf3d3e68